From 2c9b08e89400316846c3c5c802268640ff483808 Mon Sep 17 00:00:00 2001 From: Steven Mask Date: Tue, 24 May 2022 17:53:12 -0400 Subject: [PATCH] feat: isCrossSiteTrackingEnabled (#100) * isCrossSiteTrackingEnabled * feat: isCrossSiteTrackingEnabled * feat: isCrossSiteTrackingEnabled * test: tracking test changes Co-authored-by: Steve Mask --- src/device.js | 4 ++++ .../device/isCrossSiteTrackingEnabled.js | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 test/tests/device/isCrossSiteTrackingEnabled.js 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) }`); + } + }); +});