From cdb9a02f4bfa1d47625e42ce654a1b880297dd87 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Thu, 28 Jul 2022 13:24:59 -0300 Subject: [PATCH 1/6] remove duplicated mocks --- karma/e2e.ci.karma.conf.js | 4 +- package.json | 4 +- .../{ => consumerMode}/node_redis.spec.js | 10 ++-- src/__tests__/destroy/browser.spec.js | 8 +-- src/__tests__/destroy/node.spec.js | 6 +-- src/__tests__/errorCatching/browser.spec.js | 8 +-- .../mySegments.nico@split.io.json | 3 -- src/__tests__/errorCatching/node.spec.js | 6 +-- .../errorCatching/splitChanges.since.-1.json | 53 ------------------- .../{destroy => mocks}/impressions.json | 0 .../mySegmentsEmpty.json} | 0 ...tChanges.since.-1.till.1500492097547.json} | 0 .../splitChanges.since.1500492097547.json | 0 ...nce.1500492097547.till.1500492297547.json} | 0 .../splitChanges.since.1500492297547.json | 0 src/__tests__/{ => online}/browser.spec.js | 52 +++++++++--------- src/__tests__/{ => online}/node.spec.js | 34 ++++++------ 17 files changed, 66 insertions(+), 122 deletions(-) rename src/__tests__/{ => consumerMode}/node_redis.spec.js (98%) delete mode 100644 src/__tests__/errorCatching/mySegments.nico@split.io.json delete mode 100644 src/__tests__/errorCatching/splitChanges.since.-1.json rename src/__tests__/{destroy => mocks}/impressions.json (100%) rename src/__tests__/{destroy/mySegments.json => mocks/mySegmentsEmpty.json} (100%) rename src/__tests__/{destroy/splitChanges.since.-1.json => mocks/splitChanges.since.-1.till.1500492097547.json} (100%) rename src/__tests__/{destroy => mocks}/splitChanges.since.1500492097547.json (100%) rename src/__tests__/{errorCatching/splitChanges.since.1500492097547.json => mocks/splitChanges.since.1500492097547.till.1500492297547.json} (100%) rename src/__tests__/{errorCatching => mocks}/splitChanges.since.1500492297547.json (100%) rename src/__tests__/{ => online}/browser.spec.js (74%) rename src/__tests__/{ => online}/node.spec.js (69%) diff --git a/karma/e2e.ci.karma.conf.js b/karma/e2e.ci.karma.conf.js index b712394f4..a81d35a7f 100644 --- a/karma/e2e.ci.karma.conf.js +++ b/karma/e2e.ci.karma.conf.js @@ -6,11 +6,11 @@ module.exports = function(config) { config.set(assign({}, require('./config'), { // list of files / patterns to load in the browser files: [ - '__tests__/browser.spec.js' + '__tests__/online/browser.spec.js' ], // prepare code for the browser using webpack preprocessors: { - '__tests__/browser.spec.js': ['webpack'] + '__tests__/online/browser.spec.js': ['webpack'] }, // level of logging diff --git a/package.json b/package.json index 40a9ff0fe..737f9fc8d 100644 --- a/package.json +++ b/package.json @@ -101,11 +101,11 @@ "test-browser-push": "cross-env NODE_ENV=test karma start karma/push.ci.karma.conf.js", "test-node": "npm run test-node-unit && npm run test-node-online && npm run test-node-redis && npm run test-node-offline && npm run test-node-destroy && npm run test-node-errors && npm run test-node-push", "test-node-unit": "cross-env NODE_ENV=test tape -r ./ts-node.register \"src/*/**/__tests__/**/!(browser).spec.js\" | tap-min", - "test-node-online": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/node.spec.js | tap-min", + "test-node-online": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/online/node.spec.js | tap-min", "test-node-destroy": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/destroy/node.spec.js | tap-min", "test-node-errors": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/errorCatching/node.spec.js | tap-min", "test-node-offline": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/offline/node.spec.js | tap-min", - "test-node-redis": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/node_redis.spec.js | tap-min", + "test-node-redis": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/consumerMode/node_redis.spec.js | tap-min", "test-node-push": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/push/node.spec.js | tap-min", "pretest-ts-decls": "npm run build-esm && npm run build-cjs && npm link", "test-ts-decls": "./scripts/ts-tests.sh", diff --git a/src/__tests__/node_redis.spec.js b/src/__tests__/consumerMode/node_redis.spec.js similarity index 98% rename from src/__tests__/node_redis.spec.js rename to src/__tests__/consumerMode/node_redis.spec.js index a5be3abad..f41c009fa 100644 --- a/src/__tests__/node_redis.spec.js +++ b/src/__tests__/consumerMode/node_redis.spec.js @@ -1,19 +1,19 @@ /* eslint-disable no-console */ import osFunction from 'os'; -import ipFunction from '../utils/ip'; +import ipFunction from '../../utils/ip'; import tape from 'tape'; import sinon from 'sinon'; import RedisServer from 'redis-server'; import RedisClient from 'ioredis'; import { exec } from 'child_process'; -import { SplitFactory } from '../'; +import { SplitFactory } from '../..'; import { merge } from '@splitsoftware/splitio-commons/src/utils/lang'; import { KeyBuilderSS } from '@splitsoftware/splitio-commons/src/storages/KeyBuilderSS'; import { validatePrefix } from '@splitsoftware/splitio-commons/src/storages/KeyBuilder'; -import { settingsFactory } from '../settings'; -import { nearlyEqual } from './testUtils'; -import { version } from '../../package.json'; +import { settingsFactory } from '../../settings/node'; +import { nearlyEqual } from '../testUtils'; +import { version } from '../../../package.json'; const IP_VALUE = ipFunction.address(); const HOSTNAME_VALUE = osFunction.hostname(); diff --git a/src/__tests__/destroy/browser.spec.js b/src/__tests__/destroy/browser.spec.js index 167ca78fc..1c46b4852 100644 --- a/src/__tests__/destroy/browser.spec.js +++ b/src/__tests__/destroy/browser.spec.js @@ -6,10 +6,10 @@ import pick from 'lodash/pick'; import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; -import splitChangesMock1 from './splitChanges.since.-1.json'; -import splitChangesMock2 from './splitChanges.since.1500492097547.json'; -import mySegmentsMock from './mySegments.json'; -import impressionsMock from './impressions.json'; +import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; +import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.json'; +import mySegmentsMock from '../mocks/mySegmentsEmpty.json'; +import impressionsMock from '../mocks/impressions.json'; const settings = settingsFactory({ core: { diff --git a/src/__tests__/destroy/node.spec.js b/src/__tests__/destroy/node.spec.js index 0acb88e05..90fad3d53 100644 --- a/src/__tests__/destroy/node.spec.js +++ b/src/__tests__/destroy/node.spec.js @@ -13,9 +13,9 @@ const settings = settingsFactory({ streamingEnabled: false }); -import splitChangesMock1 from './splitChanges.since.-1.json'; -import splitChangesMock2 from './splitChanges.since.1500492097547.json'; -import impressionsMock from './impressions.json'; +import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; +import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.json'; +import impressionsMock from '../mocks/impressions.json'; fetchMock.get(url(settings, '/splitChanges?since=-1'), { status: 200, body: splitChangesMock1 }); fetchMock.get(url(settings, '/splitChanges?since=-1500492097547'), { status: 200, body: splitChangesMock2 }); diff --git a/src/__tests__/errorCatching/browser.spec.js b/src/__tests__/errorCatching/browser.spec.js index af5a0cabe..1460b6199 100644 --- a/src/__tests__/errorCatching/browser.spec.js +++ b/src/__tests__/errorCatching/browser.spec.js @@ -3,10 +3,10 @@ import tape from 'tape'; import includes from 'lodash/includes'; import fetchMock from '../testUtils/fetchMock'; import { url } from '../testUtils'; -import splitChangesMock1 from './splitChanges.since.-1.json'; -import mySegmentsMock from './mySegments.nico@split.io.json'; -import splitChangesMock2 from './splitChanges.since.1500492097547.json'; -import splitChangesMock3 from './splitChanges.since.1500492297547.json'; +import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; +import mySegmentsMock from '../mocks/mySegmentsEmpty.json'; +import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.till.1500492297547.json'; +import splitChangesMock3 from '../mocks/splitChanges.since.1500492297547.json'; import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; diff --git a/src/__tests__/errorCatching/mySegments.nico@split.io.json b/src/__tests__/errorCatching/mySegments.nico@split.io.json deleted file mode 100644 index 619bab21b..000000000 --- a/src/__tests__/errorCatching/mySegments.nico@split.io.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mySegments": [] -} diff --git a/src/__tests__/errorCatching/node.spec.js b/src/__tests__/errorCatching/node.spec.js index c270d68e4..f3342cab7 100644 --- a/src/__tests__/errorCatching/node.spec.js +++ b/src/__tests__/errorCatching/node.spec.js @@ -7,9 +7,9 @@ import { url } from '../testUtils'; import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; -import splitChangesMock1 from './splitChanges.since.-1.json'; -import splitChangesMock2 from './splitChanges.since.1500492097547.json'; -import splitChangesMock3 from './splitChanges.since.1500492297547.json'; +import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; +import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.till.1500492297547.json'; +import splitChangesMock3 from '../mocks/splitChanges.since.1500492297547.json'; // Option object used to configure mocked routes with a delay of 1.5 seconds. const responseDelay = { delay: 1500 }; diff --git a/src/__tests__/errorCatching/splitChanges.since.-1.json b/src/__tests__/errorCatching/splitChanges.since.-1.json deleted file mode 100644 index 3e83720e6..000000000 --- a/src/__tests__/errorCatching/splitChanges.since.-1.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "splits": [ - { - "trafficTypeName": "account", - "name": "Single_Test", - "trafficAllocation": 100, - "trafficAllocationSeed": -1012499566, - "seed": -88385793, - "status": "ACTIVE", - "killed": false, - "defaultTreatment": "off", - "changeNumber": 1492734008466, - "algo": null, - "conditions": [ - { - "conditionType": "ROLLOUT", - "matcherGroup": { - "combiner": "AND", - "matchers": [ - { - "keySelector": { - "trafficType": "account", - "attribute": null - }, - "matcherType": "ALL_KEYS", - "negate": false, - "userDefinedSegmentMatcherData": null, - "whitelistMatcherData": null, - "unaryNumericMatcherData": null, - "betweenMatcherData": null, - "booleanMatcherData": null, - "dependencyMatcherData": null - } - ] - }, - "partitions": [ - { - "treatment": "on", - "size": 100 - }, - { - "treatment": "off", - "size": 0 - } - ], - "label": "in segment all" - } - ] - } - ], - "since": -1, - "till": 1500492097547 -} diff --git a/src/__tests__/destroy/impressions.json b/src/__tests__/mocks/impressions.json similarity index 100% rename from src/__tests__/destroy/impressions.json rename to src/__tests__/mocks/impressions.json diff --git a/src/__tests__/destroy/mySegments.json b/src/__tests__/mocks/mySegmentsEmpty.json similarity index 100% rename from src/__tests__/destroy/mySegments.json rename to src/__tests__/mocks/mySegmentsEmpty.json diff --git a/src/__tests__/destroy/splitChanges.since.-1.json b/src/__tests__/mocks/splitChanges.since.-1.till.1500492097547.json similarity index 100% rename from src/__tests__/destroy/splitChanges.since.-1.json rename to src/__tests__/mocks/splitChanges.since.-1.till.1500492097547.json diff --git a/src/__tests__/destroy/splitChanges.since.1500492097547.json b/src/__tests__/mocks/splitChanges.since.1500492097547.json similarity index 100% rename from src/__tests__/destroy/splitChanges.since.1500492097547.json rename to src/__tests__/mocks/splitChanges.since.1500492097547.json diff --git a/src/__tests__/errorCatching/splitChanges.since.1500492097547.json b/src/__tests__/mocks/splitChanges.since.1500492097547.till.1500492297547.json similarity index 100% rename from src/__tests__/errorCatching/splitChanges.since.1500492097547.json rename to src/__tests__/mocks/splitChanges.since.1500492097547.till.1500492297547.json diff --git a/src/__tests__/errorCatching/splitChanges.since.1500492297547.json b/src/__tests__/mocks/splitChanges.since.1500492297547.json similarity index 100% rename from src/__tests__/errorCatching/splitChanges.since.1500492297547.json rename to src/__tests__/mocks/splitChanges.since.1500492297547.json diff --git a/src/__tests__/browser.spec.js b/src/__tests__/online/browser.spec.js similarity index 74% rename from src/__tests__/browser.spec.js rename to src/__tests__/online/browser.spec.js index 2c396b437..3ffd03411 100644 --- a/src/__tests__/browser.spec.js +++ b/src/__tests__/online/browser.spec.js @@ -1,32 +1,32 @@ import tape from 'tape-catch'; -import fetchMock from './testUtils/fetchMock'; -import { url } from './testUtils'; -import evaluationsSuite from './browserSuites/evaluations.spec'; -import impressionsSuite from './browserSuites/impressions.spec'; -import impressionsSuiteDebug from './browserSuites/impressions.debug.spec'; -import telemetrySuite from './browserSuites/telemetry.spec'; -import impressionsListenerSuite from './browserSuites/impressions-listener.spec'; -import readinessSuite from './browserSuites/readiness.spec'; -import readyFromCache from './browserSuites/ready-from-cache.spec'; -import { withoutBindingTT, bindingTT } from './browserSuites/events.spec'; -import sharedInstantiationSuite from './browserSuites/shared-instantiation.spec'; -import managerSuite from './browserSuites/manager.spec'; -import ignoreIpAddressesSettingSuite from './browserSuites/ignore-ip-addresses-setting.spec'; -import useBeaconApiSuite from './browserSuites/use-beacon-api.spec'; -import useBeaconDebugApiSuite from './browserSuites/use-beacon-api.debug.spec'; -import readyPromiseSuite from './browserSuites/ready-promise.spec'; -import fetchSpecificSplits from './browserSuites/fetch-specific-splits.spec'; -import userConsent from './browserSuites/user-consent.spec'; -import singleSync from './browserSuites/single-sync.spec'; +import fetchMock from '../testUtils/fetchMock'; +import { url } from '../testUtils'; +import evaluationsSuite from '../browserSuites/evaluations.spec'; +import impressionsSuite from '../browserSuites/impressions.spec'; +import impressionsSuiteDebug from '../browserSuites/impressions.debug.spec'; +import telemetrySuite from '../browserSuites/telemetry.spec'; +import impressionsListenerSuite from '../browserSuites/impressions-listener.spec'; +import readinessSuite from '../browserSuites/readiness.spec'; +import readyFromCache from '../browserSuites/ready-from-cache.spec'; +import { withoutBindingTT, bindingTT } from '../browserSuites/events.spec'; +import sharedInstantiationSuite from '../browserSuites/shared-instantiation.spec'; +import managerSuite from '../browserSuites/manager.spec'; +import ignoreIpAddressesSettingSuite from '../browserSuites/ignore-ip-addresses-setting.spec'; +import useBeaconApiSuite from '../browserSuites/use-beacon-api.spec'; +import useBeaconDebugApiSuite from '../browserSuites/use-beacon-api.debug.spec'; +import readyPromiseSuite from '../browserSuites/ready-promise.spec'; +import fetchSpecificSplits from '../browserSuites/fetch-specific-splits.spec'; +import userConsent from '../browserSuites/user-consent.spec'; +import singleSync from '../browserSuites/single-sync.spec'; -import { settingsFactory } from '../settings'; +import { settingsFactory } from '../../settings'; -import splitChangesMock1 from './mocks/splitchanges.since.-1.json'; -import splitChangesMock2 from './mocks/splitchanges.since.1457552620999.json'; -import mySegmentsFacundo from './mocks/mysegments.facundo@split.io.json'; -import mySegmentsNicolas from './mocks/mysegments.nicolas@split.io.json'; -import mySegmentsMarcio from './mocks/mysegments.marcio@split.io.json'; -import mySegmentsEmmanuel from './mocks/mysegments.emmanuel@split.io.json'; +import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; +import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; +import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; +import mySegmentsNicolas from '../mocks/mysegments.nicolas@split.io.json'; +import mySegmentsMarcio from '../mocks/mysegments.marcio@split.io.json'; +import mySegmentsEmmanuel from '../mocks/mysegments.emmanuel@split.io.json'; const settings = settingsFactory({ core: { diff --git a/src/__tests__/node.spec.js b/src/__tests__/online/node.spec.js similarity index 69% rename from src/__tests__/node.spec.js rename to src/__tests__/online/node.spec.js index d00c76443..5146e99f5 100644 --- a/src/__tests__/node.spec.js +++ b/src/__tests__/online/node.spec.js @@ -1,23 +1,23 @@ import tape from 'tape-catch'; -import fetchMock from './testUtils/fetchMock'; -import { url } from './testUtils'; -import { settingsFactory } from '../settings'; +import fetchMock from '../testUtils/fetchMock/node'; +import { url } from '../testUtils'; +import { settingsFactory } from '../../settings/node'; -import evaluationsSuite from './nodeSuites/evaluations.spec'; -import eventsSuite from './nodeSuites/events.spec'; -import impressionsSuite from './nodeSuites/impressions.spec'; -import impressionsSuiteDebug from './nodeSuites/impressions.debug.spec'; -import telemetrySuite from './nodeSuites/telemetry.spec'; -import impressionsListenerSuite from './nodeSuites/impressions-listener.spec'; -import expectedTreatmentsSuite from './nodeSuites/expected-treatments.spec'; -import managerSuite from './nodeSuites/manager.spec'; -import ipAddressesSetting from './nodeSuites/ip-addresses-setting.spec'; -import ipAddressesSettingDebug from './nodeSuites/ip-addresses-setting.debug.spec'; -import readyPromiseSuite from './nodeSuites/ready-promise.spec'; -import fetchSpecificSplits from './nodeSuites/fetch-specific-splits.spec'; +import evaluationsSuite from '../nodeSuites/evaluations.spec'; +import eventsSuite from '../nodeSuites/events.spec'; +import impressionsSuite from '../nodeSuites/impressions.spec'; +import impressionsSuiteDebug from '../nodeSuites/impressions.debug.spec'; +import telemetrySuite from '../nodeSuites/telemetry.spec'; +import impressionsListenerSuite from '../nodeSuites/impressions-listener.spec'; +import expectedTreatmentsSuite from '../nodeSuites/expected-treatments.spec'; +import managerSuite from '../nodeSuites/manager.spec'; +import ipAddressesSetting from '../nodeSuites/ip-addresses-setting.spec'; +import ipAddressesSettingDebug from '../nodeSuites/ip-addresses-setting.debug.spec'; +import readyPromiseSuite from '../nodeSuites/ready-promise.spec'; +import fetchSpecificSplits from '../nodeSuites/fetch-specific-splits.spec'; -import splitChangesMock1 from './mocks/splitchanges.since.-1.json'; -import splitChangesMock2 from './mocks/splitchanges.since.1457552620999.json'; +import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; +import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; const config = { core: { From 4376008edf230b5d847c56f76eadecb29e4810eb Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Thu, 28 Jul 2022 15:32:40 -0300 Subject: [PATCH 2/6] rename settingsFactory to settingsValidator --- .../browserSuites/evaluations.spec.js | 2 +- src/__tests__/browserSuites/events.spec.js | 7 ++-- .../fetch-specific-splits.spec.js | 5 +-- .../ignore-ip-addresses-setting.spec.js | 8 ++-- .../impressions-listener.spec.js | 6 +-- .../browserSuites/impressions.debug.spec.js | 6 +-- .../browserSuites/impressions.spec.js | 6 +-- src/__tests__/browserSuites/manager.spec.js | 2 +- .../browserSuites/push-corner-cases.spec.js | 6 +-- .../browserSuites/push-fallbacking.spec.js | 12 +++--- .../push-initialization-nopush.spec.js | 7 ++-- .../push-initialization-retries.spec.js | 9 ++-- .../browserSuites/push-refresh-token.spec.js | 9 ++-- .../push-synchronization-retries.spec.js | 8 ++-- .../push-synchronization.spec.js | 6 +-- src/__tests__/browserSuites/readiness.spec.js | 2 +- .../browserSuites/ready-from-cache.spec.js | 2 +- .../browserSuites/ready-promise.spec.js | 17 ++++---- .../shared-instantiation.spec.js | 41 +++++++++++++------ .../browserSuites/single-sync.spec.js | 18 ++++---- src/__tests__/browserSuites/telemetry.spec.js | 2 +- .../use-beacon-api.debug.spec.js | 7 ++-- .../browserSuites/use-beacon-api.spec.js | 11 +++-- .../browserSuites/user-consent.spec.js | 4 +- src/__tests__/consumerMode/node_redis.spec.js | 6 +-- src/__tests__/destroy/browser.spec.js | 7 ++-- src/__tests__/destroy/node.spec.js | 8 ++-- src/__tests__/errorCatching/browser.spec.js | 6 +-- src/__tests__/errorCatching/node.spec.js | 8 ++-- .../gaIntegration/both-integrations.spec.js | 10 +++-- src/__tests__/gaIntegration/browser.spec.js | 6 +-- .../gaIntegration/ga-to-split.spec.js | 7 ++-- src/__tests__/gaIntegration/gaTestUtils.js | 2 +- .../gaIntegration/split-to-ga.spec.js | 6 +-- src/__tests__/mocks/fetchSpecificSplits.js | 2 +- src/__tests__/nodeSuites/evaluations.spec.js | 2 +- src/__tests__/nodeSuites/events.spec.js | 6 +-- .../nodeSuites/expected-treatments.spec.js | 2 +- .../nodeSuites/fetch-specific-splits.spec.js | 4 +- .../nodeSuites/impressions-listener.spec.js | 6 +-- .../nodeSuites/impressions.debug.spec.js | 6 +-- src/__tests__/nodeSuites/impressions.spec.js | 6 +-- .../ip-addresses-setting.debug.spec.js | 6 +-- .../nodeSuites/ip-addresses-setting.spec.js | 6 +-- src/__tests__/nodeSuites/manager.spec.js | 2 +- .../nodeSuites/push-fallbacking.spec.js | 6 +-- .../push-initialization-nopush.spec.js | 7 ++-- .../push-initialization-retries.spec.js | 8 ++-- .../nodeSuites/push-refresh-token.spec.js | 6 +-- .../push-synchronization-retries.spec.js | 8 ++-- .../nodeSuites/push-synchronization.spec.js | 6 +-- .../nodeSuites/ready-promise.spec.js | 14 +++---- src/__tests__/nodeSuites/telemetry.spec.js | 2 +- src/__tests__/offline/browser.spec.js | 14 +++---- src/__tests__/offline/node.spec.js | 8 ++-- src/__tests__/online/browser.spec.js | 9 ++-- src/__tests__/online/node.spec.js | 6 +-- src/__tests__/push/browser.spec.js | 2 +- src/__tests__/push/node.spec.js | 2 +- src/__tests__/testUtils/eventSourceMock.js | 5 ++- .../{fetchMock/browser.js => fetchMock.js} | 0 .../testUtils/fetchMock/package.json | 4 -- .../{fetchMock/node.js => nodeFetchMock.js} | 2 +- src/factory/browser.js | 4 +- src/factory/node.js | 4 +- src/settings/__tests__/browser.spec.js | 14 +++---- src/settings/__tests__/node.spec.js | 24 +++++------ src/settings/browser.js | 2 +- src/settings/node.js | 2 +- 69 files changed, 234 insertions(+), 242 deletions(-) rename src/__tests__/testUtils/{fetchMock/browser.js => fetchMock.js} (100%) delete mode 100644 src/__tests__/testUtils/fetchMock/package.json rename src/__tests__/testUtils/{fetchMock/node.js => nodeFetchMock.js} (82%) diff --git a/src/__tests__/browserSuites/evaluations.spec.js b/src/__tests__/browserSuites/evaluations.spec.js index cc8bee2cc..fe182f292 100644 --- a/src/__tests__/browserSuites/evaluations.spec.js +++ b/src/__tests__/browserSuites/evaluations.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; const SDK_INSTANCES_TO_TEST = 4; diff --git a/src/__tests__/browserSuites/events.spec.js b/src/__tests__/browserSuites/events.spec.js index 396f01d35..9e08f4d6d 100644 --- a/src/__tests__/browserSuites/events.spec.js +++ b/src/__tests__/browserSuites/events.spec.js @@ -1,8 +1,8 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import { url } from '../testUtils'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: 'asd' }, @@ -93,6 +93,7 @@ export function withoutBindingTT(fetchMock, assert) { assert.notOk(client.track('othertraffictype', 'my.checkout.event', null, 'asd'), 'client.track returns false if an event properties was incorrect and it could not be added to the queue.'); } +// Not for JS Browser SDK, because it doesn't let bind traffic types to clients export function bindingTT(fetchMock, assert) { const localSettings = Object.assign({}, baseSettings); localSettings.core.trafficType = 'binded_tt'; diff --git a/src/__tests__/browserSuites/fetch-specific-splits.spec.js b/src/__tests__/browserSuites/fetch-specific-splits.spec.js index 58f55f17f..ffed3cc20 100644 --- a/src/__tests__/browserSuites/fetch-specific-splits.spec.js +++ b/src/__tests__/browserSuites/fetch-specific-splits.spec.js @@ -1,6 +1,5 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import { splitFilters, queryStrings, groupedFilters } from '../mocks/fetchSpecificSplits'; -// import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; const baseConfig = { core: { @@ -46,4 +45,4 @@ export default function fetchSpecificSplits(fetchMock, assert) { } } -} \ No newline at end of file +} diff --git a/src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js b/src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js index 05383e38b..4503d82fe 100644 --- a/src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js +++ b/src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; @@ -100,7 +100,7 @@ export default function (fetchMock, assert) { }; // Mock GET endpoints before creating the client - const settings = settingsFactory(config); + const settings = settingsValidator(config); fetchMock.getOnce(url(settings, '/splitChanges?since=-1'), { status: 200, body: splitChangesMock1 }); fetchMock.getOnce(url(settings, '/splitChanges?since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } }); fetchMock.getOnce(url(settings, `/mySegments/${encodeURIComponent(config.core.key)}`), { status: 200, body: { mySegments: [] } }); @@ -139,4 +139,4 @@ export default function (fetchMock, assert) { configSample => mockAndAssertIPAddressesEnabled(configSample) ); -} \ No newline at end of file +} diff --git a/src/__tests__/browserSuites/impressions-listener.spec.js b/src/__tests__/browserSuites/impressions-listener.spec.js index 5ca928804..a48b75bc5 100644 --- a/src/__tests__/browserSuites/impressions-listener.spec.js +++ b/src/__tests__/browserSuites/impressions-listener.spec.js @@ -1,8 +1,8 @@ import sinon from 'sinon'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: '' }, diff --git a/src/__tests__/browserSuites/impressions.debug.spec.js b/src/__tests__/browserSuites/impressions.debug.spec.js index bbccfc9db..ba8fa8afe 100644 --- a/src/__tests__/browserSuites/impressions.debug.spec.js +++ b/src/__tests__/browserSuites/impressions.debug.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; @@ -11,7 +11,7 @@ const baseUrls = { events: 'https://events.baseurl/impressionsDebugSuite' }; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: 'asd' }, diff --git a/src/__tests__/browserSuites/impressions.spec.js b/src/__tests__/browserSuites/impressions.spec.js index 8e73c5df2..1f2f71d9e 100644 --- a/src/__tests__/browserSuites/impressions.spec.js +++ b/src/__tests__/browserSuites/impressions.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; @@ -12,7 +12,7 @@ const baseUrls = { events: 'https://events.baseurl/impressionsSuite' }; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: 'asd' }, diff --git a/src/__tests__/browserSuites/manager.spec.js b/src/__tests__/browserSuites/manager.spec.js index ce13cd358..a530dd8ab 100644 --- a/src/__tests__/browserSuites/manager.spec.js +++ b/src/__tests__/browserSuites/manager.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import splitChangesMockReal from '../mocks/splitchanges.real.json'; import map from 'lodash/map'; import { url } from '../testUtils'; diff --git a/src/__tests__/browserSuites/push-corner-cases.spec.js b/src/__tests__/browserSuites/push-corner-cases.spec.js index 57ae84228..3c9cbef80 100644 --- a/src/__tests__/browserSuites/push-corner-cases.spec.js +++ b/src/__tests__/browserSuites/push-corner-cases.spec.js @@ -7,8 +7,8 @@ import { nearlyEqual, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const userKey = 'nicolas@split.io'; @@ -28,7 +28,7 @@ const config = { prefix: 'pushCornerCase' }, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_SSE_OPEN = 100; const MILLIS_SPLIT_KILL_EVENT = 200; diff --git a/src/__tests__/browserSuites/push-fallbacking.spec.js b/src/__tests__/browserSuites/push-fallbacking.spec.js index 878a3f5ea..5549eab7e 100644 --- a/src/__tests__/browserSuites/push-fallbacking.spec.js +++ b/src/__tests__/browserSuites/push-fallbacking.spec.js @@ -32,8 +32,8 @@ import { nearlyEqual, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const userKey = 'nicolas@split.io'; const secondUserKey = 'marcio@split.io'; @@ -57,7 +57,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_SSE_OPEN = 100; const MILLIS_STREAMING_DOWN_OCCUPANCY = MILLIS_SSE_OPEN + 100; @@ -106,9 +106,7 @@ export function testFallbacking(fetchMock, assert) { assert.plan(20); fetchMock.reset(); - let start, splitio, client; - // eslint-disable-next-line no-unused-vars - let secondClient; + let start, splitio, client, secondClient; // mock SSE open and message events setMockListener((eventSourceInstance) => { @@ -194,7 +192,7 @@ export function testFallbacking(fetchMock, assert) { }, MILLIS_STREAMING_DISABLED_CONTROL - MILLIS_STREAMING_RESET_WHILE_PUSH_UP); // send a CONTROL event for disabling push and switching to polling setTimeout(() => { - client.destroy().then(() => { + Promise.all([secondClient.destroy(), client.destroy()]).then(() => { assert.pass('client destroyed'); }); }, MILLIS_DESTROY - MILLIS_STREAMING_RESET_WHILE_PUSH_UP); // destroy client diff --git a/src/__tests__/browserSuites/push-initialization-nopush.spec.js b/src/__tests__/browserSuites/push-initialization-nopush.spec.js index 6e0e0a4f7..b8e7bc437 100644 --- a/src/__tests__/browserSuites/push-initialization-nopush.spec.js +++ b/src/__tests__/browserSuites/push-initialization-nopush.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsNicolas from '../mocks/mysegments.nicolas@split.io.json'; @@ -7,7 +7,6 @@ import authPushDisabled from '../mocks/auth.pushDisabled.json'; import authPushEnabledNicolas from '../mocks/auth.pushEnabled.nicolas@split.io.json'; import authInvalidCredentials from '../mocks/auth.invalidCredentials.txt'; import { nearlyEqual, url } from '../testUtils'; - import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; const baseUrls = { @@ -34,7 +33,7 @@ const config = { streamingEnabled: true, debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); /** * Sequence of calls: diff --git a/src/__tests__/browserSuites/push-initialization-retries.spec.js b/src/__tests__/browserSuites/push-initialization-retries.spec.js index 6585076d8..0879954a9 100644 --- a/src/__tests__/browserSuites/push-initialization-retries.spec.js +++ b/src/__tests__/browserSuites/push-initialization-retries.spec.js @@ -6,11 +6,9 @@ import authPushBadToken from '../mocks/auth.pushBadToken.json'; import mySegmentsNicolasMock from '../mocks/mysegments.nicolas@split.io.json'; import { nearlyEqual, url } from '../testUtils'; - import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; - -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const baseUrls = { sdk: 'https://sdk.push-initialization-retries/api', @@ -36,7 +34,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); /** * Sequence of calls: @@ -67,7 +65,6 @@ export function testPushRetriesDueToAuthErrors(fetchMock, assert) { fetchMock.get({ url: url(settings, '/mySegments/nicolas%40split.io'), repeat: 4 }, { status: 200, body: mySegmentsNicolasMock }); fetchMock.getOnce(url(settings, '/splitChanges?since=-1'), function () { - console.log('split changes'); const lapse = Date.now() - start; assert.true(nearlyEqual(lapse, 0), 'initial sync'); return { status: 200, body: splitChangesMock1 }; diff --git a/src/__tests__/browserSuites/push-refresh-token.spec.js b/src/__tests__/browserSuites/push-refresh-token.spec.js index c9a23a9d9..b4ebf8e46 100644 --- a/src/__tests__/browserSuites/push-refresh-token.spec.js +++ b/src/__tests__/browserSuites/push-refresh-token.spec.js @@ -1,18 +1,17 @@ import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsNicolasMock1 from '../mocks/mysegments.nicolas@split.io.json'; - import authPushEnabledNicolas from '../mocks/auth.pushEnabled.nicolas@split.io.601secs.json'; import authPushDisabled from '../mocks/auth.pushDisabled.json'; import { nearlyEqual, url } from '../testUtils'; -// Replace original EventSource with mock +// Replace global EventSource with mock import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const userKey = 'nicolas@split.io'; @@ -33,7 +32,7 @@ const config = { }, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_CONNDELAY = 500; const MILLIS_REFRESH_TOKEN = 1000; diff --git a/src/__tests__/browserSuites/push-synchronization-retries.spec.js b/src/__tests__/browserSuites/push-synchronization-retries.spec.js index 03c79554f..c106710c6 100644 --- a/src/__tests__/browserSuites/push-synchronization-retries.spec.js +++ b/src/__tests__/browserSuites/push-synchronization-retries.spec.js @@ -4,12 +4,10 @@ import splitChangesMock3 from '../mocks/splitchanges.since.1457552620999.till.14 import mySegmentsNicolasMock1 from '../mocks/mysegments.nicolas@split.io.json'; import mySegmentsNicolasMock2 from '../mocks/mysegments.nicolas@split.io.mock2.json'; import mySegmentsMarcio from '../mocks/mysegments.marcio@split.io.json'; - import splitUpdateMessage from '../mocks/message.SPLIT_UPDATE.1457552649999.json'; import oldSplitUpdateMessage from '../mocks/message.SPLIT_UPDATE.1457552620999.json'; import mySegmentsUpdateMessage from '../mocks/message.MY_SEGMENTS_UPDATE.nicolas@split.io.1457552640000.json'; import splitKillMessage from '../mocks/message.SPLIT_KILL.1457552650000.json'; - import authPushEnabledNicolas from '../mocks/auth.pushEnabled.nicolas@split.io.json'; import { nearlyEqual, url } from '../testUtils'; @@ -19,8 +17,8 @@ import { Backoff } from '@splitsoftware/splitio-commons/src/utils/Backoff'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const userKey = 'nicolas@split.io'; const otherUserKeySync = 'marcio@split.io'; @@ -39,7 +37,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_SSE_OPEN = 100; diff --git a/src/__tests__/browserSuites/push-synchronization.spec.js b/src/__tests__/browserSuites/push-synchronization.spec.js index 9d4f5e594..72893dcd9 100644 --- a/src/__tests__/browserSuites/push-synchronization.spec.js +++ b/src/__tests__/browserSuites/push-synchronization.spec.js @@ -29,8 +29,8 @@ import includes from 'lodash/includes'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const userKey = 'nicolas@split.io'; const otherUserKey = 'marcio@split.io'; @@ -52,7 +52,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_SSE_OPEN = 100; const MILLIS_FIRST_SPLIT_UPDATE_EVENT = 200; diff --git a/src/__tests__/browserSuites/readiness.spec.js b/src/__tests__/browserSuites/readiness.spec.js index c6897fafd..fb7d83f4b 100644 --- a/src/__tests__/browserSuites/readiness.spec.js +++ b/src/__tests__/browserSuites/readiness.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; diff --git a/src/__tests__/browserSuites/ready-from-cache.spec.js b/src/__tests__/browserSuites/ready-from-cache.spec.js index 45a56012e..9950e150f 100644 --- a/src/__tests__/browserSuites/ready-from-cache.spec.js +++ b/src/__tests__/browserSuites/ready-from-cache.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; diff --git a/src/__tests__/browserSuites/ready-promise.spec.js b/src/__tests__/browserSuites/ready-promise.spec.js index 22136eacb..d1b29f6ef 100644 --- a/src/__tests__/browserSuites/ready-promise.spec.js +++ b/src/__tests__/browserSuites/ready-promise.spec.js @@ -10,7 +10,7 @@ const consoleSpy = { error: sinon.spy(console, 'error'), }; -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; @@ -418,7 +418,7 @@ export default function readyPromiseAssertions(fetchMock, assert) { // We also use the manager to get some of the promises const manager = splitio.manager(); - // promise1 is handled inmediately. Thus, the 'reject' callback is expected to be called in 0.15 seconds aprox. + // promise1 is handled immediately. Thus, the 'reject' callback is expected to be called in 0.15 seconds aprox. setTimeout(() => { const promise1 = client.ready(); const tStart = Date.now(); @@ -434,7 +434,7 @@ export default function readyPromiseAssertions(fetchMock, assert) { }); }, 0); - // promise2 is handled in 0.15 seconds, when the promise is just rejected. Thus, the 'reject' callback is expected to be called inmediately (0 seconds aprox). + // promise2 is handled in 0.15 seconds, when the promise is just rejected. Thus, the 'reject' callback is expected to be called immediately (0 seconds aprox). setTimeout(() => { const promise2 = manager.ready(); const tStart = Date.now(); @@ -446,11 +446,11 @@ export default function readyPromiseAssertions(fetchMock, assert) { t.pass('### SDK TIMED OUT - time out is triggered before retry attempt finishes'); assertGetTreatmentControlNotReady(t, client); const tDelta = Date.now() - tStart; - assert.ok(tDelta < 20, 'The "reject" callback is expected to be called inmediately (0 seconds aprox).'); + assert.ok(tDelta < 20, 'The "reject" callback is expected to be called immediately (0 seconds aprox).'); }); }, fromSecondsToMillis(0.15)); - // promise3 is handled in 0.2 seconds, when the promise is just resolved. Thus, the 'resolve' callback is expected to be called inmediately (0 seconds aprox). + // promise3 is handled in 0.2 seconds, when the promise is just resolved. Thus, the 'resolve' callback is expected to be called immediately (0 seconds aprox). setTimeout(() => { const promise3 = manager.ready(); const tStart = Date.now(); @@ -459,7 +459,7 @@ export default function readyPromiseAssertions(fetchMock, assert) { t.pass('### SDK IS READY - retry attempt finishes before the requestTimeoutBeforeReady limit'); assertGetTreatmentWhenReady(t, client); const tDelta = Date.now() - tStart; - assert.ok(tDelta < 20, 'The "resolve" callback is expected to be called inmediately (0 seconds aprox).'); + assert.ok(tDelta < 20, 'The "resolve" callback is expected to be called immediately (0 seconds aprox).'); return Promise.resolve(); }, () => { @@ -546,12 +546,11 @@ export default function readyPromiseAssertions(fetchMock, assert) { t.false(consoleSpy.log.calledWithExactly('[WARN] splitio => No listeners for SDK Readiness detected. Incorrect control treatments could have been logged if you called getTreatment/s while the SDK was not yet ready.'), 'No warning logged'); - // eslint-disable-next-line no-unused-vars const sharedClientWithoutCb = splitio.client('emiliano@split.io'); setTimeout(() => { t.true(consoleSpy.log.calledWithExactly('[WARN] splitio => No listeners for SDK Readiness detected. Incorrect control treatments could have been logged if you called getTreatment/s while the SDK was not yet ready.'), 'Warning logged'); - client.destroy().then(() => { + Promise.all([sharedClientWithoutCb.destroy(), client.destroy()]).then(() => { client.ready() .then(() => { t.pass('### SDK IS READY - the promise remains resolved after client destruction.'); @@ -629,4 +628,4 @@ export default function readyPromiseAssertions(fetchMock, assert) { // * Basic is ready path: startup without retries on failure and response taking less than 'requestTimeoutBeforeReady'. // * Ready with retry attempts and refresh. // * Ready after timeout with retry attempts and refresh. -} \ No newline at end of file +} diff --git a/src/__tests__/browserSuites/shared-instantiation.spec.js b/src/__tests__/browserSuites/shared-instantiation.spec.js index 7476f7fac..20e0b9cbb 100644 --- a/src/__tests__/browserSuites/shared-instantiation.spec.js +++ b/src/__tests__/browserSuites/shared-instantiation.spec.js @@ -1,14 +1,19 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import { url } from '../testUtils'; -const settings = settingsFactory({ + +const settings = settingsValidator({ core: { key: 'asd' }, streamingEnabled: false }); -export default function (startWithTT, fetchMock, assert) { +/** + * @param {boolean} startWithTT whether the SDK settings includes a `core.trafficType` config param or not + * @param {boolean} sdkIgnoredTT whether the SDK ignores TT (i.e, clients without bound TT) or not (client with optional bound TT) + */ +export default function sharedInstantiationSuite(startWithTT, sdkIgnoresTT, fetchMock, assert) { // mocking mySegments endpoints with delays for new clients fetchMock.get(url(settings, '/mySegments/emiliano%2Fsplit.io'), { status: 200, body: { mySegments: [] } }, { delay: 100 }); fetchMock.get(url(settings, '/mySegments/matias%25split.io'), { status: 200, body: { mySegments: [] } }, { delay: 200 }); @@ -37,8 +42,13 @@ export default function (startWithTT, fetchMock, assert) { assert.throws(factory.client.bind(factory, null), 'Calling factory.client() with a key parameter that is not a valid key should throw.'); assert.throws(factory.client.bind(factory, {}), 'Calling factory.client() with a key parameter that is not a valid key should throw.'); - assert.throws(factory.client.bind(factory, 'validKey', null), 'Calling factory.client() with a traffic type parameter that is not a valid should throw.'); - assert.throws(factory.client.bind(factory, 'validKey', []), 'Calling factory.client() with a traffic type parameter that is not a valid should throw.'); + if (sdkIgnoresTT) { // JS Browser SDK + assert.doesNotThrow(factory.client.bind(factory, 'facundo@split.io', null), 'Calling factory.client() with a traffic type parameter that is not valid shouldn\'t throw because it is ignored.'); + assert.doesNotThrow(factory.client.bind(factory, 'facundo@split.io', []), 'Calling factory.client() with a traffic type parameter that is not valid shouldn\'t throw because it is ignored.'); + } else { // JS SDK (Isomorphic) + assert.throws(factory.client.bind(factory, 'facundo@split.io', null), 'Calling factory.client() with a traffic type parameter that is not a valid should throw.'); + assert.throws(factory.client.bind(factory, 'facundo@split.io', []), 'Calling factory.client() with a traffic type parameter that is not a valid should throw.'); + } // Used for wrapping up test when we should const finished = (function* f() { @@ -96,28 +106,33 @@ export default function (startWithTT, fetchMock, assert) { fetchMock.postOnce(url(settings, '/events/bulk'), (url, opts) => { const events = JSON.parse(opts.body); - assert.equal(events.length, 3, 'Tracked only valid events'); - assert.equal(events[0].trafficTypeName, `${startWithTT ? 'start' : 'main'}_tt`, 'matching traffic types both binded and provided through client.track()'); - assert.equal(events[1].trafficTypeName, 'nico_tt', 'matching traffic types both binded and provided through client.track()'); - assert.equal(events[2].trafficTypeName, 'marcio_tt', 'matching traffic types both binded and provided through client.track()'); + assert.equal(events.length, sdkIgnoresTT ? 2 : 3, 'Tracked only valid events'); + assert.equal(events[0].trafficTypeName, `${startWithTT && !sdkIgnoresTT ? 'start' : 'main'}_tt`, 'matching traffic types both binded and provided through client.track()'); + assert.equal(events[1].trafficTypeName, 'marcio_tt', 'matching traffic types both binded and provided through client.track()'); + if (!sdkIgnoresTT) assert.equal(events[2].trafficTypeName, 'nico_tt', 'matching traffic types both binded and provided through client.track()'); finished.next(); return 200; }); - if (startWithTT) { + if (startWithTT && !sdkIgnoresTT) { assert.true(mainClient.track('myEvent', 10), 'If we specified the TT via settings, we should be able to track events without passing it as param'); } else { assert.false(mainClient.track('myEvent'), 'If we have not specified TT via settings, it should be required on client.track()'); assert.true(mainClient.track('main_tt', 'myEvent', 10), 'If we have not specified TT via settings, it should be required on client.track()'); } - // Shared instance with TT on instantiation - assert.true(nicolasClient.track('nicoEvent', 10), 'If a shared client was created passing both key and TT, the latter gets binded to it so it is not necessary to provide the traffic type to client.track()'); // Shared instance without TT on instantiation assert.false(marcioClient.track('marcioEvent'), 'If a shared client was created passing only key, no traffic type is binded so we need to provide one for client.track()'); assert.true(marcioClient.track('marcio_tt', 'marcioEvent', 10), 'If a shared client was created passing only key, no traffic type is binded so we need to provide one for client.track()'); + + // Shared instance with TT on instantiation + if (sdkIgnoresTT) { + assert.false(nicolasClient.track('nicoEvent', 10), 'If a shared client was created passing both key and TT but the SDK ignores TT, the latter doesn\'t get binded to it so it is necessary to provide the traffic type to client.track()'); + } else { + assert.true(nicolasClient.track('nicoEvent', 10), 'If a shared client was created passing both key and TT, the latter gets binded to it so it is not necessary to provide the traffic type to client.track()'); + } }; /* Assert initial state */ diff --git a/src/__tests__/browserSuites/single-sync.spec.js b/src/__tests__/browserSuites/single-sync.spec.js index c396f2f10..4929fc135 100644 --- a/src/__tests__/browserSuites/single-sync.spec.js +++ b/src/__tests__/browserSuites/single-sync.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import { url } from '../testUtils'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; @@ -32,11 +32,11 @@ const config = { }, streamingEnabled: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); export default function singleSync(fetchMock, assert) { - - fetchMock.getOnce(url(settings, '/splitChanges?since=-1'), function () { + + fetchMock.getOnce(url(settings, '/splitChanges?since=-1'), function () { assert.pass('first splitChanges fetch'); return { status: 200, body: splitChangesMock1 }; }); @@ -44,7 +44,7 @@ export default function singleSync(fetchMock, assert) { assert.fail('splitChanges should not be called again'); return { status: 200, body: splitChangesMock2 }; }); - + fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), function () { assert.pass('first mySegments fetch'); return { status: 200, body: mySegmentsNicolasMock2 }; @@ -53,13 +53,13 @@ export default function singleSync(fetchMock, assert) { assert.fail('mySegments should not be called again'); return { status: 200, body: mySegmentsNicolasMock2 }; }); - + let splitio, client = false; - + splitio = SplitFactory(config); client = splitio.client(); client.on(client.Event.SDK_READY, () => { setTimeout(() => client.destroy().then(() => assert.end()), 1000); }); -} \ No newline at end of file +} diff --git a/src/__tests__/browserSuites/telemetry.spec.js b/src/__tests__/browserSuites/telemetry.spec.js index e6ebbad22..a122a7491 100644 --- a/src/__tests__/browserSuites/telemetry.spec.js +++ b/src/__tests__/browserSuites/telemetry.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; const baseUrls = { diff --git a/src/__tests__/browserSuites/use-beacon-api.debug.spec.js b/src/__tests__/browserSuites/use-beacon-api.debug.spec.js index 9d604b494..3644b2bb3 100644 --- a/src/__tests__/browserSuites/use-beacon-api.debug.spec.js +++ b/src/__tests__/browserSuites/use-beacon-api.debug.spec.js @@ -1,6 +1,6 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; @@ -22,7 +22,7 @@ const config = { } }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); // Spy calls to Beacon API method let sendBeaconSpyDebug; @@ -128,7 +128,6 @@ function fallbackTest(fetchMock, assert) { // synchronize client destruction when both endpoints ('/testImpressions/bulk' and '/events/bulk') are called const finish = (function* () { yield; - // @TODO review why we must destroy client in a different event-loop cycle, compared to axios-mock-adapter setTimeout(function () { client.destroy().then(function () { sendBeaconSpyDebug.restore(); diff --git a/src/__tests__/browserSuites/use-beacon-api.spec.js b/src/__tests__/browserSuites/use-beacon-api.spec.js index d36ceaf45..cf7e7aa43 100644 --- a/src/__tests__/browserSuites/use-beacon-api.spec.js +++ b/src/__tests__/browserSuites/use-beacon-api.spec.js @@ -1,10 +1,10 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; -import { url } from '../testUtils'; import { OPTIMIZED } from '@splitsoftware/splitio-commons/src/utils/constants'; +import { url } from '../testUtils'; import { triggerPagehideEvent, triggerVisibilitychange } from '../testUtils/browser'; const config = { @@ -19,7 +19,7 @@ const config = { streamingEnabled: false }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); // Spy calls to Beacon API method let sendBeaconSpy; @@ -142,7 +142,6 @@ function fallbackTest(fetchMock, assert) { const finish = (function* () { yield; yield; - // @TODO review why we must destroy client in a different event-loop cycle, compared to axios-mock-adapter setTimeout(function () { client.destroy().then(function () { sendBeaconSpy.restore(); @@ -183,4 +182,4 @@ function fallbackTest(fetchMock, assert) { }); } -export default beaconApiNotSendTest; \ No newline at end of file +export default beaconApiNotSendTest; diff --git a/src/__tests__/browserSuites/user-consent.spec.js b/src/__tests__/browserSuites/user-consent.spec.js index 7dd3cad9e..f7de43cc5 100644 --- a/src/__tests__/browserSuites/user-consent.spec.js +++ b/src/__tests__/browserSuites/user-consent.spec.js @@ -1,7 +1,7 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../'; -import { triggerPagehideEvent } from '../testUtils/browser'; +import { SplitFactory } from '../../index'; import { nearlyEqual, url } from '../testUtils'; +import { triggerPagehideEvent } from '../testUtils/browser'; const trackedImpressions = []; diff --git a/src/__tests__/consumerMode/node_redis.spec.js b/src/__tests__/consumerMode/node_redis.spec.js index f41c009fa..13d25d48b 100644 --- a/src/__tests__/consumerMode/node_redis.spec.js +++ b/src/__tests__/consumerMode/node_redis.spec.js @@ -7,11 +7,11 @@ import sinon from 'sinon'; import RedisServer from 'redis-server'; import RedisClient from 'ioredis'; import { exec } from 'child_process'; -import { SplitFactory } from '../..'; +import { SplitFactory } from '../../index'; import { merge } from '@splitsoftware/splitio-commons/src/utils/lang'; import { KeyBuilderSS } from '@splitsoftware/splitio-commons/src/storages/KeyBuilderSS'; import { validatePrefix } from '@splitsoftware/splitio-commons/src/storages/KeyBuilder'; -import { settingsFactory } from '../../settings/node'; +import { settingsValidator } from '../../settings/node'; import { nearlyEqual } from '../testUtils'; import { version } from '../../../package.json'; @@ -340,7 +340,7 @@ tape('NodeJS Redis', function (t) { for (let config of configs) { // Redis client and keys required to check Redis store. - const setting = settingsFactory(config); + const setting = settingsValidator(config); const connection = new RedisClient(setting.storage.options.url); const keys = new KeyBuilderSS(validatePrefix(setting.storage.prefix)); const eventKey = keys.buildEventsKey(); diff --git a/src/__tests__/destroy/browser.spec.js b/src/__tests__/destroy/browser.spec.js index 1c46b4852..6c234daa9 100644 --- a/src/__tests__/destroy/browser.spec.js +++ b/src/__tests__/destroy/browser.spec.js @@ -3,15 +3,14 @@ import fetchMock from '../testUtils/fetchMock'; import { url } from '../testUtils'; import map from 'lodash/map'; import pick from 'lodash/pick'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; - +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.json'; import mySegmentsMock from '../mocks/mySegmentsEmpty.json'; import impressionsMock from '../mocks/impressions.json'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: 'facundo@split.io' }, diff --git a/src/__tests__/destroy/node.spec.js b/src/__tests__/destroy/node.spec.js index 90fad3d53..d1102c6ee 100644 --- a/src/__tests__/destroy/node.spec.js +++ b/src/__tests__/destroy/node.spec.js @@ -1,12 +1,12 @@ import tape from 'tape-catch'; import map from 'lodash/map'; import pick from 'lodash/pick'; -import fetchMock from '../testUtils/fetchMock'; +import fetchMock from '../testUtils/nodeFetchMock'; import { url } from '../testUtils'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: 'facundo@split.io' }, diff --git a/src/__tests__/errorCatching/browser.spec.js b/src/__tests__/errorCatching/browser.spec.js index 1460b6199..5c0504fad 100644 --- a/src/__tests__/errorCatching/browser.spec.js +++ b/src/__tests__/errorCatching/browser.spec.js @@ -7,10 +7,10 @@ import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547 import mySegmentsMock from '../mocks/mySegmentsEmpty.json'; import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.till.1500492297547.json'; import splitChangesMock3 from '../mocks/splitChanges.since.1500492297547.json'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { authorizationKey: '' }, diff --git a/src/__tests__/errorCatching/node.spec.js b/src/__tests__/errorCatching/node.spec.js index f3342cab7..0d86a9f24 100644 --- a/src/__tests__/errorCatching/node.spec.js +++ b/src/__tests__/errorCatching/node.spec.js @@ -1,11 +1,11 @@ // Here we are testing exceptions and the handler should be ours, we need to avoid tape-catch import tape from 'tape'; import includes from 'lodash/includes'; -import fetchMock from '../testUtils/fetchMock'; +import fetchMock from '../testUtils/nodeFetchMock'; import { url } from '../testUtils'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.till.1500492297547.json'; @@ -14,7 +14,7 @@ import splitChangesMock3 from '../mocks/splitChanges.since.1500492297547.json'; // Option object used to configure mocked routes with a delay of 1.5 seconds. const responseDelay = { delay: 1500 }; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { authorizationKey: '' }, diff --git a/src/__tests__/gaIntegration/both-integrations.spec.js b/src/__tests__/gaIntegration/both-integrations.spec.js index 5ec8b35b7..b935cbb95 100644 --- a/src/__tests__/gaIntegration/both-integrations.spec.js +++ b/src/__tests__/gaIntegration/both-integrations.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import { gaSpy, gaTag } from './gaTestUtils'; import includes from 'lodash/includes'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; @@ -25,7 +25,7 @@ const config = { impressionsMode: DEBUG, } }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); export default function (fetchMock, assert) { @@ -35,7 +35,9 @@ export default function (fetchMock, assert) { assert.test(t => { const customHits = [{ hitType: 'pageview' }, { hitType: 'event' }]; + /* [eventType] */ const splitTrackParams = [['some_event'], ['other_event'], ['another_event']]; + /* [splitName] */ const splitGetTreatmentParams = [['hierarchical_splits_test']]; // Generator to synchronize the call of t.end() when both impressions and events endpoints were invoked. @@ -133,4 +135,4 @@ export default function (fetchMock, assert) { }); }); -} \ No newline at end of file +} diff --git a/src/__tests__/gaIntegration/browser.spec.js b/src/__tests__/gaIntegration/browser.spec.js index 6d61aea16..c1fbe676a 100644 --- a/src/__tests__/gaIntegration/browser.spec.js +++ b/src/__tests__/gaIntegration/browser.spec.js @@ -4,13 +4,11 @@ import { url } from '../testUtils'; import gaToSplitSuite from './ga-to-split.spec'; import splitToGaSuite from './split-to-ga.spec'; import bothIntegrationsSuite from './both-integrations.spec'; - -import { settingsFactory } from '../../settings'; - +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: 'facundo@split.io' } diff --git a/src/__tests__/gaIntegration/ga-to-split.spec.js b/src/__tests__/gaIntegration/ga-to-split.spec.js index 747f80642..5285b02e4 100644 --- a/src/__tests__/gaIntegration/ga-to-split.spec.js +++ b/src/__tests__/gaIntegration/ga-to-split.spec.js @@ -1,10 +1,9 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import { gaSpy, gaTag, addGaTag, removeGaTag } from './gaTestUtils'; import { url } from '../testUtils'; - const config = { core: { key: 'facundo@split.io', @@ -18,7 +17,7 @@ const config = { }, streamingEnabled: false }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); export default function (fetchMock, assert) { diff --git a/src/__tests__/gaIntegration/gaTestUtils.js b/src/__tests__/gaIntegration/gaTestUtils.js index dd8ba5ac0..e0aac43e3 100644 --- a/src/__tests__/gaIntegration/gaTestUtils.js +++ b/src/__tests__/gaIntegration/gaTestUtils.js @@ -91,4 +91,4 @@ export function addGaTag(gaAlias = 'ga') { */ export function removeGaTag(gaAlias = 'ga') { window[window['GoogleAnalyticsObject'] || gaAlias] = undefined; -} \ No newline at end of file +} diff --git a/src/__tests__/gaIntegration/split-to-ga.spec.js b/src/__tests__/gaIntegration/split-to-ga.spec.js index 1285d6f01..6d2810c04 100644 --- a/src/__tests__/gaIntegration/split-to-ga.spec.js +++ b/src/__tests__/gaIntegration/split-to-ga.spec.js @@ -1,6 +1,6 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import { gaSpy, gaTag, removeGaTag, addGaTag } from './gaTestUtils'; import { SPLIT_IMPRESSION, SPLIT_EVENT, DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; @@ -29,7 +29,7 @@ const config = { } }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); export default function (fetchMock, assert) { diff --git a/src/__tests__/mocks/fetchSpecificSplits.js b/src/__tests__/mocks/fetchSpecificSplits.js index 5833189c4..5df732de3 100644 --- a/src/__tests__/mocks/fetchSpecificSplits.js +++ b/src/__tests__/mocks/fetchSpecificSplits.js @@ -74,4 +74,4 @@ export const groupedFilters = [ byName: valuesExamples[8], byPrefix: [] } -]; \ No newline at end of file +]; diff --git a/src/__tests__/nodeSuites/evaluations.spec.js b/src/__tests__/nodeSuites/evaluations.spec.js index 46bbd2f82..93503da6c 100644 --- a/src/__tests__/nodeSuites/evaluations.spec.js +++ b/src/__tests__/nodeSuites/evaluations.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; const SDK_INSTANCES_TO_TEST = 4; diff --git a/src/__tests__/nodeSuites/events.spec.js b/src/__tests__/nodeSuites/events.spec.js index 062e96560..778b1dd8d 100644 --- a/src/__tests__/nodeSuites/events.spec.js +++ b/src/__tests__/nodeSuites/events.spec.js @@ -1,9 +1,9 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import { url } from '../testUtils'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: 'asd' }, diff --git a/src/__tests__/nodeSuites/expected-treatments.spec.js b/src/__tests__/nodeSuites/expected-treatments.spec.js index 05b46ac87..fe9f0cc4d 100644 --- a/src/__tests__/nodeSuites/expected-treatments.spec.js +++ b/src/__tests__/nodeSuites/expected-treatments.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import fs from 'fs'; import rl from 'readline'; import { url } from '../testUtils'; diff --git a/src/__tests__/nodeSuites/fetch-specific-splits.spec.js b/src/__tests__/nodeSuites/fetch-specific-splits.spec.js index 9280a7328..4aaeb736f 100644 --- a/src/__tests__/nodeSuites/fetch-specific-splits.spec.js +++ b/src/__tests__/nodeSuites/fetch-specific-splits.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import { splitFilters, queryStrings, groupedFilters } from '../mocks/fetchSpecificSplits'; const baseConfig = { @@ -43,4 +43,4 @@ export default function fetchSpecificSplits(fetchMock, assert) { } } -} \ No newline at end of file +} diff --git a/src/__tests__/nodeSuites/impressions-listener.spec.js b/src/__tests__/nodeSuites/impressions-listener.spec.js index fe26fb364..b4f50f526 100644 --- a/src/__tests__/nodeSuites/impressions-listener.spec.js +++ b/src/__tests__/nodeSuites/impressions-listener.spec.js @@ -1,8 +1,8 @@ import sinon from 'sinon'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: '' }, diff --git a/src/__tests__/nodeSuites/impressions.debug.spec.js b/src/__tests__/nodeSuites/impressions.debug.spec.js index 5c10f8065..35da7b04b 100644 --- a/src/__tests__/nodeSuites/impressions.debug.spec.js +++ b/src/__tests__/nodeSuites/impressions.debug.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; @@ -10,7 +10,7 @@ const baseUrls = { events: 'https://events.baseurl/impressionsDebugSuite' }; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: '' }, diff --git a/src/__tests__/nodeSuites/impressions.spec.js b/src/__tests__/nodeSuites/impressions.spec.js index 098aefdf2..147115c05 100644 --- a/src/__tests__/nodeSuites/impressions.spec.js +++ b/src/__tests__/nodeSuites/impressions.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import { SDK_NOT_READY } from '@splitsoftware/splitio-commons/src/utils/labels'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; @@ -12,7 +12,7 @@ const baseUrls = { events: 'https://events.baseurl/impressionsSuite' }; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: '' }, diff --git a/src/__tests__/nodeSuites/ip-addresses-setting.debug.spec.js b/src/__tests__/nodeSuites/ip-addresses-setting.debug.spec.js index 61ae5f37c..38fc8a89d 100644 --- a/src/__tests__/nodeSuites/ip-addresses-setting.debug.spec.js +++ b/src/__tests__/nodeSuites/ip-addresses-setting.debug.spec.js @@ -1,7 +1,7 @@ import osFunction from 'os'; import ipFunction from '../../utils/ip'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; @@ -64,7 +64,7 @@ export default function ipAddressesSettingAssertions(fetchMock, assert) { settings.scheduler.telemetryRefreshRate = 1000; }); const client = splitio.client(); - const settings = settingsFactory(config); + const settings = settingsValidator(config); // Generator to synchronize the destruction of the client when all the post endpoints where called once. const finishConfig = (function* () { diff --git a/src/__tests__/nodeSuites/ip-addresses-setting.spec.js b/src/__tests__/nodeSuites/ip-addresses-setting.spec.js index eb7a4292c..b96704861 100644 --- a/src/__tests__/nodeSuites/ip-addresses-setting.spec.js +++ b/src/__tests__/nodeSuites/ip-addresses-setting.spec.js @@ -1,7 +1,7 @@ import osFunction from 'os'; import ipFunction from '../../utils/ip'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { STANDALONE_MODE, CONSUMER_MODE } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; @@ -108,7 +108,7 @@ export default function ipAddressesSettingAssertions(fetchMock, assert) { settings.scheduler.telemetryRefreshRate = 1000; }); const client = splitio.client(); - const settings = settingsFactory(config); + const settings = settingsValidator(config); // Generator to synchronize the destruction of the client when all the post endpoints where called once. const finishConfig = (function* () { diff --git a/src/__tests__/nodeSuites/manager.spec.js b/src/__tests__/nodeSuites/manager.spec.js index c2ac619f5..708abe1cc 100644 --- a/src/__tests__/nodeSuites/manager.spec.js +++ b/src/__tests__/nodeSuites/manager.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import splitChangesMockReal from '../mocks/splitchanges.real.json'; import map from 'lodash/map'; import { url } from '../testUtils'; diff --git a/src/__tests__/nodeSuites/push-fallbacking.spec.js b/src/__tests__/nodeSuites/push-fallbacking.spec.js index 8285028ad..0745c8958 100644 --- a/src/__tests__/nodeSuites/push-fallbacking.spec.js +++ b/src/__tests__/nodeSuites/push-fallbacking.spec.js @@ -29,8 +29,8 @@ import { nearlyEqual, mockSegmentChanges, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const key = 'nicolas@split.io'; @@ -51,7 +51,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_SSE_OPEN = 100; const MILLIS_STREAMING_DOWN_OCCUPANCY = MILLIS_SSE_OPEN + 100; diff --git a/src/__tests__/nodeSuites/push-initialization-nopush.spec.js b/src/__tests__/nodeSuites/push-initialization-nopush.spec.js index f17b41412..152758e1e 100644 --- a/src/__tests__/nodeSuites/push-initialization-nopush.spec.js +++ b/src/__tests__/nodeSuites/push-initialization-nopush.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import authPushDisabled from '../mocks/auth.pushDisabled.json'; @@ -7,7 +7,6 @@ import authPushEnabled from '../mocks/auth.pushEnabled.node.json'; import authInvalidCredentials from '../mocks/auth.invalidCredentials.txt'; import authNoUserSpecified from '../mocks/auth.noUserSpecified.txt'; import { nearlyEqual, url } from '../testUtils'; - import { __setEventSource, __restore } from '../../platform/getEventSource/node'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; @@ -29,7 +28,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); /** * Sequence of calls: diff --git a/src/__tests__/nodeSuites/push-initialization-retries.spec.js b/src/__tests__/nodeSuites/push-initialization-retries.spec.js index 51b7b0ece..0ef5abc83 100644 --- a/src/__tests__/nodeSuites/push-initialization-retries.spec.js +++ b/src/__tests__/nodeSuites/push-initialization-retries.spec.js @@ -5,12 +5,10 @@ import authPushEnabled from '../mocks/auth.pushEnabled.node.json'; import authPushBadToken from '../mocks/auth.pushBadToken.json'; import { nearlyEqual, url } from '../testUtils'; - import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; - -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const baseUrls = { sdk: 'https://sdk.push-initialization-retries/api', @@ -30,7 +28,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); /** * Sequence of calls: diff --git a/src/__tests__/nodeSuites/push-refresh-token.spec.js b/src/__tests__/nodeSuites/push-refresh-token.spec.js index 644d2c07d..3d1cfce6d 100644 --- a/src/__tests__/nodeSuites/push-refresh-token.spec.js +++ b/src/__tests__/nodeSuites/push-refresh-token.spec.js @@ -9,8 +9,8 @@ import { nearlyEqual, mockSegmentChanges, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const key = 'nicolas@split.io'; @@ -30,7 +30,7 @@ const config = { }, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_CONNDELAY = 500; const MILLIS_REFRESH_TOKEN = 1000; diff --git a/src/__tests__/nodeSuites/push-synchronization-retries.spec.js b/src/__tests__/nodeSuites/push-synchronization-retries.spec.js index 3e71548d6..ccf697485 100644 --- a/src/__tests__/nodeSuites/push-synchronization-retries.spec.js +++ b/src/__tests__/nodeSuites/push-synchronization-retries.spec.js @@ -1,12 +1,10 @@ import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import splitChangesMock3 from '../mocks/splitchanges.since.1457552620999.till.1457552649999.SPLIT_UPDATE.json'; - import splitUpdateMessage from '../mocks/message.SPLIT_UPDATE.1457552649999.json'; import oldSplitUpdateMessage from '../mocks/message.SPLIT_UPDATE.1457552620999.json'; import segmentUpdateMessage from '../mocks/message.SEGMENT_UPDATE.1457552640000.json'; import splitKillMessage from '../mocks/message.SPLIT_KILL.1457552650000.json'; - import authPushEnabled from '../mocks/auth.pushEnabled.node.json'; import { nearlyEqual, mockSegmentChanges, url } from '../testUtils'; @@ -15,8 +13,8 @@ import { Backoff } from '@splitsoftware/splitio-commons/src/utils/Backoff'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const key = 'nicolas@split.io'; @@ -33,7 +31,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_SSE_OPEN = 100; diff --git a/src/__tests__/nodeSuites/push-synchronization.spec.js b/src/__tests__/nodeSuites/push-synchronization.spec.js index c7cf5611a..f0041fe98 100644 --- a/src/__tests__/nodeSuites/push-synchronization.spec.js +++ b/src/__tests__/nodeSuites/push-synchronization.spec.js @@ -17,8 +17,8 @@ import { nearlyEqual, mockSegmentChanges, url, hasNoCacheHeader } from '../testU import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; const key = 'nicolas@split.io'; const otherUserKey = 'marcio@split.io'; @@ -36,7 +36,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const MILLIS_SSE_OPEN = 100; const MILLIS_FIRST_SPLIT_UPDATE_EVENT = 200; diff --git a/src/__tests__/nodeSuites/ready-promise.spec.js b/src/__tests__/nodeSuites/ready-promise.spec.js index 65a1e5ee8..d1e65ec63 100644 --- a/src/__tests__/nodeSuites/ready-promise.spec.js +++ b/src/__tests__/nodeSuites/ready-promise.spec.js @@ -8,7 +8,7 @@ const consoleSpy = { log: sinon.spy(console, 'log'), }; -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { mockSegmentChanges } from '../testUtils'; @@ -389,7 +389,7 @@ export default function readyPromiseAssertions(key, fetchMock, assert) { // We also use the manager to get some of the promises const manager = splitio.manager(); - // promise1 is handled inmediately. Thus, the 'reject' callback is expected to be called in 0.15 seconds aprox. + // promise1 is handled immediately. Thus, the 'reject' callback is expected to be called in 0.15 seconds aprox. setTimeout(() => { const promise1 = client.ready(); const tStart = Date.now(); @@ -405,7 +405,7 @@ export default function readyPromiseAssertions(key, fetchMock, assert) { }); }, 0); - // promise2 is handled in 0.15 seconds, when the promise is just rejected. Thus, the 'reject' callback is expected to be called inmediately (0 seconds aprox). + // promise2 is handled in 0.15 seconds, when the promise is just rejected. Thus, the 'reject' callback is expected to be called immediately (0 seconds aprox). setTimeout(() => { const promise2 = manager.ready(); const tStart = Date.now(); @@ -417,11 +417,11 @@ export default function readyPromiseAssertions(key, fetchMock, assert) { t.pass('### SDK TIMED OUT - time out is triggered before retry attempt finishes'); assertGetTreatmentControlNotReady(t, client, key); const tDelta = Date.now() - tStart; - assert.ok(tDelta < 20, 'The "reject" callback is expected to be called inmediately (0 seconds aprox).'); + assert.ok(tDelta < 20, 'The "reject" callback is expected to be called immediately (0 seconds aprox).'); }); }, fromSecondsToMillis(0.15)); - // promise3 is handled in 0.2 seconds, when the promise is just resolved. Thus, the 'resolve' callback is expected to be called inmediately (0 seconds aprox). + // promise3 is handled in 0.2 seconds, when the promise is just resolved. Thus, the 'resolve' callback is expected to be called immediately (0 seconds aprox). setTimeout(() => { const promise3 = manager.ready(); const tStart = Date.now(); @@ -430,7 +430,7 @@ export default function readyPromiseAssertions(key, fetchMock, assert) { t.pass('### SDK IS READY - retry attempt finishes before the requestTimeoutBeforeReady limit'); assertGetTreatmentWhenReady(t, client, key); const tDelta = Date.now() - tStart; - assert.ok(tDelta < 20, 'The "resolve" callback is expected to be called inmediately (0 seconds aprox).'); + assert.ok(tDelta < 20, 'The "resolve" callback is expected to be called immediately (0 seconds aprox).'); return Promise.resolve(); }, () => { @@ -579,4 +579,4 @@ export default function readyPromiseAssertions(key, fetchMock, assert) { // * Basic is ready path: startup without retries on failure and response taking less than 'requestTimeoutBeforeReady'. // * Ready with retry attempts and refresh. // * Ready after timeout with retry attempts and refresh. -} \ No newline at end of file +} diff --git a/src/__tests__/nodeSuites/telemetry.spec.js b/src/__tests__/nodeSuites/telemetry.spec.js index 81679fc81..6a4eb7294 100644 --- a/src/__tests__/nodeSuites/telemetry.spec.js +++ b/src/__tests__/nodeSuites/telemetry.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../'; +import { SplitFactory } from '../../index'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { url, mockSegmentChanges } from '../testUtils'; diff --git a/src/__tests__/offline/browser.spec.js b/src/__tests__/offline/browser.spec.js index 3ebdf8fb5..bc44e32ee 100644 --- a/src/__tests__/offline/browser.spec.js +++ b/src/__tests__/offline/browser.spec.js @@ -2,11 +2,10 @@ import tape from 'tape-catch'; import sinon from 'sinon'; import fetchMock from '../testUtils/fetchMock'; import { url } from '../testUtils'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; -import { STORAGE_MEMORY } from '@splitsoftware/splitio-commons/src/utils/constants'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; -const settings = settingsFactory({ core: { key: 'facundo@split.io' } }); +const settings = settingsValidator({ core: { key: 'facundo@split.io' } }); const spySplitChanges = sinon.spy(); const spySegmentChanges = sinon.spy(); @@ -111,10 +110,11 @@ tape('Browser offline mode', function (assert) { }); const sdkReadyFromCache = (client) => () => { - assert.equal(factory.settings.storage.type, STORAGE_MEMORY, 'In localhost mode, storage must fallback to memory storage'); + assert.equal(factory.settings.storage.type, 'MEMORY', 'In localhost mode, storage must fallback to memory storage'); - assert.equal(client.__getStatus().isReadyFromCache, true, 'If ready from cache, READY_FROM_CACHE status must be true'); - assert.equal(client.__getStatus().isReady, false, 'READY status must not be set before READY_FROM_CACHE'); + const clientStatus = client.__getStatus(); + assert.equal(clientStatus.isReadyFromCache, true, 'If ready from cache, READY_FROM_CACHE status must be true'); + assert.equal(clientStatus.isReady, false, 'READY status must not be set before READY_FROM_CACHE'); assert.deepEqual(manager.names(), ['testing_split', 'testing_split_with_config']); assert.equal(client.getTreatment('testing_split_with_config'), 'off'); diff --git a/src/__tests__/offline/node.spec.js b/src/__tests__/offline/node.spec.js index 8c9d11b08..611749c53 100644 --- a/src/__tests__/offline/node.spec.js +++ b/src/__tests__/offline/node.spec.js @@ -2,12 +2,12 @@ import path from 'path'; import tape from 'tape-catch'; import sinon from 'sinon'; -import fetchMock from '../testUtils/fetchMock'; +import fetchMock from '../testUtils/nodeFetchMock'; import { url } from '../testUtils'; -import { SplitFactory } from '../../'; -import { settingsFactory } from '../../settings'; +import { SplitFactory } from '../../index'; +import { settingsValidator } from '../../settings'; -const settings = settingsFactory({ core: { key: 'facundo@split.io' } }); +const settings = settingsValidator({ core: { key: 'facundo@split.io' } }); const spySplitChanges = sinon.spy(); const spySegmentChanges = sinon.spy(); diff --git a/src/__tests__/online/browser.spec.js b/src/__tests__/online/browser.spec.js index 3ffd03411..3ec8d1235 100644 --- a/src/__tests__/online/browser.spec.js +++ b/src/__tests__/online/browser.spec.js @@ -19,8 +19,7 @@ import fetchSpecificSplits from '../browserSuites/fetch-specific-splits.spec'; import userConsent from '../browserSuites/user-consent.spec'; import singleSync from '../browserSuites/single-sync.spec'; -import { settingsFactory } from '../../settings'; - +import { settingsValidator } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; @@ -28,7 +27,7 @@ import mySegmentsNicolas from '../mocks/mysegments.nicolas@split.io.json'; import mySegmentsMarcio from '../mocks/mysegments.marcio@split.io.json'; import mySegmentsEmmanuel from '../mocks/mysegments.emmanuel@split.io.json'; -const settings = settingsFactory({ +const settings = settingsValidator({ core: { key: 'facundo@split.io' }, @@ -110,8 +109,8 @@ tape('## E2E CI Tests ##', function (assert) { assert.test('E2E / Events', withoutBindingTT.bind(null, fetchMock)); assert.test('E2E / Events with TT binded', bindingTT.bind(null, fetchMock)); /* Check shared clients */ - assert.test('E2E / Shared instances', sharedInstantiationSuite.bind(null, false, fetchMock)); - assert.test('E2E / Shared instances with Traffic Type on factory settings', sharedInstantiationSuite.bind(null, true, fetchMock)); + assert.test('E2E / Shared instances', sharedInstantiationSuite.bind(null, false, false, fetchMock)); + assert.test('E2E / Shared instances with Traffic Type on factory settings', sharedInstantiationSuite.bind(null, true, false, fetchMock)); /* Validate user consent */ assert.test('E2E / User consent', userConsent.bind(null, fetchMock)); /* Check basic manager functionality */ diff --git a/src/__tests__/online/node.spec.js b/src/__tests__/online/node.spec.js index 5146e99f5..c196653fa 100644 --- a/src/__tests__/online/node.spec.js +++ b/src/__tests__/online/node.spec.js @@ -1,7 +1,7 @@ import tape from 'tape-catch'; -import fetchMock from '../testUtils/fetchMock/node'; +import fetchMock from '../testUtils/nodeFetchMock'; import { url } from '../testUtils'; -import { settingsFactory } from '../../settings/node'; +import { settingsValidator } from '../../settings/node'; import evaluationsSuite from '../nodeSuites/evaluations.spec'; import eventsSuite from '../nodeSuites/events.spec'; @@ -31,7 +31,7 @@ const config = { streamingEnabled: false }; -const settings = settingsFactory(config); +const settings = settingsValidator(config); const key = 'facundo@split.io'; fetchMock.get(url(settings, '/splitChanges?since=-1'), { status: 200, body: splitChangesMock1 }); diff --git a/src/__tests__/push/browser.spec.js b/src/__tests__/push/browser.spec.js index ecef8596c..f4d510371 100644 --- a/src/__tests__/push/browser.spec.js +++ b/src/__tests__/push/browser.spec.js @@ -31,7 +31,7 @@ tape('## Browser JS - E2E CI Tests for PUSH ##', function (assert) { assert.test('E2E / PUSH synchronization: happy paths', testSynchronization.bind(null, fetchMock)); assert.test('E2E / PUSH synchronization: retries', testSynchronizationRetries.bind(null, fetchMock)); - assert.test('E2E / PUSH fallbacking, CONTROL and OCCUPANCY messages', testFallbacking.bind(null, fetchMock)); + assert.test('E2E / PUSH fallbacking, CONTROL, OCCUPANCY and STREAMING_RESET messages', testFallbacking.bind(null, fetchMock)); assert.test('E2E / PUSH refresh token and connection delay', testRefreshToken.bind(null, fetchMock)); diff --git a/src/__tests__/push/node.spec.js b/src/__tests__/push/node.spec.js index 14d6b59c7..b72949c9e 100644 --- a/src/__tests__/push/node.spec.js +++ b/src/__tests__/push/node.spec.js @@ -1,5 +1,5 @@ import tape from 'tape-catch'; -import fetchMock from '../testUtils/fetchMock'; +import fetchMock from '../testUtils/nodeFetchMock'; import { testAuthWithPushDisabled, testAuthWith401, testAuthWith400, testNoEventSource, testSSEWithNonRetryableError } from '../nodeSuites/push-initialization-nopush.spec'; import { testPushRetriesDueToAuthErrors, testPushRetriesDueToSseErrors, testSdkDestroyWhileAuthRetries, testSdkDestroyWhileAuthSuccess } from '../nodeSuites/push-initialization-retries.spec'; import { testSynchronization } from '../nodeSuites/push-synchronization.spec'; diff --git a/src/__tests__/testUtils/eventSourceMock.js b/src/__tests__/testUtils/eventSourceMock.js index 085db03c9..4de66dd29 100644 --- a/src/__tests__/testUtils/eventSourceMock.js +++ b/src/__tests__/testUtils/eventSourceMock.js @@ -11,7 +11,7 @@ * */ -import EventEmitter from 'events'; +import { EventEmitter } from '@splitsoftware/splitio-commons/src/utils/MinEvents'; const defaultOptions = { withCredentials: false @@ -23,6 +23,7 @@ export function setMockListener(listener) { __listener = listener; } +// eslint-disable-next-line no-redeclare export default class EventSource { constructor( @@ -82,4 +83,4 @@ export default class EventSource { EventSource.CONNECTING = 0; EventSource.OPEN = 1; -EventSource.CLOSED = 2; \ No newline at end of file +EventSource.CLOSED = 2; diff --git a/src/__tests__/testUtils/fetchMock/browser.js b/src/__tests__/testUtils/fetchMock.js similarity index 100% rename from src/__tests__/testUtils/fetchMock/browser.js rename to src/__tests__/testUtils/fetchMock.js diff --git a/src/__tests__/testUtils/fetchMock/package.json b/src/__tests__/testUtils/fetchMock/package.json deleted file mode 100644 index a19625907..000000000 --- a/src/__tests__/testUtils/fetchMock/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "main": "./node.js", - "browser": "./browser.js" -} diff --git a/src/__tests__/testUtils/fetchMock/node.js b/src/__tests__/testUtils/nodeFetchMock.js similarity index 82% rename from src/__tests__/testUtils/fetchMock/node.js rename to src/__tests__/testUtils/nodeFetchMock.js index 5d3b34515..6965a9561 100644 --- a/src/__tests__/testUtils/fetchMock/node.js +++ b/src/__tests__/testUtils/nodeFetchMock.js @@ -1,5 +1,5 @@ import fetchMock from 'fetch-mock'; -import { __setFetch } from '../../../platform/getFetch/node'; +import { __setFetch } from '../../platform/getFetch/node'; const sandboxFetchMock = fetchMock.sandbox(); diff --git a/src/factory/browser.js b/src/factory/browser.js index 8fbf736b4..c8b439a0c 100644 --- a/src/factory/browser.js +++ b/src/factory/browser.js @@ -14,7 +14,7 @@ import { LOCALHOST_MODE, STORAGE_LOCALSTORAGE } from '@splitsoftware/splitio-com import { shouldAddPt } from '@splitsoftware/splitio-commons/src/trackers/impressionObserver/utils'; import { createUserConsentAPI } from '@splitsoftware/splitio-commons/src/consent/sdkUserConsent'; -import { settingsFactory } from '../settings/browser'; +import { settingsValidator } from '../settings/browser'; import { platform, SignalListener } from '../platform'; const syncManagerOnlineCSFactory = syncManagerOnlineFactory(pollingManagerCSFactory, pushManagerFactory); @@ -81,7 +81,7 @@ function getModules(settings) { * @throws Will throw an error if the provided config is invalid. */ export function SplitFactory(config, __updateModules) { - const settings = settingsFactory(config); + const settings = settingsValidator(config); const modules = getModules(settings); if (__updateModules) __updateModules(modules); return sdkFactory(modules); diff --git a/src/factory/node.js b/src/factory/node.js index b01a3dfd4..5a36c6b30 100644 --- a/src/factory/node.js +++ b/src/factory/node.js @@ -11,7 +11,7 @@ import { sdkFactory } from '@splitsoftware/splitio-commons/src/sdkFactory'; import { CONSUMER_MODE, LOCALHOST_MODE } from '@splitsoftware/splitio-commons/src/utils/constants'; import { shouldAddPt } from '@splitsoftware/splitio-commons/src/trackers/impressionObserver/utils'; -import { settingsFactory } from '../settings/node'; +import { settingsValidator } from '../settings/node'; import { platform, SignalListener } from '../platform'; const syncManagerOnlineSSFactory = syncManagerOnlineFactory(pollingManagerSSFactory, pushManagerFactory); @@ -71,7 +71,7 @@ function getModules(settings) { * @throws Will throw an error if the provided config is invalid. */ export function SplitFactory(config, __updateModules) { - const settings = settingsFactory(config); + const settings = settingsValidator(config); const modules = getModules(settings); if (__updateModules) __updateModules(modules); return sdkFactory(modules); diff --git a/src/settings/__tests__/browser.spec.js b/src/settings/__tests__/browser.spec.js index 0a37e0772..5f61d6f4d 100644 --- a/src/settings/__tests__/browser.spec.js +++ b/src/settings/__tests__/browser.spec.js @@ -1,8 +1,8 @@ import tape from 'tape-catch'; -import { settingsFactory } from '../browser'; +import { settingsValidator } from '../browser'; tape('SETTINGS / Integrations should be properly parsed', assert => { - const settings = settingsFactory({ + const settings = settingsValidator({ core: { authorizationKey: 'dummy token' }, @@ -21,7 +21,7 @@ tape('SETTINGS / Integrations should be properly parsed', assert => { { type: 'SPLIT_TO_GOOGLE_ANALYTICS', prefix: 'prefix3' } ], 'Filters invalid integrations from `integrations` array'); - assert.deepEqual(settingsFactory({ + assert.deepEqual(settingsValidator({ core: { authorizationKey: 'dummy token' }, @@ -32,16 +32,16 @@ tape('SETTINGS / Integrations should be properly parsed', assert => { }); tape('SETTINGS / Consent is overwritable and "GRANTED" by default in client-side', assert => { - let settings = settingsFactory({}); + let settings = settingsValidator({}); assert.equal(settings.userConsent, 'GRANTED', 'userConsent defaults to granted if not provided.'); - settings = settingsFactory({ userConsent: 'INVALID-VALUE' }); + settings = settingsValidator({ userConsent: 'INVALID-VALUE' }); assert.equal(settings.userConsent, 'GRANTED', 'userConsent defaults to granted if a wrong value is provided.'); - settings = settingsFactory({ userConsent: 'UNKNOWN' }); + settings = settingsValidator({ userConsent: 'UNKNOWN' }); assert.equal(settings.userConsent, 'UNKNOWN', 'userConsent can be overwritten.'); - settings = settingsFactory({ userConsent: 'declined' }); + settings = settingsValidator({ userConsent: 'declined' }); assert.equal(settings.userConsent, 'DECLINED', 'userConsent can be overwritten.'); assert.end(); diff --git a/src/settings/__tests__/node.spec.js b/src/settings/__tests__/node.spec.js index b876fcad4..0a6644220 100644 --- a/src/settings/__tests__/node.spec.js +++ b/src/settings/__tests__/node.spec.js @@ -2,14 +2,14 @@ import tape from 'tape-catch'; import sinon from 'sinon'; import osFunction from 'os'; import ipFunction from '../../utils/ip'; -import { settingsFactory } from '../node'; +import { settingsValidator } from '../node'; import { CONSUMER_MODE, NA } from '@splitsoftware/splitio-commons/src/utils/constants'; const IP_VALUE = ipFunction.address(); const HOSTNAME_VALUE = osFunction.hostname(); tape('SETTINGS / Redis options should be properly parsed', assert => { - const settingsWithUrl = settingsFactory({ + const settingsWithUrl = settingsValidator({ core: { authorizationKey: 'dummy token' }, @@ -27,7 +27,7 @@ tape('SETTINGS / Redis options should be properly parsed', assert => { prefix: 'test_prefix' } }); - const settingsWithoutUrl = settingsFactory({ + const settingsWithoutUrl = settingsValidator({ core: { authorizationKey: 'dummy token' }, @@ -57,18 +57,18 @@ tape('SETTINGS / Redis options should be properly parsed', assert => { }); tape('SETTINGS / IPAddressesEnabled should be overwritable and true by default', assert => { - const settingsWithIPAddressDisabled = settingsFactory({ + const settingsWithIPAddressDisabled = settingsValidator({ core: { authorizationKey: 'dummy token', IPAddressesEnabled: false } }); - const settingsWithIPAddressEnabled = settingsFactory({ + const settingsWithIPAddressEnabled = settingsValidator({ core: { authorizationKey: 'dummy token' } }); - const settingsWithIPAddressDisabledAndConsumerMode = settingsFactory({ + const settingsWithIPAddressDisabledAndConsumerMode = settingsValidator({ core: { authorizationKey: 'dummy token', IPAddressesEnabled: false @@ -76,7 +76,7 @@ tape('SETTINGS / IPAddressesEnabled should be overwritable and true by default', mode: CONSUMER_MODE, storage: { type: 'REDIS' } }); - const settingsWithIPAddressEnabledAndConsumerMode = settingsFactory({ + const settingsWithIPAddressEnabledAndConsumerMode = settingsValidator({ core: { authorizationKey: 'dummy token' }, @@ -105,10 +105,10 @@ tape('SETTINGS / Throws exception if no "REDIS" storage is provided in consumer }; assert.throws(() => { - settingsFactory(config); + settingsValidator(config); }, /A REDIS storage is required on consumer mode/); assert.throws(() => { - settingsFactory({ + settingsValidator({ ...config, storage: { type: 'invalid type' } }); @@ -122,11 +122,11 @@ tape('SETTINGS / Log error and fallback to InMemory storage if no valid storage const settings = [ - settingsFactory({ + settingsValidator({ core: { authorizationKey: 'localhost' }, // localhost mode storage: { type: 'REDIS' }, // 'REDIS' is not a valid storage for standalone and localhost modes debug: 'ERROR' - }), settingsFactory({ + }), settingsValidator({ core: { authorizationKey: 'dummy token' }, // standalone mode storage: { type: 'INVALID' }, debug: 'ERROR' @@ -145,7 +145,7 @@ tape('SETTINGS / Log error and fallback to InMemory storage if no valid storage }); tape('SETTINGS / Consent is not overwritable in server-side', assert => { - const settings = settingsFactory({ userConsent: 'UNKNOWN' }); + const settings = settingsValidator({ userConsent: 'UNKNOWN' }); assert.equal(settings.userConsent, undefined, 'userConsent cannot be overwritten in NodeJS.'); assert.end(); diff --git a/src/settings/browser.js b/src/settings/browser.js index d3f04443e..95c1729ef 100644 --- a/src/settings/browser.js +++ b/src/settings/browser.js @@ -19,6 +19,6 @@ const params = { consent: validateConsent, }; -export function settingsFactory(config) { +export function settingsValidator(config) { return settingsValidation(config, params); } diff --git a/src/settings/node.js b/src/settings/node.js index 2dc97cb73..cf55ae882 100644 --- a/src/settings/node.js +++ b/src/settings/node.js @@ -16,6 +16,6 @@ const params = { // In Node.js the SDK ignores `config.integrations`, so a validator for integrations is not required }; -export function settingsFactory(config) { +export function settingsValidator(config) { return settingsValidation(config, params); } From 2d85b87f28f0392c39e22e1b695bc6b804726571 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Thu, 28 Jul 2022 17:10:44 -0300 Subject: [PATCH 3/6] removed unused karma config files --- karma/{local.js => config.debug.js} | 6 +++- ...arma.conf.js => e2e.destroy.karma.conf.js} | 0 ...onf.js => e2e.errorCatching.karma.conf.js} | 0 ...onf.js => e2e.gaIntegration.karma.conf.js} | 0 karma/e2e.local.karma.conf.js | 21 ------------ ...arma.conf.js => e2e.offline.karma.conf.js} | 1 - ...karma.conf.js => e2e.online.karma.conf.js} | 0 ...i.karma.conf.js => e2e.push.karma.conf.js} | 0 karma/local.karma.conf.js | 12 ------- .../{ci.karma.conf.js => unit.karma.conf.js} | 0 package.json | 34 +++++++++---------- .../push-synchronization.spec.js | 1 - .../node_redis.spec.js | 0 13 files changed, 22 insertions(+), 53 deletions(-) rename karma/{local.js => config.debug.js} (67%) rename karma/{destroy.ci.karma.conf.js => e2e.destroy.karma.conf.js} (100%) rename karma/{errors.ci.karma.conf.js => e2e.errorCatching.karma.conf.js} (100%) rename karma/{gaintegration.ci.karma.conf.js => e2e.gaIntegration.karma.conf.js} (100%) delete mode 100644 karma/e2e.local.karma.conf.js rename karma/{offline.karma.conf.js => e2e.offline.karma.conf.js} (99%) rename karma/{e2e.ci.karma.conf.js => e2e.online.karma.conf.js} (100%) rename karma/{push.ci.karma.conf.js => e2e.push.karma.conf.js} (100%) delete mode 100644 karma/local.karma.conf.js rename karma/{ci.karma.conf.js => unit.karma.conf.js} (100%) rename src/__tests__/{consumerMode => consumer}/node_redis.spec.js (100%) diff --git a/karma/local.js b/karma/config.debug.js similarity index 67% rename from karma/local.js rename to karma/config.debug.js index 8124c4fd4..6c461f901 100644 --- a/karma/local.js +++ b/karma/config.debug.js @@ -5,5 +5,9 @@ const merge = require('lodash/merge'); module.exports = merge({}, require('./config'), { browsers: [ 'Chrome' - ] + ], + webpack: { + mode: 'development' + }, + singleRun: false }); diff --git a/karma/destroy.ci.karma.conf.js b/karma/e2e.destroy.karma.conf.js similarity index 100% rename from karma/destroy.ci.karma.conf.js rename to karma/e2e.destroy.karma.conf.js diff --git a/karma/errors.ci.karma.conf.js b/karma/e2e.errorCatching.karma.conf.js similarity index 100% rename from karma/errors.ci.karma.conf.js rename to karma/e2e.errorCatching.karma.conf.js diff --git a/karma/gaintegration.ci.karma.conf.js b/karma/e2e.gaIntegration.karma.conf.js similarity index 100% rename from karma/gaintegration.ci.karma.conf.js rename to karma/e2e.gaIntegration.karma.conf.js diff --git a/karma/e2e.local.karma.conf.js b/karma/e2e.local.karma.conf.js deleted file mode 100644 index e238b75f3..000000000 --- a/karma/e2e.local.karma.conf.js +++ /dev/null @@ -1,21 +0,0 @@ -const assign = require('lodash/assign'); - -module.exports = function(config) { - 'use strict'; - - config.set(assign({}, require('./local'), { - // list of files / patterns to load in the browser - files: [ - '__tests__/**/browser.spec.js' - ], - - // prepare code for the browser using webpack - preprocessors: { - '__tests__/**/browser.spec.js': ['webpack'] - }, - - // level of logging - // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG - logLevel: config.LOG_DEBUG - })); -}; diff --git a/karma/offline.karma.conf.js b/karma/e2e.offline.karma.conf.js similarity index 99% rename from karma/offline.karma.conf.js rename to karma/e2e.offline.karma.conf.js index e1459f8ce..e2bd75eb3 100644 --- a/karma/offline.karma.conf.js +++ b/karma/e2e.offline.karma.conf.js @@ -8,7 +8,6 @@ module.exports = function(config) { files: [ '__tests__/offline/browser.spec.js' ], - // prepare code for the browser using webpack preprocessors: { '__tests__/offline/browser.spec.js': ['webpack'] diff --git a/karma/e2e.ci.karma.conf.js b/karma/e2e.online.karma.conf.js similarity index 100% rename from karma/e2e.ci.karma.conf.js rename to karma/e2e.online.karma.conf.js diff --git a/karma/push.ci.karma.conf.js b/karma/e2e.push.karma.conf.js similarity index 100% rename from karma/push.ci.karma.conf.js rename to karma/e2e.push.karma.conf.js diff --git a/karma/local.karma.conf.js b/karma/local.karma.conf.js deleted file mode 100644 index 7317d42a0..000000000 --- a/karma/local.karma.conf.js +++ /dev/null @@ -1,12 +0,0 @@ -const merge = require('lodash/merge'); - -module.exports = function(config) { - 'use strict'; - - config.set(merge( - require('./local'), { - // level of logging - // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG - logLevel: config.LOG_DEBUG - })); -}; diff --git a/karma/ci.karma.conf.js b/karma/unit.karma.conf.js similarity index 100% rename from karma/ci.karma.conf.js rename to karma/unit.karma.conf.js diff --git a/package.json b/package.json index 737f9fc8d..df0882ff2 100644 --- a/package.json +++ b/package.json @@ -89,24 +89,24 @@ "check": "npm run check:lint && npm run check:version", "check:lint": "eslint src", "check:version": "cross-env NODE_ENV=test tape -r ./ts-node.register src/settings/__tests__/defaults.spec.js", - "test-browser-local": "cross-env NODE_ENV=test karma start karma/local.karma.conf.js", - "test-browser-e2e-local": "cross-env NODE_ENV=test karma start karma/e2e.local.karma.conf.js", - "test-browser": "npm run test-browser-unit && npm run test-browser-online && npm run test-browser-offline && npm run test-browser-destroy && npm run test-browser-errors && npm run test-browser-push && npm run test-browser-gaintegration", - "test-browser-unit": "cross-env NODE_ENV=test karma start karma/ci.karma.conf.js", - "test-browser-online": "cross-env NODE_ENV=test karma start karma/e2e.ci.karma.conf.js", - "test-browser-offline": "cross-env NODE_ENV=test karma start karma/offline.karma.conf.js", - "test-browser-destroy": "cross-env NODE_ENV=test karma start karma/destroy.ci.karma.conf.js", - "test-browser-errors": "cross-env NODE_ENV=test karma start karma/errors.ci.karma.conf.js", - "test-browser-gaintegration": "cross-env NODE_ENV=test karma start karma/gaintegration.ci.karma.conf.js", - "test-browser-push": "cross-env NODE_ENV=test karma start karma/push.ci.karma.conf.js", - "test-node": "npm run test-node-unit && npm run test-node-online && npm run test-node-redis && npm run test-node-offline && npm run test-node-destroy && npm run test-node-errors && npm run test-node-push", + "test-browser": "npm run test-browser-unit && npm run test-browser-e2e", + "test-browser-unit": "cross-env NODE_ENV=test karma start karma/unit.karma.conf.js", + "test-browser-e2e": "npm run test-browser-e2e-online && npm run test-browser-e2e-offline && npm run test-browser-e2e-destroy && npm run test-browser-e2e-errorCatching && npm run test-browser-e2e-push && npm run test-browser-e2e-gaIntegration", + "test-browser-e2e-online": "cross-env NODE_ENV=test karma start karma/e2e.online.karma.conf.js", + "test-browser-e2e-offline": "cross-env NODE_ENV=test karma start karma/e2e.offline.karma.conf.js", + "test-browser-e2e-destroy": "cross-env NODE_ENV=test karma start karma/e2e.destroy.karma.conf.js", + "test-browser-e2e-errorCatching": "cross-env NODE_ENV=test karma start karma/e2e.errorCatching.karma.conf.js", + "test-browser-e2e-push": "cross-env NODE_ENV=test karma start karma/e2e.push.karma.conf.js", + "test-browser-e2e-gaIntegration": "cross-env NODE_ENV=test karma start karma/e2e.gaIntegration.karma.conf.js", + "test-node": "npm run test-node-unit && npm run test-node-e2e", "test-node-unit": "cross-env NODE_ENV=test tape -r ./ts-node.register \"src/*/**/__tests__/**/!(browser).spec.js\" | tap-min", - "test-node-online": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/online/node.spec.js | tap-min", - "test-node-destroy": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/destroy/node.spec.js | tap-min", - "test-node-errors": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/errorCatching/node.spec.js | tap-min", - "test-node-offline": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/offline/node.spec.js | tap-min", - "test-node-redis": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/consumerMode/node_redis.spec.js | tap-min", - "test-node-push": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/push/node.spec.js | tap-min", + "test-node-e2e": "npm run test-node-e2e-online && npm run test-node-e2e-offline && npm run test-node-e2e-destroy && npm run test-node-e2e-errorCatching && npm run test-node-e2e-push && npm run test-node-e2e-redis", + "test-node-e2e-online": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/online/node.spec.js | tap-min", + "test-node-e2e-offline": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/offline/node.spec.js | tap-min", + "test-node-e2e-destroy": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/destroy/node.spec.js | tap-min", + "test-node-e2e-errorCatching": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/errorCatching/node.spec.js | tap-min", + "test-node-e2e-push": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/push/node.spec.js | tap-min", + "test-node-e2e-redis": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/consumer/node_redis.spec.js | tap-min", "pretest-ts-decls": "npm run build-esm && npm run build-cjs && npm link", "test-ts-decls": "./scripts/ts-tests.sh", "posttest-ts-decls": "npm unlink && npm install", diff --git a/src/__tests__/browserSuites/push-synchronization.spec.js b/src/__tests__/browserSuites/push-synchronization.spec.js index 72893dcd9..e0edb9450 100644 --- a/src/__tests__/browserSuites/push-synchronization.spec.js +++ b/src/__tests__/browserSuites/push-synchronization.spec.js @@ -50,7 +50,6 @@ const config = { }, urls: baseUrls, streamingEnabled: true, - // debug: true, }; const settings = settingsValidator(config); diff --git a/src/__tests__/consumerMode/node_redis.spec.js b/src/__tests__/consumer/node_redis.spec.js similarity index 100% rename from src/__tests__/consumerMode/node_redis.spec.js rename to src/__tests__/consumer/node_redis.spec.js From 347e18798582fbfae909a3bec1d9b977538444c3 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Fri, 29 Jul 2022 14:52:00 -0300 Subject: [PATCH 4/6] rollback rename settingsFactory to settingsValidator --- .../browserSuites/evaluations.spec.js | 2 +- src/__tests__/browserSuites/events.spec.js | 6 ++--- .../fetch-specific-splits.spec.js | 2 +- .../ignore-ip-addresses-setting.spec.js | 6 ++--- .../impressions-listener.spec.js | 6 ++--- .../browserSuites/impressions.debug.spec.js | 6 ++--- .../browserSuites/impressions.spec.js | 6 ++--- src/__tests__/browserSuites/manager.spec.js | 2 +- .../browserSuites/push-corner-cases.spec.js | 6 ++--- .../browserSuites/push-fallbacking.spec.js | 6 ++--- .../push-initialization-nopush.spec.js | 6 ++--- .../push-initialization-retries.spec.js | 6 ++--- .../browserSuites/push-refresh-token.spec.js | 6 ++--- .../push-synchronization-retries.spec.js | 6 ++--- .../push-synchronization.spec.js | 6 ++--- src/__tests__/browserSuites/readiness.spec.js | 2 +- .../browserSuites/ready-from-cache.spec.js | 2 +- .../browserSuites/ready-promise.spec.js | 2 +- .../shared-instantiation.spec.js | 6 ++--- .../browserSuites/single-sync.spec.js | 6 ++--- src/__tests__/browserSuites/telemetry.spec.js | 2 +- .../use-beacon-api.debug.spec.js | 6 ++--- .../browserSuites/use-beacon-api.spec.js | 6 ++--- .../browserSuites/user-consent.spec.js | 2 +- src/__tests__/consumer/node_redis.spec.js | 6 ++--- src/__tests__/destroy/browser.spec.js | 6 ++--- src/__tests__/destroy/node.spec.js | 6 ++--- src/__tests__/errorCatching/browser.spec.js | 6 ++--- src/__tests__/errorCatching/node.spec.js | 6 ++--- .../gaIntegration/both-integrations.spec.js | 6 ++--- src/__tests__/gaIntegration/browser.spec.js | 4 ++-- .../gaIntegration/ga-to-split.spec.js | 6 ++--- .../gaIntegration/split-to-ga.spec.js | 6 ++--- src/__tests__/nodeSuites/evaluations.spec.js | 2 +- src/__tests__/nodeSuites/events.spec.js | 6 ++--- .../nodeSuites/expected-treatments.spec.js | 2 +- .../nodeSuites/fetch-specific-splits.spec.js | 2 +- .../nodeSuites/impressions-listener.spec.js | 6 ++--- .../nodeSuites/impressions.debug.spec.js | 6 ++--- src/__tests__/nodeSuites/impressions.spec.js | 6 ++--- .../ip-addresses-setting.debug.spec.js | 6 ++--- .../nodeSuites/ip-addresses-setting.spec.js | 6 ++--- src/__tests__/nodeSuites/manager.spec.js | 2 +- .../nodeSuites/push-fallbacking.spec.js | 6 ++--- .../push-initialization-nopush.spec.js | 6 ++--- .../push-initialization-retries.spec.js | 6 ++--- .../nodeSuites/push-refresh-token.spec.js | 6 ++--- .../push-synchronization-retries.spec.js | 6 ++--- .../nodeSuites/push-synchronization.spec.js | 6 ++--- .../nodeSuites/ready-promise.spec.js | 2 +- src/__tests__/nodeSuites/telemetry.spec.js | 2 +- src/__tests__/offline/browser.spec.js | 6 ++--- src/__tests__/offline/node.spec.js | 6 ++--- src/__tests__/online/browser.spec.js | 4 ++-- src/__tests__/online/node.spec.js | 4 ++-- src/factory/browser.js | 4 ++-- src/factory/node.js | 4 ++-- src/settings/__tests__/browser.spec.js | 14 +++++------ src/settings/__tests__/node.spec.js | 24 +++++++++---------- src/settings/browser.js | 2 +- src/settings/node.js | 2 +- 61 files changed, 159 insertions(+), 159 deletions(-) diff --git a/src/__tests__/browserSuites/evaluations.spec.js b/src/__tests__/browserSuites/evaluations.spec.js index fe182f292..cc8bee2cc 100644 --- a/src/__tests__/browserSuites/evaluations.spec.js +++ b/src/__tests__/browserSuites/evaluations.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; const SDK_INSTANCES_TO_TEST = 4; diff --git a/src/__tests__/browserSuites/events.spec.js b/src/__tests__/browserSuites/events.spec.js index 9e08f4d6d..a33dd7999 100644 --- a/src/__tests__/browserSuites/events.spec.js +++ b/src/__tests__/browserSuites/events.spec.js @@ -1,8 +1,8 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import { url } from '../testUtils'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'asd' }, diff --git a/src/__tests__/browserSuites/fetch-specific-splits.spec.js b/src/__tests__/browserSuites/fetch-specific-splits.spec.js index ffed3cc20..14dc031ea 100644 --- a/src/__tests__/browserSuites/fetch-specific-splits.spec.js +++ b/src/__tests__/browserSuites/fetch-specific-splits.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import { splitFilters, queryStrings, groupedFilters } from '../mocks/fetchSpecificSplits'; const baseConfig = { diff --git a/src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js b/src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js index 4503d82fe..6266976fe 100644 --- a/src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js +++ b/src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; @@ -100,7 +100,7 @@ export default function (fetchMock, assert) { }; // Mock GET endpoints before creating the client - const settings = settingsValidator(config); + const settings = settingsFactory(config); fetchMock.getOnce(url(settings, '/splitChanges?since=-1'), { status: 200, body: splitChangesMock1 }); fetchMock.getOnce(url(settings, '/splitChanges?since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } }); fetchMock.getOnce(url(settings, `/mySegments/${encodeURIComponent(config.core.key)}`), { status: 200, body: { mySegments: [] } }); diff --git a/src/__tests__/browserSuites/impressions-listener.spec.js b/src/__tests__/browserSuites/impressions-listener.spec.js index a48b75bc5..644d3d6b1 100644 --- a/src/__tests__/browserSuites/impressions-listener.spec.js +++ b/src/__tests__/browserSuites/impressions-listener.spec.js @@ -1,8 +1,8 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: '' }, diff --git a/src/__tests__/browserSuites/impressions.debug.spec.js b/src/__tests__/browserSuites/impressions.debug.spec.js index ba8fa8afe..bbccfc9db 100644 --- a/src/__tests__/browserSuites/impressions.debug.spec.js +++ b/src/__tests__/browserSuites/impressions.debug.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; @@ -11,7 +11,7 @@ const baseUrls = { events: 'https://events.baseurl/impressionsDebugSuite' }; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'asd' }, diff --git a/src/__tests__/browserSuites/impressions.spec.js b/src/__tests__/browserSuites/impressions.spec.js index 1f2f71d9e..8e73c5df2 100644 --- a/src/__tests__/browserSuites/impressions.spec.js +++ b/src/__tests__/browserSuites/impressions.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; @@ -12,7 +12,7 @@ const baseUrls = { events: 'https://events.baseurl/impressionsSuite' }; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'asd' }, diff --git a/src/__tests__/browserSuites/manager.spec.js b/src/__tests__/browserSuites/manager.spec.js index a530dd8ab..ce13cd358 100644 --- a/src/__tests__/browserSuites/manager.spec.js +++ b/src/__tests__/browserSuites/manager.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import splitChangesMockReal from '../mocks/splitchanges.real.json'; import map from 'lodash/map'; import { url } from '../testUtils'; diff --git a/src/__tests__/browserSuites/push-corner-cases.spec.js b/src/__tests__/browserSuites/push-corner-cases.spec.js index 3c9cbef80..57ae84228 100644 --- a/src/__tests__/browserSuites/push-corner-cases.spec.js +++ b/src/__tests__/browserSuites/push-corner-cases.spec.js @@ -7,8 +7,8 @@ import { nearlyEqual, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const userKey = 'nicolas@split.io'; @@ -28,7 +28,7 @@ const config = { prefix: 'pushCornerCase' }, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_SSE_OPEN = 100; const MILLIS_SPLIT_KILL_EVENT = 200; diff --git a/src/__tests__/browserSuites/push-fallbacking.spec.js b/src/__tests__/browserSuites/push-fallbacking.spec.js index 5549eab7e..fe1267610 100644 --- a/src/__tests__/browserSuites/push-fallbacking.spec.js +++ b/src/__tests__/browserSuites/push-fallbacking.spec.js @@ -32,8 +32,8 @@ import { nearlyEqual, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const userKey = 'nicolas@split.io'; const secondUserKey = 'marcio@split.io'; @@ -57,7 +57,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_SSE_OPEN = 100; const MILLIS_STREAMING_DOWN_OCCUPANCY = MILLIS_SSE_OPEN + 100; diff --git a/src/__tests__/browserSuites/push-initialization-nopush.spec.js b/src/__tests__/browserSuites/push-initialization-nopush.spec.js index b8e7bc437..01262933b 100644 --- a/src/__tests__/browserSuites/push-initialization-nopush.spec.js +++ b/src/__tests__/browserSuites/push-initialization-nopush.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsNicolas from '../mocks/mysegments.nicolas@split.io.json'; @@ -33,7 +33,7 @@ const config = { streamingEnabled: true, debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); /** * Sequence of calls: diff --git a/src/__tests__/browserSuites/push-initialization-retries.spec.js b/src/__tests__/browserSuites/push-initialization-retries.spec.js index 0879954a9..87d96d7bb 100644 --- a/src/__tests__/browserSuites/push-initialization-retries.spec.js +++ b/src/__tests__/browserSuites/push-initialization-retries.spec.js @@ -7,8 +7,8 @@ import mySegmentsNicolasMock from '../mocks/mysegments.nicolas@split.io.json'; import { nearlyEqual, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const baseUrls = { sdk: 'https://sdk.push-initialization-retries/api', @@ -34,7 +34,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); /** * Sequence of calls: diff --git a/src/__tests__/browserSuites/push-refresh-token.spec.js b/src/__tests__/browserSuites/push-refresh-token.spec.js index b4ebf8e46..0ff61a236 100644 --- a/src/__tests__/browserSuites/push-refresh-token.spec.js +++ b/src/__tests__/browserSuites/push-refresh-token.spec.js @@ -10,8 +10,8 @@ import { nearlyEqual, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const userKey = 'nicolas@split.io'; @@ -32,7 +32,7 @@ const config = { }, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_CONNDELAY = 500; const MILLIS_REFRESH_TOKEN = 1000; diff --git a/src/__tests__/browserSuites/push-synchronization-retries.spec.js b/src/__tests__/browserSuites/push-synchronization-retries.spec.js index c106710c6..855a34968 100644 --- a/src/__tests__/browserSuites/push-synchronization-retries.spec.js +++ b/src/__tests__/browserSuites/push-synchronization-retries.spec.js @@ -17,8 +17,8 @@ import { Backoff } from '@splitsoftware/splitio-commons/src/utils/Backoff'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const userKey = 'nicolas@split.io'; const otherUserKeySync = 'marcio@split.io'; @@ -37,7 +37,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_SSE_OPEN = 100; diff --git a/src/__tests__/browserSuites/push-synchronization.spec.js b/src/__tests__/browserSuites/push-synchronization.spec.js index e0edb9450..f6ffa61ec 100644 --- a/src/__tests__/browserSuites/push-synchronization.spec.js +++ b/src/__tests__/browserSuites/push-synchronization.spec.js @@ -29,8 +29,8 @@ import includes from 'lodash/includes'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; window.EventSource = EventSourceMock; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const userKey = 'nicolas@split.io'; const otherUserKey = 'marcio@split.io'; @@ -51,7 +51,7 @@ const config = { urls: baseUrls, streamingEnabled: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_SSE_OPEN = 100; const MILLIS_FIRST_SPLIT_UPDATE_EVENT = 200; diff --git a/src/__tests__/browserSuites/readiness.spec.js b/src/__tests__/browserSuites/readiness.spec.js index fb7d83f4b..c6897fafd 100644 --- a/src/__tests__/browserSuites/readiness.spec.js +++ b/src/__tests__/browserSuites/readiness.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; diff --git a/src/__tests__/browserSuites/ready-from-cache.spec.js b/src/__tests__/browserSuites/ready-from-cache.spec.js index 9950e150f..45a56012e 100644 --- a/src/__tests__/browserSuites/ready-from-cache.spec.js +++ b/src/__tests__/browserSuites/ready-from-cache.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; diff --git a/src/__tests__/browserSuites/ready-promise.spec.js b/src/__tests__/browserSuites/ready-promise.spec.js index d1b29f6ef..f02618278 100644 --- a/src/__tests__/browserSuites/ready-promise.spec.js +++ b/src/__tests__/browserSuites/ready-promise.spec.js @@ -10,7 +10,7 @@ const consoleSpy = { error: sinon.spy(console, 'error'), }; -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; diff --git a/src/__tests__/browserSuites/shared-instantiation.spec.js b/src/__tests__/browserSuites/shared-instantiation.spec.js index 20e0b9cbb..108ad1f55 100644 --- a/src/__tests__/browserSuites/shared-instantiation.spec.js +++ b/src/__tests__/browserSuites/shared-instantiation.spec.js @@ -1,8 +1,8 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import { url } from '../testUtils'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'asd' }, diff --git a/src/__tests__/browserSuites/single-sync.spec.js b/src/__tests__/browserSuites/single-sync.spec.js index 4929fc135..f87783da1 100644 --- a/src/__tests__/browserSuites/single-sync.spec.js +++ b/src/__tests__/browserSuites/single-sync.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import { url } from '../testUtils'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; @@ -32,7 +32,7 @@ const config = { }, streamingEnabled: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); export default function singleSync(fetchMock, assert) { diff --git a/src/__tests__/browserSuites/telemetry.spec.js b/src/__tests__/browserSuites/telemetry.spec.js index a122a7491..e6ebbad22 100644 --- a/src/__tests__/browserSuites/telemetry.spec.js +++ b/src/__tests__/browserSuites/telemetry.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; const baseUrls = { diff --git a/src/__tests__/browserSuites/use-beacon-api.debug.spec.js b/src/__tests__/browserSuites/use-beacon-api.debug.spec.js index 3644b2bb3..96320f271 100644 --- a/src/__tests__/browserSuites/use-beacon-api.debug.spec.js +++ b/src/__tests__/browserSuites/use-beacon-api.debug.spec.js @@ -1,6 +1,6 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; @@ -22,7 +22,7 @@ const config = { } }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); // Spy calls to Beacon API method let sendBeaconSpyDebug; diff --git a/src/__tests__/browserSuites/use-beacon-api.spec.js b/src/__tests__/browserSuites/use-beacon-api.spec.js index cf7e7aa43..27bea08c3 100644 --- a/src/__tests__/browserSuites/use-beacon-api.spec.js +++ b/src/__tests__/browserSuites/use-beacon-api.spec.js @@ -1,6 +1,6 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; import { OPTIMIZED } from '@splitsoftware/splitio-commons/src/utils/constants'; @@ -19,7 +19,7 @@ const config = { streamingEnabled: false }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); // Spy calls to Beacon API method let sendBeaconSpy; diff --git a/src/__tests__/browserSuites/user-consent.spec.js b/src/__tests__/browserSuites/user-consent.spec.js index f7de43cc5..2334916a3 100644 --- a/src/__tests__/browserSuites/user-consent.spec.js +++ b/src/__tests__/browserSuites/user-consent.spec.js @@ -1,5 +1,5 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import { nearlyEqual, url } from '../testUtils'; import { triggerPagehideEvent } from '../testUtils/browser'; diff --git a/src/__tests__/consumer/node_redis.spec.js b/src/__tests__/consumer/node_redis.spec.js index 13d25d48b..6368e4a31 100644 --- a/src/__tests__/consumer/node_redis.spec.js +++ b/src/__tests__/consumer/node_redis.spec.js @@ -7,11 +7,11 @@ import sinon from 'sinon'; import RedisServer from 'redis-server'; import RedisClient from 'ioredis'; import { exec } from 'child_process'; -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import { merge } from '@splitsoftware/splitio-commons/src/utils/lang'; import { KeyBuilderSS } from '@splitsoftware/splitio-commons/src/storages/KeyBuilderSS'; import { validatePrefix } from '@splitsoftware/splitio-commons/src/storages/KeyBuilder'; -import { settingsValidator } from '../../settings/node'; +import { settingsFactory } from '../../settings/node'; import { nearlyEqual } from '../testUtils'; import { version } from '../../../package.json'; @@ -340,7 +340,7 @@ tape('NodeJS Redis', function (t) { for (let config of configs) { // Redis client and keys required to check Redis store. - const setting = settingsValidator(config); + const setting = settingsFactory(config); const connection = new RedisClient(setting.storage.options.url); const keys = new KeyBuilderSS(validatePrefix(setting.storage.prefix)); const eventKey = keys.buildEventsKey(); diff --git a/src/__tests__/destroy/browser.spec.js b/src/__tests__/destroy/browser.spec.js index 6c234daa9..c62bc6d43 100644 --- a/src/__tests__/destroy/browser.spec.js +++ b/src/__tests__/destroy/browser.spec.js @@ -3,14 +3,14 @@ import fetchMock from '../testUtils/fetchMock'; import { url } from '../testUtils'; import map from 'lodash/map'; import pick from 'lodash/pick'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.json'; import mySegmentsMock from '../mocks/mySegmentsEmpty.json'; import impressionsMock from '../mocks/impressions.json'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'facundo@split.io' }, diff --git a/src/__tests__/destroy/node.spec.js b/src/__tests__/destroy/node.spec.js index d1102c6ee..b5e73bfaa 100644 --- a/src/__tests__/destroy/node.spec.js +++ b/src/__tests__/destroy/node.spec.js @@ -3,10 +3,10 @@ import map from 'lodash/map'; import pick from 'lodash/pick'; import fetchMock from '../testUtils/nodeFetchMock'; import { url } from '../testUtils'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'facundo@split.io' }, diff --git a/src/__tests__/errorCatching/browser.spec.js b/src/__tests__/errorCatching/browser.spec.js index 5c0504fad..1460b6199 100644 --- a/src/__tests__/errorCatching/browser.spec.js +++ b/src/__tests__/errorCatching/browser.spec.js @@ -7,10 +7,10 @@ import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547 import mySegmentsMock from '../mocks/mySegmentsEmpty.json'; import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.till.1500492297547.json'; import splitChangesMock3 from '../mocks/splitChanges.since.1500492297547.json'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { authorizationKey: '' }, diff --git a/src/__tests__/errorCatching/node.spec.js b/src/__tests__/errorCatching/node.spec.js index 0d86a9f24..be626d307 100644 --- a/src/__tests__/errorCatching/node.spec.js +++ b/src/__tests__/errorCatching/node.spec.js @@ -4,8 +4,8 @@ import includes from 'lodash/includes'; import fetchMock from '../testUtils/nodeFetchMock'; import { url } from '../testUtils'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.till.1500492297547.json'; @@ -14,7 +14,7 @@ import splitChangesMock3 from '../mocks/splitChanges.since.1500492297547.json'; // Option object used to configure mocked routes with a delay of 1.5 seconds. const responseDelay = { delay: 1500 }; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { authorizationKey: '' }, diff --git a/src/__tests__/gaIntegration/both-integrations.spec.js b/src/__tests__/gaIntegration/both-integrations.spec.js index b935cbb95..17b4ae736 100644 --- a/src/__tests__/gaIntegration/both-integrations.spec.js +++ b/src/__tests__/gaIntegration/both-integrations.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import { gaSpy, gaTag } from './gaTestUtils'; import includes from 'lodash/includes'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; @@ -25,7 +25,7 @@ const config = { impressionsMode: DEBUG, } }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); export default function (fetchMock, assert) { diff --git a/src/__tests__/gaIntegration/browser.spec.js b/src/__tests__/gaIntegration/browser.spec.js index c1fbe676a..2248fb50d 100644 --- a/src/__tests__/gaIntegration/browser.spec.js +++ b/src/__tests__/gaIntegration/browser.spec.js @@ -4,11 +4,11 @@ import { url } from '../testUtils'; import gaToSplitSuite from './ga-to-split.spec'; import splitToGaSuite from './split-to-ga.spec'; import bothIntegrationsSuite from './both-integrations.spec'; -import { settingsValidator } from '../../settings'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'facundo@split.io' } diff --git a/src/__tests__/gaIntegration/ga-to-split.spec.js b/src/__tests__/gaIntegration/ga-to-split.spec.js index 5285b02e4..cc8e8764f 100644 --- a/src/__tests__/gaIntegration/ga-to-split.spec.js +++ b/src/__tests__/gaIntegration/ga-to-split.spec.js @@ -1,6 +1,6 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import { gaSpy, gaTag, addGaTag, removeGaTag } from './gaTestUtils'; import { url } from '../testUtils'; @@ -17,7 +17,7 @@ const config = { }, streamingEnabled: false }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); export default function (fetchMock, assert) { diff --git a/src/__tests__/gaIntegration/split-to-ga.spec.js b/src/__tests__/gaIntegration/split-to-ga.spec.js index 6d2810c04..1285d6f01 100644 --- a/src/__tests__/gaIntegration/split-to-ga.spec.js +++ b/src/__tests__/gaIntegration/split-to-ga.spec.js @@ -1,6 +1,6 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import { gaSpy, gaTag, removeGaTag, addGaTag } from './gaTestUtils'; import { SPLIT_IMPRESSION, SPLIT_EVENT, DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; @@ -29,7 +29,7 @@ const config = { } }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); export default function (fetchMock, assert) { diff --git a/src/__tests__/nodeSuites/evaluations.spec.js b/src/__tests__/nodeSuites/evaluations.spec.js index 93503da6c..46bbd2f82 100644 --- a/src/__tests__/nodeSuites/evaluations.spec.js +++ b/src/__tests__/nodeSuites/evaluations.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; const SDK_INSTANCES_TO_TEST = 4; diff --git a/src/__tests__/nodeSuites/events.spec.js b/src/__tests__/nodeSuites/events.spec.js index 778b1dd8d..062e96560 100644 --- a/src/__tests__/nodeSuites/events.spec.js +++ b/src/__tests__/nodeSuites/events.spec.js @@ -1,9 +1,9 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import { url } from '../testUtils'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'asd' }, diff --git a/src/__tests__/nodeSuites/expected-treatments.spec.js b/src/__tests__/nodeSuites/expected-treatments.spec.js index fe9f0cc4d..05b46ac87 100644 --- a/src/__tests__/nodeSuites/expected-treatments.spec.js +++ b/src/__tests__/nodeSuites/expected-treatments.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import fs from 'fs'; import rl from 'readline'; import { url } from '../testUtils'; diff --git a/src/__tests__/nodeSuites/fetch-specific-splits.spec.js b/src/__tests__/nodeSuites/fetch-specific-splits.spec.js index 4aaeb736f..932e5083f 100644 --- a/src/__tests__/nodeSuites/fetch-specific-splits.spec.js +++ b/src/__tests__/nodeSuites/fetch-specific-splits.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import { splitFilters, queryStrings, groupedFilters } from '../mocks/fetchSpecificSplits'; const baseConfig = { diff --git a/src/__tests__/nodeSuites/impressions-listener.spec.js b/src/__tests__/nodeSuites/impressions-listener.spec.js index b4f50f526..287ec5cf4 100644 --- a/src/__tests__/nodeSuites/impressions-listener.spec.js +++ b/src/__tests__/nodeSuites/impressions-listener.spec.js @@ -1,8 +1,8 @@ import sinon from 'sinon'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: '' }, diff --git a/src/__tests__/nodeSuites/impressions.debug.spec.js b/src/__tests__/nodeSuites/impressions.debug.spec.js index 35da7b04b..5c10f8065 100644 --- a/src/__tests__/nodeSuites/impressions.debug.spec.js +++ b/src/__tests__/nodeSuites/impressions.debug.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; @@ -10,7 +10,7 @@ const baseUrls = { events: 'https://events.baseurl/impressionsDebugSuite' }; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: '' }, diff --git a/src/__tests__/nodeSuites/impressions.spec.js b/src/__tests__/nodeSuites/impressions.spec.js index 147115c05..098aefdf2 100644 --- a/src/__tests__/nodeSuites/impressions.spec.js +++ b/src/__tests__/nodeSuites/impressions.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import { SDK_NOT_READY } from '@splitsoftware/splitio-commons/src/utils/labels'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; @@ -12,7 +12,7 @@ const baseUrls = { events: 'https://events.baseurl/impressionsSuite' }; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: '' }, diff --git a/src/__tests__/nodeSuites/ip-addresses-setting.debug.spec.js b/src/__tests__/nodeSuites/ip-addresses-setting.debug.spec.js index 38fc8a89d..61ae5f37c 100644 --- a/src/__tests__/nodeSuites/ip-addresses-setting.debug.spec.js +++ b/src/__tests__/nodeSuites/ip-addresses-setting.debug.spec.js @@ -1,7 +1,7 @@ import osFunction from 'os'; import ipFunction from '../../utils/ip'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { DEBUG } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; @@ -64,7 +64,7 @@ export default function ipAddressesSettingAssertions(fetchMock, assert) { settings.scheduler.telemetryRefreshRate = 1000; }); const client = splitio.client(); - const settings = settingsValidator(config); + const settings = settingsFactory(config); // Generator to synchronize the destruction of the client when all the post endpoints where called once. const finishConfig = (function* () { diff --git a/src/__tests__/nodeSuites/ip-addresses-setting.spec.js b/src/__tests__/nodeSuites/ip-addresses-setting.spec.js index b96704861..eb7a4292c 100644 --- a/src/__tests__/nodeSuites/ip-addresses-setting.spec.js +++ b/src/__tests__/nodeSuites/ip-addresses-setting.spec.js @@ -1,7 +1,7 @@ import osFunction from 'os'; import ipFunction from '../../utils/ip'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { STANDALONE_MODE, CONSUMER_MODE } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; @@ -108,7 +108,7 @@ export default function ipAddressesSettingAssertions(fetchMock, assert) { settings.scheduler.telemetryRefreshRate = 1000; }); const client = splitio.client(); - const settings = settingsValidator(config); + const settings = settingsFactory(config); // Generator to synchronize the destruction of the client when all the post endpoints where called once. const finishConfig = (function* () { diff --git a/src/__tests__/nodeSuites/manager.spec.js b/src/__tests__/nodeSuites/manager.spec.js index 708abe1cc..c2ac619f5 100644 --- a/src/__tests__/nodeSuites/manager.spec.js +++ b/src/__tests__/nodeSuites/manager.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import splitChangesMockReal from '../mocks/splitchanges.real.json'; import map from 'lodash/map'; import { url } from '../testUtils'; diff --git a/src/__tests__/nodeSuites/push-fallbacking.spec.js b/src/__tests__/nodeSuites/push-fallbacking.spec.js index 0745c8958..8285028ad 100644 --- a/src/__tests__/nodeSuites/push-fallbacking.spec.js +++ b/src/__tests__/nodeSuites/push-fallbacking.spec.js @@ -29,8 +29,8 @@ import { nearlyEqual, mockSegmentChanges, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const key = 'nicolas@split.io'; @@ -51,7 +51,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_SSE_OPEN = 100; const MILLIS_STREAMING_DOWN_OCCUPANCY = MILLIS_SSE_OPEN + 100; diff --git a/src/__tests__/nodeSuites/push-initialization-nopush.spec.js b/src/__tests__/nodeSuites/push-initialization-nopush.spec.js index 152758e1e..f25de2703 100644 --- a/src/__tests__/nodeSuites/push-initialization-nopush.spec.js +++ b/src/__tests__/nodeSuites/push-initialization-nopush.spec.js @@ -1,5 +1,5 @@ -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import authPushDisabled from '../mocks/auth.pushDisabled.json'; @@ -28,7 +28,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); /** * Sequence of calls: diff --git a/src/__tests__/nodeSuites/push-initialization-retries.spec.js b/src/__tests__/nodeSuites/push-initialization-retries.spec.js index 0ef5abc83..b6ddb52ee 100644 --- a/src/__tests__/nodeSuites/push-initialization-retries.spec.js +++ b/src/__tests__/nodeSuites/push-initialization-retries.spec.js @@ -7,8 +7,8 @@ import authPushBadToken from '../mocks/auth.pushBadToken.json'; import { nearlyEqual, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const baseUrls = { sdk: 'https://sdk.push-initialization-retries/api', @@ -28,7 +28,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); /** * Sequence of calls: diff --git a/src/__tests__/nodeSuites/push-refresh-token.spec.js b/src/__tests__/nodeSuites/push-refresh-token.spec.js index 3d1cfce6d..644d2c07d 100644 --- a/src/__tests__/nodeSuites/push-refresh-token.spec.js +++ b/src/__tests__/nodeSuites/push-refresh-token.spec.js @@ -9,8 +9,8 @@ import { nearlyEqual, mockSegmentChanges, url } from '../testUtils'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const key = 'nicolas@split.io'; @@ -30,7 +30,7 @@ const config = { }, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_CONNDELAY = 500; const MILLIS_REFRESH_TOKEN = 1000; diff --git a/src/__tests__/nodeSuites/push-synchronization-retries.spec.js b/src/__tests__/nodeSuites/push-synchronization-retries.spec.js index ccf697485..b9180a390 100644 --- a/src/__tests__/nodeSuites/push-synchronization-retries.spec.js +++ b/src/__tests__/nodeSuites/push-synchronization-retries.spec.js @@ -13,8 +13,8 @@ import { Backoff } from '@splitsoftware/splitio-commons/src/utils/Backoff'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const key = 'nicolas@split.io'; @@ -31,7 +31,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_SSE_OPEN = 100; diff --git a/src/__tests__/nodeSuites/push-synchronization.spec.js b/src/__tests__/nodeSuites/push-synchronization.spec.js index f0041fe98..c7cf5611a 100644 --- a/src/__tests__/nodeSuites/push-synchronization.spec.js +++ b/src/__tests__/nodeSuites/push-synchronization.spec.js @@ -17,8 +17,8 @@ import { nearlyEqual, mockSegmentChanges, url, hasNoCacheHeader } from '../testU import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; const key = 'nicolas@split.io'; const otherUserKey = 'marcio@split.io'; @@ -36,7 +36,7 @@ const config = { streamingEnabled: true, // debug: true, }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const MILLIS_SSE_OPEN = 100; const MILLIS_FIRST_SPLIT_UPDATE_EVENT = 200; diff --git a/src/__tests__/nodeSuites/ready-promise.spec.js b/src/__tests__/nodeSuites/ready-promise.spec.js index d1e65ec63..43e845e5b 100644 --- a/src/__tests__/nodeSuites/ready-promise.spec.js +++ b/src/__tests__/nodeSuites/ready-promise.spec.js @@ -8,7 +8,7 @@ const consoleSpy = { log: sinon.spy(console, 'log'), }; -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { mockSegmentChanges } from '../testUtils'; diff --git a/src/__tests__/nodeSuites/telemetry.spec.js b/src/__tests__/nodeSuites/telemetry.spec.js index 6a4eb7294..81679fc81 100644 --- a/src/__tests__/nodeSuites/telemetry.spec.js +++ b/src/__tests__/nodeSuites/telemetry.spec.js @@ -1,4 +1,4 @@ -import { SplitFactory } from '../../index'; +import { SplitFactory } from '../../'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import { url, mockSegmentChanges } from '../testUtils'; diff --git a/src/__tests__/offline/browser.spec.js b/src/__tests__/offline/browser.spec.js index bc44e32ee..ee3baf2fc 100644 --- a/src/__tests__/offline/browser.spec.js +++ b/src/__tests__/offline/browser.spec.js @@ -2,10 +2,10 @@ import tape from 'tape-catch'; import sinon from 'sinon'; import fetchMock from '../testUtils/fetchMock'; import { url } from '../testUtils'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; -const settings = settingsValidator({ core: { key: 'facundo@split.io' } }); +const settings = settingsFactory({ core: { key: 'facundo@split.io' } }); const spySplitChanges = sinon.spy(); const spySegmentChanges = sinon.spy(); diff --git a/src/__tests__/offline/node.spec.js b/src/__tests__/offline/node.spec.js index 611749c53..7e841e820 100644 --- a/src/__tests__/offline/node.spec.js +++ b/src/__tests__/offline/node.spec.js @@ -4,10 +4,10 @@ import tape from 'tape-catch'; import sinon from 'sinon'; import fetchMock from '../testUtils/nodeFetchMock'; import { url } from '../testUtils'; -import { SplitFactory } from '../../index'; -import { settingsValidator } from '../../settings'; +import { SplitFactory } from '../../'; +import { settingsFactory } from '../../settings'; -const settings = settingsValidator({ core: { key: 'facundo@split.io' } }); +const settings = settingsFactory({ core: { key: 'facundo@split.io' } }); const spySplitChanges = sinon.spy(); const spySegmentChanges = sinon.spy(); diff --git a/src/__tests__/online/browser.spec.js b/src/__tests__/online/browser.spec.js index 3ec8d1235..e5bb5bc47 100644 --- a/src/__tests__/online/browser.spec.js +++ b/src/__tests__/online/browser.spec.js @@ -19,7 +19,7 @@ import fetchSpecificSplits from '../browserSuites/fetch-specific-splits.spec'; import userConsent from '../browserSuites/user-consent.spec'; import singleSync from '../browserSuites/single-sync.spec'; -import { settingsValidator } from '../../settings'; +import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; @@ -27,7 +27,7 @@ import mySegmentsNicolas from '../mocks/mysegments.nicolas@split.io.json'; import mySegmentsMarcio from '../mocks/mysegments.marcio@split.io.json'; import mySegmentsEmmanuel from '../mocks/mysegments.emmanuel@split.io.json'; -const settings = settingsValidator({ +const settings = settingsFactory({ core: { key: 'facundo@split.io' }, diff --git a/src/__tests__/online/node.spec.js b/src/__tests__/online/node.spec.js index c196653fa..3fbc56bff 100644 --- a/src/__tests__/online/node.spec.js +++ b/src/__tests__/online/node.spec.js @@ -1,7 +1,7 @@ import tape from 'tape-catch'; import fetchMock from '../testUtils/nodeFetchMock'; import { url } from '../testUtils'; -import { settingsValidator } from '../../settings/node'; +import { settingsFactory } from '../../settings/node'; import evaluationsSuite from '../nodeSuites/evaluations.spec'; import eventsSuite from '../nodeSuites/events.spec'; @@ -31,7 +31,7 @@ const config = { streamingEnabled: false }; -const settings = settingsValidator(config); +const settings = settingsFactory(config); const key = 'facundo@split.io'; fetchMock.get(url(settings, '/splitChanges?since=-1'), { status: 200, body: splitChangesMock1 }); diff --git a/src/factory/browser.js b/src/factory/browser.js index c8b439a0c..8fbf736b4 100644 --- a/src/factory/browser.js +++ b/src/factory/browser.js @@ -14,7 +14,7 @@ import { LOCALHOST_MODE, STORAGE_LOCALSTORAGE } from '@splitsoftware/splitio-com import { shouldAddPt } from '@splitsoftware/splitio-commons/src/trackers/impressionObserver/utils'; import { createUserConsentAPI } from '@splitsoftware/splitio-commons/src/consent/sdkUserConsent'; -import { settingsValidator } from '../settings/browser'; +import { settingsFactory } from '../settings/browser'; import { platform, SignalListener } from '../platform'; const syncManagerOnlineCSFactory = syncManagerOnlineFactory(pollingManagerCSFactory, pushManagerFactory); @@ -81,7 +81,7 @@ function getModules(settings) { * @throws Will throw an error if the provided config is invalid. */ export function SplitFactory(config, __updateModules) { - const settings = settingsValidator(config); + const settings = settingsFactory(config); const modules = getModules(settings); if (__updateModules) __updateModules(modules); return sdkFactory(modules); diff --git a/src/factory/node.js b/src/factory/node.js index 5a36c6b30..b01a3dfd4 100644 --- a/src/factory/node.js +++ b/src/factory/node.js @@ -11,7 +11,7 @@ import { sdkFactory } from '@splitsoftware/splitio-commons/src/sdkFactory'; import { CONSUMER_MODE, LOCALHOST_MODE } from '@splitsoftware/splitio-commons/src/utils/constants'; import { shouldAddPt } from '@splitsoftware/splitio-commons/src/trackers/impressionObserver/utils'; -import { settingsValidator } from '../settings/node'; +import { settingsFactory } from '../settings/node'; import { platform, SignalListener } from '../platform'; const syncManagerOnlineSSFactory = syncManagerOnlineFactory(pollingManagerSSFactory, pushManagerFactory); @@ -71,7 +71,7 @@ function getModules(settings) { * @throws Will throw an error if the provided config is invalid. */ export function SplitFactory(config, __updateModules) { - const settings = settingsValidator(config); + const settings = settingsFactory(config); const modules = getModules(settings); if (__updateModules) __updateModules(modules); return sdkFactory(modules); diff --git a/src/settings/__tests__/browser.spec.js b/src/settings/__tests__/browser.spec.js index 5f61d6f4d..0a37e0772 100644 --- a/src/settings/__tests__/browser.spec.js +++ b/src/settings/__tests__/browser.spec.js @@ -1,8 +1,8 @@ import tape from 'tape-catch'; -import { settingsValidator } from '../browser'; +import { settingsFactory } from '../browser'; tape('SETTINGS / Integrations should be properly parsed', assert => { - const settings = settingsValidator({ + const settings = settingsFactory({ core: { authorizationKey: 'dummy token' }, @@ -21,7 +21,7 @@ tape('SETTINGS / Integrations should be properly parsed', assert => { { type: 'SPLIT_TO_GOOGLE_ANALYTICS', prefix: 'prefix3' } ], 'Filters invalid integrations from `integrations` array'); - assert.deepEqual(settingsValidator({ + assert.deepEqual(settingsFactory({ core: { authorizationKey: 'dummy token' }, @@ -32,16 +32,16 @@ tape('SETTINGS / Integrations should be properly parsed', assert => { }); tape('SETTINGS / Consent is overwritable and "GRANTED" by default in client-side', assert => { - let settings = settingsValidator({}); + let settings = settingsFactory({}); assert.equal(settings.userConsent, 'GRANTED', 'userConsent defaults to granted if not provided.'); - settings = settingsValidator({ userConsent: 'INVALID-VALUE' }); + settings = settingsFactory({ userConsent: 'INVALID-VALUE' }); assert.equal(settings.userConsent, 'GRANTED', 'userConsent defaults to granted if a wrong value is provided.'); - settings = settingsValidator({ userConsent: 'UNKNOWN' }); + settings = settingsFactory({ userConsent: 'UNKNOWN' }); assert.equal(settings.userConsent, 'UNKNOWN', 'userConsent can be overwritten.'); - settings = settingsValidator({ userConsent: 'declined' }); + settings = settingsFactory({ userConsent: 'declined' }); assert.equal(settings.userConsent, 'DECLINED', 'userConsent can be overwritten.'); assert.end(); diff --git a/src/settings/__tests__/node.spec.js b/src/settings/__tests__/node.spec.js index 0a6644220..b876fcad4 100644 --- a/src/settings/__tests__/node.spec.js +++ b/src/settings/__tests__/node.spec.js @@ -2,14 +2,14 @@ import tape from 'tape-catch'; import sinon from 'sinon'; import osFunction from 'os'; import ipFunction from '../../utils/ip'; -import { settingsValidator } from '../node'; +import { settingsFactory } from '../node'; import { CONSUMER_MODE, NA } from '@splitsoftware/splitio-commons/src/utils/constants'; const IP_VALUE = ipFunction.address(); const HOSTNAME_VALUE = osFunction.hostname(); tape('SETTINGS / Redis options should be properly parsed', assert => { - const settingsWithUrl = settingsValidator({ + const settingsWithUrl = settingsFactory({ core: { authorizationKey: 'dummy token' }, @@ -27,7 +27,7 @@ tape('SETTINGS / Redis options should be properly parsed', assert => { prefix: 'test_prefix' } }); - const settingsWithoutUrl = settingsValidator({ + const settingsWithoutUrl = settingsFactory({ core: { authorizationKey: 'dummy token' }, @@ -57,18 +57,18 @@ tape('SETTINGS / Redis options should be properly parsed', assert => { }); tape('SETTINGS / IPAddressesEnabled should be overwritable and true by default', assert => { - const settingsWithIPAddressDisabled = settingsValidator({ + const settingsWithIPAddressDisabled = settingsFactory({ core: { authorizationKey: 'dummy token', IPAddressesEnabled: false } }); - const settingsWithIPAddressEnabled = settingsValidator({ + const settingsWithIPAddressEnabled = settingsFactory({ core: { authorizationKey: 'dummy token' } }); - const settingsWithIPAddressDisabledAndConsumerMode = settingsValidator({ + const settingsWithIPAddressDisabledAndConsumerMode = settingsFactory({ core: { authorizationKey: 'dummy token', IPAddressesEnabled: false @@ -76,7 +76,7 @@ tape('SETTINGS / IPAddressesEnabled should be overwritable and true by default', mode: CONSUMER_MODE, storage: { type: 'REDIS' } }); - const settingsWithIPAddressEnabledAndConsumerMode = settingsValidator({ + const settingsWithIPAddressEnabledAndConsumerMode = settingsFactory({ core: { authorizationKey: 'dummy token' }, @@ -105,10 +105,10 @@ tape('SETTINGS / Throws exception if no "REDIS" storage is provided in consumer }; assert.throws(() => { - settingsValidator(config); + settingsFactory(config); }, /A REDIS storage is required on consumer mode/); assert.throws(() => { - settingsValidator({ + settingsFactory({ ...config, storage: { type: 'invalid type' } }); @@ -122,11 +122,11 @@ tape('SETTINGS / Log error and fallback to InMemory storage if no valid storage const settings = [ - settingsValidator({ + settingsFactory({ core: { authorizationKey: 'localhost' }, // localhost mode storage: { type: 'REDIS' }, // 'REDIS' is not a valid storage for standalone and localhost modes debug: 'ERROR' - }), settingsValidator({ + }), settingsFactory({ core: { authorizationKey: 'dummy token' }, // standalone mode storage: { type: 'INVALID' }, debug: 'ERROR' @@ -145,7 +145,7 @@ tape('SETTINGS / Log error and fallback to InMemory storage if no valid storage }); tape('SETTINGS / Consent is not overwritable in server-side', assert => { - const settings = settingsValidator({ userConsent: 'UNKNOWN' }); + const settings = settingsFactory({ userConsent: 'UNKNOWN' }); assert.equal(settings.userConsent, undefined, 'userConsent cannot be overwritten in NodeJS.'); assert.end(); diff --git a/src/settings/browser.js b/src/settings/browser.js index 95c1729ef..d3f04443e 100644 --- a/src/settings/browser.js +++ b/src/settings/browser.js @@ -19,6 +19,6 @@ const params = { consent: validateConsent, }; -export function settingsValidator(config) { +export function settingsFactory(config) { return settingsValidation(config, params); } diff --git a/src/settings/node.js b/src/settings/node.js index cf55ae882..2dc97cb73 100644 --- a/src/settings/node.js +++ b/src/settings/node.js @@ -16,6 +16,6 @@ const params = { // In Node.js the SDK ignores `config.integrations`, so a validator for integrations is not required }; -export function settingsValidator(config) { +export function settingsFactory(config) { return settingsValidation(config, params); } From a5f5f3f4123ceab854cc28537ea82a051f69db2a Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Fri, 29 Jul 2022 15:32:01 -0300 Subject: [PATCH 5/6] update on destroy test --- src/__tests__/destroy/browser.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/__tests__/destroy/browser.spec.js b/src/__tests__/destroy/browser.spec.js index c62bc6d43..149a5a31c 100644 --- a/src/__tests__/destroy/browser.spec.js +++ b/src/__tests__/destroy/browser.spec.js @@ -30,7 +30,6 @@ tape('SDK destroy for BrowserJS', async function (assert) { authorizationKey: 'fake-key', key: 'ut1' }, - debug: true, streamingEnabled: false }; From d5b829468f0911178bfecedbe58659c7c1fc8b8f Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Wed, 3 Aug 2022 11:49:29 -0300 Subject: [PATCH 6/6] formatting --- src/__tests__/browserSuites/impressions-listener.spec.js | 1 + src/__tests__/browserSuites/push-initialization-nopush.spec.js | 1 + src/__tests__/browserSuites/push-initialization-retries.spec.js | 2 ++ src/__tests__/browserSuites/push-refresh-token.spec.js | 1 + .../browserSuites/push-synchronization-retries.spec.js | 2 ++ src/__tests__/browserSuites/use-beacon-api.spec.js | 2 +- src/__tests__/browserSuites/user-consent.spec.js | 2 +- src/__tests__/destroy/browser.spec.js | 1 + src/__tests__/gaIntegration/browser.spec.js | 2 ++ src/__tests__/nodeSuites/impressions-listener.spec.js | 1 + src/__tests__/nodeSuites/push-initialization-nopush.spec.js | 1 + src/__tests__/nodeSuites/push-initialization-retries.spec.js | 2 ++ src/__tests__/nodeSuites/push-synchronization-retries.spec.js | 2 ++ 13 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/__tests__/browserSuites/impressions-listener.spec.js b/src/__tests__/browserSuites/impressions-listener.spec.js index 644d3d6b1..de6c41e62 100644 --- a/src/__tests__/browserSuites/impressions-listener.spec.js +++ b/src/__tests__/browserSuites/impressions-listener.spec.js @@ -1,4 +1,5 @@ import sinon from 'sinon'; + import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; diff --git a/src/__tests__/browserSuites/push-initialization-nopush.spec.js b/src/__tests__/browserSuites/push-initialization-nopush.spec.js index 01262933b..6e0e0a4f7 100644 --- a/src/__tests__/browserSuites/push-initialization-nopush.spec.js +++ b/src/__tests__/browserSuites/push-initialization-nopush.spec.js @@ -7,6 +7,7 @@ import authPushDisabled from '../mocks/auth.pushDisabled.json'; import authPushEnabledNicolas from '../mocks/auth.pushEnabled.nicolas@split.io.json'; import authInvalidCredentials from '../mocks/auth.invalidCredentials.txt'; import { nearlyEqual, url } from '../testUtils'; + import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; const baseUrls = { diff --git a/src/__tests__/browserSuites/push-initialization-retries.spec.js b/src/__tests__/browserSuites/push-initialization-retries.spec.js index 87d96d7bb..4d72ee15d 100644 --- a/src/__tests__/browserSuites/push-initialization-retries.spec.js +++ b/src/__tests__/browserSuites/push-initialization-retries.spec.js @@ -6,7 +6,9 @@ import authPushBadToken from '../mocks/auth.pushBadToken.json'; import mySegmentsNicolasMock from '../mocks/mysegments.nicolas@split.io.json'; import { nearlyEqual, url } from '../testUtils'; + import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; + import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; diff --git a/src/__tests__/browserSuites/push-refresh-token.spec.js b/src/__tests__/browserSuites/push-refresh-token.spec.js index 0ff61a236..8a226503b 100644 --- a/src/__tests__/browserSuites/push-refresh-token.spec.js +++ b/src/__tests__/browserSuites/push-refresh-token.spec.js @@ -1,6 +1,7 @@ import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import mySegmentsNicolasMock1 from '../mocks/mysegments.nicolas@split.io.json'; + import authPushEnabledNicolas from '../mocks/auth.pushEnabled.nicolas@split.io.601secs.json'; import authPushDisabled from '../mocks/auth.pushDisabled.json'; diff --git a/src/__tests__/browserSuites/push-synchronization-retries.spec.js b/src/__tests__/browserSuites/push-synchronization-retries.spec.js index 855a34968..03c79554f 100644 --- a/src/__tests__/browserSuites/push-synchronization-retries.spec.js +++ b/src/__tests__/browserSuites/push-synchronization-retries.spec.js @@ -4,10 +4,12 @@ import splitChangesMock3 from '../mocks/splitchanges.since.1457552620999.till.14 import mySegmentsNicolasMock1 from '../mocks/mysegments.nicolas@split.io.json'; import mySegmentsNicolasMock2 from '../mocks/mysegments.nicolas@split.io.mock2.json'; import mySegmentsMarcio from '../mocks/mysegments.marcio@split.io.json'; + import splitUpdateMessage from '../mocks/message.SPLIT_UPDATE.1457552649999.json'; import oldSplitUpdateMessage from '../mocks/message.SPLIT_UPDATE.1457552620999.json'; import mySegmentsUpdateMessage from '../mocks/message.MY_SEGMENTS_UPDATE.nicolas@split.io.1457552640000.json'; import splitKillMessage from '../mocks/message.SPLIT_KILL.1457552650000.json'; + import authPushEnabledNicolas from '../mocks/auth.pushEnabled.nicolas@split.io.json'; import { nearlyEqual, url } from '../testUtils'; diff --git a/src/__tests__/browserSuites/use-beacon-api.spec.js b/src/__tests__/browserSuites/use-beacon-api.spec.js index 27bea08c3..8cb212280 100644 --- a/src/__tests__/browserSuites/use-beacon-api.spec.js +++ b/src/__tests__/browserSuites/use-beacon-api.spec.js @@ -3,8 +3,8 @@ import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; -import { OPTIMIZED } from '@splitsoftware/splitio-commons/src/utils/constants'; import { url } from '../testUtils'; +import { OPTIMIZED } from '@splitsoftware/splitio-commons/src/utils/constants'; import { triggerPagehideEvent, triggerVisibilitychange } from '../testUtils/browser'; const config = { diff --git a/src/__tests__/browserSuites/user-consent.spec.js b/src/__tests__/browserSuites/user-consent.spec.js index 2334916a3..7dd3cad9e 100644 --- a/src/__tests__/browserSuites/user-consent.spec.js +++ b/src/__tests__/browserSuites/user-consent.spec.js @@ -1,7 +1,7 @@ import sinon from 'sinon'; import { SplitFactory } from '../../'; -import { nearlyEqual, url } from '../testUtils'; import { triggerPagehideEvent } from '../testUtils/browser'; +import { nearlyEqual, url } from '../testUtils'; const trackedImpressions = []; diff --git a/src/__tests__/destroy/browser.spec.js b/src/__tests__/destroy/browser.spec.js index 149a5a31c..2c1b3d2cd 100644 --- a/src/__tests__/destroy/browser.spec.js +++ b/src/__tests__/destroy/browser.spec.js @@ -5,6 +5,7 @@ import map from 'lodash/map'; import pick from 'lodash/pick'; import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; + import splitChangesMock1 from '../mocks/splitChanges.since.-1.till.1500492097547.json'; import splitChangesMock2 from '../mocks/splitChanges.since.1500492097547.json'; import mySegmentsMock from '../mocks/mySegmentsEmpty.json'; diff --git a/src/__tests__/gaIntegration/browser.spec.js b/src/__tests__/gaIntegration/browser.spec.js index 2248fb50d..6d61aea16 100644 --- a/src/__tests__/gaIntegration/browser.spec.js +++ b/src/__tests__/gaIntegration/browser.spec.js @@ -4,7 +4,9 @@ import { url } from '../testUtils'; import gaToSplitSuite from './ga-to-split.spec'; import splitToGaSuite from './split-to-ga.spec'; import bothIntegrationsSuite from './both-integrations.spec'; + import { settingsFactory } from '../../settings'; + import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import mySegmentsFacundo from '../mocks/mysegments.facundo@split.io.json'; diff --git a/src/__tests__/nodeSuites/impressions-listener.spec.js b/src/__tests__/nodeSuites/impressions-listener.spec.js index 287ec5cf4..f1890e6eb 100644 --- a/src/__tests__/nodeSuites/impressions-listener.spec.js +++ b/src/__tests__/nodeSuites/impressions-listener.spec.js @@ -1,4 +1,5 @@ import sinon from 'sinon'; + import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; diff --git a/src/__tests__/nodeSuites/push-initialization-nopush.spec.js b/src/__tests__/nodeSuites/push-initialization-nopush.spec.js index f25de2703..f17b41412 100644 --- a/src/__tests__/nodeSuites/push-initialization-nopush.spec.js +++ b/src/__tests__/nodeSuites/push-initialization-nopush.spec.js @@ -7,6 +7,7 @@ import authPushEnabled from '../mocks/auth.pushEnabled.node.json'; import authInvalidCredentials from '../mocks/auth.invalidCredentials.txt'; import authNoUserSpecified from '../mocks/auth.noUserSpecified.txt'; import { nearlyEqual, url } from '../testUtils'; + import { __setEventSource, __restore } from '../../platform/getEventSource/node'; import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; diff --git a/src/__tests__/nodeSuites/push-initialization-retries.spec.js b/src/__tests__/nodeSuites/push-initialization-retries.spec.js index b6ddb52ee..51b7b0ece 100644 --- a/src/__tests__/nodeSuites/push-initialization-retries.spec.js +++ b/src/__tests__/nodeSuites/push-initialization-retries.spec.js @@ -5,8 +5,10 @@ import authPushEnabled from '../mocks/auth.pushEnabled.node.json'; import authPushBadToken from '../mocks/auth.pushBadToken.json'; import { nearlyEqual, url } from '../testUtils'; + import EventSourceMock, { setMockListener } from '../testUtils/eventSourceMock'; import { __setEventSource } from '../../platform/getEventSource/node'; + import { SplitFactory } from '../../'; import { settingsFactory } from '../../settings'; diff --git a/src/__tests__/nodeSuites/push-synchronization-retries.spec.js b/src/__tests__/nodeSuites/push-synchronization-retries.spec.js index b9180a390..3e71548d6 100644 --- a/src/__tests__/nodeSuites/push-synchronization-retries.spec.js +++ b/src/__tests__/nodeSuites/push-synchronization-retries.spec.js @@ -1,10 +1,12 @@ import splitChangesMock1 from '../mocks/splitchanges.since.-1.json'; import splitChangesMock2 from '../mocks/splitchanges.since.1457552620999.json'; import splitChangesMock3 from '../mocks/splitchanges.since.1457552620999.till.1457552649999.SPLIT_UPDATE.json'; + import splitUpdateMessage from '../mocks/message.SPLIT_UPDATE.1457552649999.json'; import oldSplitUpdateMessage from '../mocks/message.SPLIT_UPDATE.1457552620999.json'; import segmentUpdateMessage from '../mocks/message.SEGMENT_UPDATE.1457552640000.json'; import splitKillMessage from '../mocks/message.SPLIT_KILL.1457552650000.json'; + import authPushEnabled from '../mocks/auth.pushEnabled.node.json'; import { nearlyEqual, mockSegmentChanges, url } from '../testUtils';