fix(agent): Cookie-View CONTROLLER -> Joint-Controller-Gruppe

recipient_type=CONTROLLER (Meta/LinkedIn/Criteo) gehoert zu Art. 26
(eigenverantwortliche Dritte / Joint Controller), nicht zu den eigenen
Verarbeitungen. BMW: 58 eigene / 16 AVV / 7 joint / 2 sonstige (= Mail-VVT).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-11 01:03:20 +02:00
parent 3332eb0bf9
commit 410a814230
2 changed files with 9 additions and 3 deletions
@@ -51,9 +51,9 @@ const EEA = new Set([
'IT','LV','LT','LU','MT','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO', 'IT','LV','LT','LU','MT','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO',
]) ])
const GROUPS = [ const GROUPS = [
{ key: 'own', label: 'Eigene Verarbeitungen (VVT, Art. 30)', test: (r: string) => !r || r === 'INTERNAL' || r === 'GROUP' || r === 'CONTROLLER' }, { key: 'own', label: 'Eigene Verarbeitungen (VVT, Art. 30)', test: (r: string) => !r || r === 'INTERNAL' || r === 'GROUP' },
{ key: 'proc', label: 'Auftragsverarbeiter (AVV, Art. 28)', test: (r: string) => r === 'PROCESSOR' }, { key: 'proc', label: 'Auftragsverarbeiter (AVV, Art. 28)', test: (r: string) => r === 'PROCESSOR' },
{ key: 'joint', label: 'Joint Controller (Art. 26)', test: (r: string) => r === 'JOINT_CONTROLLER' }, { key: 'joint', label: 'Eigenverantwortliche Dritte / Joint Controller (Art. 26)', test: (r: string) => r === 'JOINT_CONTROLLER' || r === 'CONTROLLER' },
{ key: 'other', label: 'Sonstige Empfänger', test: () => true }, { key: 'other', label: 'Sonstige Empfänger', test: () => true },
] ]
@@ -21,6 +21,10 @@ const SNAP = {
recipient_type: 'INTERNAL', compliance_score: 100, recipient_type: 'INTERNAL', compliance_score: 100,
cookies: [{ name: 'x', functional_role: 'preference', purpose: 'Sprache' }], cookies: [{ name: 'x', functional_role: 'preference', purpose: 'Sprache' }],
}, },
{
name: 'Meta / Facebook', category: 'marketing', country: 'IE',
recipient_type: 'CONTROLLER', compliance_score: 100, cookies: [],
},
], ],
} }
@@ -32,10 +36,12 @@ describe('CookieResultView', () => {
expect(screen.getByText('Anbieter')).toBeInTheDocument() expect(screen.getByText('Anbieter')).toBeInTheDocument()
expect(screen.getByText('Cookies gesamt')).toBeInTheDocument() expect(screen.getByText('Cookies gesamt')).toBeInTheDocument()
expect(screen.getByText('3')).toBeInTheDocument() expect(screen.getByText('3')).toBeInTheDocument()
// Gruppen: Eigene + Auftragsverarbeiter // Gruppen: Eigene + Auftragsverarbeiter + Joint Controller (CONTROLLER)
expect(screen.getByText(/Eigene Verarbeitungen/)).toBeInTheDocument() expect(screen.getByText(/Eigene Verarbeitungen/)).toBeInTheDocument()
expect(screen.getByText(/Auftragsverarbeiter/)).toBeInTheDocument() expect(screen.getByText(/Auftragsverarbeiter/)).toBeInTheDocument()
expect(screen.getByText(/Joint Controller/)).toBeInTheDocument()
expect(screen.getByText('Salesforce')).toBeInTheDocument() expect(screen.getByText('Salesforce')).toBeInTheDocument()
expect(screen.getByText('Meta / Facebook')).toBeInTheDocument()
}) })
it('klappt einen Vendor auf und zeigt die Cookies', () => { it('klappt einen Vendor auf und zeigt die Cookies', () => {