diff --git a/src/device.js b/src/device.js index bc2d4be2..abbff0a6 100644 --- a/src/device.js +++ b/src/device.js @@ -234,3 +234,7 @@ export function isApplePaySupported() : boolean { return false; } + +export function isCrossSiteTrackingEnabled(expectedCookieKey : string) : boolean { + return document.cookie.indexOf(expectedCookieKey) !== -1; +} diff --git a/test/tests/device/isCrossSiteTrackingEnabled.js b/test/tests/device/isCrossSiteTrackingEnabled.js new file mode 100644 index 00000000..80d5ea9b --- /dev/null +++ b/test/tests/device/isCrossSiteTrackingEnabled.js @@ -0,0 +1,23 @@ +/* @flow */ + +import { isCrossSiteTrackingEnabled } from '../../../src/device'; + +describe('isCrossSiteTrackingEnabled', () => { + it('should return false when expected cookies are present', () => { + document.cookie = 'enforce_policy=ccpa'; + + const bool = isCrossSiteTrackingEnabled('enforce_policy'); + if (bool) { + throw new Error(`Expected false, got ${ JSON.stringify(bool) }`); + } + }); + + it('should return true when expected cookies are not present', () => { + document.cookie = ''; + + const bool = isCrossSiteTrackingEnabled('enforce_policy'); + if (!bool) { + throw new Error(`Expected true, got ${ JSON.stringify(bool) }`); + } + }); +});