UNPKG

onesignal-web-sdk

Version:

Web push notifications from OneSignal.

53 lines (42 loc) 2 kB
import '../../support/polyfills/polyfills'; import test from 'ava'; import { ServiceWorker } from '../../../src/service-worker/ServiceWorker'; import { setUserAgent } from '../../support/tester/browser'; import { BrowserUserAgent, TestEnvironment, HttpHttpsEnvironment } from '../../support/sdk/TestEnvironment'; import Database from '../../../src/services/Database'; import { AppConfig } from '../../../src/models/AppConfig'; import Random from '../../support/tester/Random'; test(`getAppId should retrieve app ID from service worker registration URL`, async t => { const uuid = Random.getRandomUuid(); await TestEnvironment.initializeForServiceWorker({ url: new URL(`https://site.com/service-worker.js?appId=${uuid}`) }); const appId = await ServiceWorker.getAppId(); t.is(appId, uuid); }); test(`getAppId should retrieve app ID from a multi-query param service worker registration URL`, async t => { const uuid = Random.getRandomUuid(); await TestEnvironment.initializeForServiceWorker({ url: new URL(`https://site.com/service-worker.js?a=1&b=2&appId=${uuid}&c=3`) }); const appId = await ServiceWorker.getAppId(); t.is(appId, uuid); }); test(`getAppId should retrieve app ID from database if registration URL does not contain app ID query param`, async t => { await TestEnvironment.initializeForServiceWorker({ url: new URL(`https://site.com/service-worker.js`) }); const uuid = Random.getRandomUuid(); const appConfig = TestEnvironment.getFakeAppConfig(); appConfig.appId = uuid; await Database.setAppConfig(appConfig); const appId = await ServiceWorker.getAppId(); t.is(appId, uuid); }); test(`getAppId should return null if no app ID stored in database or registration URL query param`, async t => { await TestEnvironment.initializeForServiceWorker({ url: new URL(`https://site.com/service-worker.js`) }); const appId = await ServiceWorker.getAppId(); t.is(appId, null); });