Skip to content

Commit

Permalink
Merge pull request #858 from OneSignal/serviceWorkerParam-fix
Browse files Browse the repository at this point in the history
`userConfig` service worker param fix
  • Loading branch information
rgomezp committed Sep 20, 2021
2 parents 8078f41 + 8c64c31 commit 587f09c
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 12 deletions.
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -37,7 +37,7 @@
"build:dev-stag": "./build/scripts/build.sh -f development -t staging"
},
"config": {
"sdkVersion": "151507"
"sdkVersion": "151508"
},
"repository": {
"type": "git",
Expand Down
29 changes: 20 additions & 9 deletions src/helpers/ConfigHelper.ts
Expand Up @@ -489,6 +489,20 @@ export class ConfigHelper {
Ignores dashboard configuration and uses code-based configuration only.
Except injecting some default values for prompts.
*/
const isTopLevelServiceWorkerParamDefined = typeof OneSignal !== 'undefined' &&
!!OneSignal.SERVICE_WORKER_PARAM;
const isTopLevelServiceWorkerPathDefined = typeof OneSignal !== 'undefined' &&
!!OneSignal.SERVICE_WORKER_PATH;
const isTopLevelServiceWorkerUpdaterPathDefined = typeof OneSignal !== 'undefined' &&
!!OneSignal.SERVICE_WORKER_UPDATER_PATH;

const fallbackServiceWorkerParam = isTopLevelServiceWorkerParamDefined ?
OneSignal.SERVICE_WORKER_PARAM : { scope: '/' };
const fallbackServiceWorkerPath = isTopLevelServiceWorkerPathDefined ?
OneSignal.SERVICE_WORKER_PATH : 'OneSignalSDKWorker.js';
const fallbackServiceWorkerUpdaterPath = isTopLevelServiceWorkerUpdaterPathDefined ?
OneSignal.SERVICE_WORKER_UPDATER_PATH : 'OneSignalSDKUpdaterWorker.js';

const config = {
...userConfig,
promptOptions: this.injectDefaultsIntoPromptOptions(
Expand All @@ -498,15 +512,12 @@ export class ConfigHelper {
isUsingSubscriptionWorkaround
),
...{
serviceWorkerParam: typeof OneSignal !== 'undefined' && !!OneSignal.SERVICE_WORKER_PARAM
? OneSignal.SERVICE_WORKER_PARAM
: { scope: '/' },
serviceWorkerPath: typeof OneSignal !== 'undefined' && !!OneSignal.SERVICE_WORKER_PATH
? OneSignal.SERVICE_WORKER_PATH
: 'OneSignalSDKWorker.js',
serviceWorkerUpdaterPath: typeof OneSignal !== 'undefined' && !!OneSignal.SERVICE_WORKER_UPDATER_PATH
? OneSignal.SERVICE_WORKER_UPDATER_PATH
: 'OneSignalSDKUpdaterWorker.js',
serviceWorkerParam: !!userConfig.serviceWorkerParam ?
userConfig.serviceWorkerParam : fallbackServiceWorkerParam,
serviceWorkerPath: !!userConfig.serviceWorkerPath ?
userConfig.serviceWorkerPath : fallbackServiceWorkerPath,
serviceWorkerUpdaterPath: !!userConfig.serviceWorkerUpdaterPath ?
userConfig.serviceWorkerUpdaterPath : fallbackServiceWorkerUpdaterPath,
path: !!userConfig.path ? userConfig.path : '/'
},
outcomes: {
Expand Down
10 changes: 8 additions & 2 deletions test/unit/modules/mergedLegacyConfig.ts
Expand Up @@ -23,14 +23,20 @@ test('should assign the default service worker file path if not provided', async
t.is(result.userConfig.path, '/');
});

test('should not overwrite a provided service worker file path', async t => {
test('should not overwrite a provided service worker parameters', async t => {
const result = new ConfigManager().getMergedConfig(
{
path: '/existing-path'
path: '/existing-path',
serviceWorkerParam: { scope: '/existing-path' },
serviceWorkerPath: '/existing-path/OneSignalSDKWorker.js',
serviceWorkerUpdaterPath: '/existing-path/OneSignalSDKUpdaterWorker.js'
},
TestEnvironment.getFakeServerAppConfig(ConfigIntegrationKind.Custom)
);
t.is(result.userConfig.path, '/existing-path');
t.deepEqual(result.userConfig.serviceWorkerParam, { scope: '/existing-path' });
t.is(result.userConfig.serviceWorkerPath, '/existing-path/OneSignalSDKWorker.js');
t.is(result.userConfig.serviceWorkerUpdaterPath, '/existing-path/OneSignalSDKUpdaterWorker.js');
});

test('should assign the default service worker registration params if not provided', async t => {
Expand Down

0 comments on commit 587f09c

Please sign in to comment.