From 9a87c1ea5ccc8b76d888e74b5fb4921a57968557 Mon Sep 17 00:00:00 2001 From: Alexander Sapountzis Date: Mon, 14 Jul 2025 15:12:32 -0400 Subject: [PATCH 1/2] fix: Handle invalid Extension Settings --- src/Rokt-Kit.js | 7 ++++--- test/src/tests.js | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Rokt-Kit.js b/src/Rokt-Kit.js index 65d98be..b244adc 100644 --- a/src/Rokt-Kit.js +++ b/src/Rokt-Kit.js @@ -398,14 +398,15 @@ function parseSettingsString(settingsString) { try { return JSON.parse(settingsString.replace(/"/g, '"')); } catch (error) { - throw new Error('Settings string contains invalid JSON'); + console.error('Settings string contains invalid JSON'); } + return []; } function extractRoktExtensions(settingsString) { - var settings = settingsString ? parseSettingsString(settingsString) : []; - + var settings = parseSettingsString(settingsString); var roktExtensions = []; + for (var i = 0; i < settings.length; i++) { roktExtensions.push(settings[i].value); } diff --git a/test/src/tests.js b/test/src/tests.js index 547c986..f011f9c 100644 --- a/test/src/tests.js +++ b/test/src/tests.js @@ -1280,5 +1280,19 @@ describe('Rokt Forwarder', () => { .should.deepEqual(expectedExtensions); }); }); + + it('should handle invalid setting strings', () => { + window.mParticle.forwarder.testHelpers + .extractRoktExtensions('NONE') + .should.deepEqual([]); + + window.mParticle.forwarder.testHelpers + .extractRoktExtensions(undefined) + .should.deepEqual([]); + + window.mParticle.forwarder.testHelpers + .extractRoktExtensions(null) + .should.deepEqual([]); + }); }); }); From eba7dea4a4f34fc68cb2bf884f1b1db103deb680 Mon Sep 17 00:00:00 2001 From: Alexander Sapountzis Date: Mon, 14 Jul 2025 16:16:03 -0400 Subject: [PATCH 2/2] Address PR Comments --- src/Rokt-Kit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Rokt-Kit.js b/src/Rokt-Kit.js index b244adc..a7ca241 100644 --- a/src/Rokt-Kit.js +++ b/src/Rokt-Kit.js @@ -404,7 +404,7 @@ function parseSettingsString(settingsString) { } function extractRoktExtensions(settingsString) { - var settings = parseSettingsString(settingsString); + var settings = settingsString ? parseSettingsString(settingsString) : []; var roktExtensions = []; for (var i = 0; i < settings.length; i++) {