Skip to content

Commit de1dd42

Browse files
committed
feat(consent): support tealium consent manager
fixes #39
1 parent 59ca637 commit de1dd42

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

consent.js

+8
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ const vendors = [
4747
accept: /accept/,
4848
reject: /reject/,
4949
},
50+
// tealium, a.ka. didomi
51+
{
52+
vendor: 'tealium',
53+
match: /#didomi/,
54+
accept: /didomi-notice-agree-button$/,
55+
reject: /didomi-notice-disagree-button$/,
56+
dismiss: /(didomi-popup-closeBtn-icon|didomi-popup-close|didomi-continue-without-agreeing)$/,
57+
},
5058
];
5159

5260
class Consent {

test/consent.test.js

+32
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,35 @@ describe('classifyConsent', () => {
4343
assert.strictEqual(consent.target, undefined);
4444
});
4545
});
46+
47+
describe('Tealium/Didomi consent', () => {
48+
it('should identify accept action', () => {
49+
const consent = classifyConsent('#didomi-notice-agree-button');
50+
assert.strictEqual(consent.vendor, 'tealium');
51+
assert.strictEqual(consent.target, 'accept');
52+
});
53+
54+
it('should identify reject action', () => {
55+
const consent = classifyConsent('#didomi-notice-disagree-button');
56+
assert.strictEqual(consent.vendor, 'tealium');
57+
assert.strictEqual(consent.target, 'reject');
58+
});
59+
60+
it('should identify dismiss action for close button', () => {
61+
const consent = classifyConsent('#didomi-popup-closeBtn-icon');
62+
assert.strictEqual(consent.vendor, 'tealium');
63+
assert.strictEqual(consent.target, 'dismiss');
64+
});
65+
66+
it('should identify dismiss action for popup close link', () => {
67+
const consent = classifyConsent('#didomi-host .didomi-popup-close');
68+
assert.strictEqual(consent.vendor, 'tealium');
69+
assert.strictEqual(consent.target, 'dismiss');
70+
});
71+
72+
it('should identify dismiss action for continue without agreeing', () => {
73+
const consent = classifyConsent('#didomi-host .didomi-continue-without-agreeing');
74+
assert.strictEqual(consent.vendor, 'tealium');
75+
assert.strictEqual(consent.target, 'dismiss');
76+
});
77+
});

0 commit comments

Comments
 (0)