Skip to content

Commit 3fdc52c

Browse files
Upgrade JS-commons with FLAG_SPEC_VERSION 1.2
1 parent 058b57e commit 3fdc52c

27 files changed

Lines changed: 161 additions & 161 deletions

package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"bugs": "https://github.com/splitio/javascript-browser-client/issues",
6565
"homepage": "https://github.com/splitio/javascript-browser-client#readme",
6666
"dependencies": {
67-
"@splitsoftware/splitio-commons": "1.16.1-rc.5",
67+
"@splitsoftware/splitio-commons": "1.16.1-rc.6",
6868
"@types/google.analytics": "0.0.40",
6969
"tslib": "^2.3.1",
7070
"unfetch": "^4.2.0"

src/__tests__/browserSuites/fetch-specific-splits.spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ export default function fetchSpecificSplits(fetchMock, assert) {
2424
const queryString = queryStrings[i] || '';
2525
let factory;
2626

27-
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.1&since=-1' + queryString, { status: 200, body: { splits: [], since: -1, till: 1457552620999 } });
28-
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.1&since=1457552620999' + queryString, { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
29-
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.1&since=1457552620999' + queryString, function () {
27+
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.2&since=-1' + queryString, { status: 200, body: { splits: [], since: -1, till: 1457552620999 } });
28+
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.2&since=1457552620999' + queryString, { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
29+
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.2&since=1457552620999' + queryString, function () {
3030
factory.client().destroy().then(() => {
3131
assert.pass(`splitFilters #${i}`);
3232
});

src/__tests__/browserSuites/ignore-ip-addresses-setting.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ export default function (fetchMock, assert) {
101101

102102
// Mock GET endpoints before creating the client
103103
const settings = settingsFactory(config);
104-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), { status: 200, body: splitChangesMock1 });
105-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
104+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=-1'), { status: 200, body: splitChangesMock1 });
105+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
106106
fetchMock.getOnce(url(settings, `/mySegments/${encodeURIComponent(config.core.key)}`), { status: 200, body: { mySegments: [] } });
107107

108108
// Init Split client

src/__tests__/browserSuites/impressions.debug.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ const settings = settingsFactory({
2121

2222
export default function (fetchMock, assert) {
2323
// Mocking this specific route to make sure we only get the items we want to test from the handlers.
24-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), { status: 200, body: splitChangesMock1 });
25-
fetchMock.get(url(settings, '/splitChanges?s=1.1&since=1457552620999'), { status: 200, body: splitChangesMock2 });
24+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=-1'), { status: 200, body: splitChangesMock1 });
25+
fetchMock.get(url(settings, '/splitChanges?s=1.2&since=1457552620999'), { status: 200, body: splitChangesMock2 });
2626
fetchMock.get(url(settings, '/mySegments/facundo%40split.io'), { status: 200, body: mySegmentsFacundo });
2727

2828
const splitio = SplitFactory({

src/__tests__/browserSuites/impressions.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ let truncatedTimeFrame;
2424

2525
export default function (fetchMock, assert) {
2626
// Mocking this specific route to make sure we only get the items we want to test from the handlers.
27-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), { status: 200, body: splitChangesMock1 });
28-
fetchMock.get(url(settings, '/splitChanges?s=1.1&since=1457552620999'), { status: 200, body: splitChangesMock2 });
27+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=-1'), { status: 200, body: splitChangesMock1 });
28+
fetchMock.get(url(settings, '/splitChanges?s=1.2&since=1457552620999'), { status: 200, body: splitChangesMock2 });
2929
fetchMock.get(url(settings, '/mySegments/facundo%40split.io'), { status: 200, body: mySegmentsFacundo });
3030

3131
const splitio = SplitFactory({

src/__tests__/browserSuites/manager.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import map from 'lodash/map';
44
import { url } from '../testUtils';
55

66
export default async function (settings, fetchMock, assert) {
7-
fetchMock.getOnce({ url: url(settings, '/splitChanges?s=1.1&since=-1'), overwriteRoutes: true }, { status: 200, body: splitChangesMockReal });
7+
fetchMock.getOnce({ url: url(settings, '/splitChanges?s=1.2&since=-1'), overwriteRoutes: true }, { status: 200, body: splitChangesMockReal });
88

99
const mockSplits = splitChangesMockReal;
1010

src/__tests__/browserSuites/push-corner-cases.spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@ export function testSplitKillOnReadyFromCache(fetchMock, assert) {
7070
});
7171

7272
// 1 auth request
73-
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), { status: 200, body: authPushEnabledNicolas });
73+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.2&users=${encodeURIComponent(userKey)}`), { status: 200, body: authPushEnabledNicolas });
7474
// 2 mySegments requests: initial sync and after SSE opened
7575
fetchMock.get({ url: url(settings, '/mySegments/nicolas%40split.io'), repeat: 2 }, { status: 200, body: { mySegments: [] } });
7676

7777
// 2 splitChanges request: initial sync and after SSE opened. Sync after SPLIT_KILL is not performed because SplitsSyncTask is "executing"
78-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=25'), { status: 200, body: splitChangesMock1 }, { delay: MILLIS_SPLIT_CHANGES_RESPONSE, /* delay response */ });
79-
fetchMock.getOnce(url(settings, `/splitChanges?s=1.1&since=${splitChangesMock1.till}`), { status: 200, body: { splits: [], since: splitChangesMock1.till, till: splitChangesMock1.till } }, { delay: MILLIS_SPLIT_CHANGES_RESPONSE - 100, /* delay response */ });
78+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=25'), { status: 200, body: splitChangesMock1 }, { delay: MILLIS_SPLIT_CHANGES_RESPONSE, /* delay response */ });
79+
fetchMock.getOnce(url(settings, `/splitChanges?s=1.2&since=${splitChangesMock1.till}`), { status: 200, body: { splits: [], since: splitChangesMock1.till, till: splitChangesMock1.till } }, { delay: MILLIS_SPLIT_CHANGES_RESPONSE - 100, /* delay response */ });
8080

8181
fetchMock.get(new RegExp('.*'), function (url) {
8282
assert.fail('unexpected GET request with url: ' + url);

src/__tests__/browserSuites/push-fallback.spec.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -207,59 +207,59 @@ export function testFallback(fetchMock, assert) {
207207

208208
});
209209

210-
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), function (url, opts) {
210+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.2&users=${encodeURIComponent(userKey)}`), function (url, opts) {
211211
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
212212
assert.pass('auth success');
213213
return { status: 200, body: authPushEnabledNicolas };
214214
});
215215

216216
// initial split and mySegment sync
217-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), { status: 200, body: splitChangesMock1 });
217+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=-1'), { status: 200, body: splitChangesMock1 });
218218
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
219219

220220
// split and segment sync after SSE opened
221-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
221+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
222222
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
223223

224224
// fetches due to first fallback to polling
225-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
225+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
226226
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
227-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), function () {
227+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), function () {
228228
const lapse = Date.now() - start;
229229
assert.true(nearlyEqual(lapse, MILLIS_STREAMING_DOWN_OCCUPANCY + settings.scheduler.featuresRefreshRate), 'fetch due to first fallback to polling');
230230
return { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } };
231231
});
232232
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
233233

234234
// split and segment sync due to streaming up (OCCUPANCY event)
235-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
235+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
236236
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
237237

238238
// creating of second client during streaming: initial mysegment sync, reauth and syncAll due to new client
239239
fetchMock.getOnce(url(settings, '/mySegments/marcio%40split.io'), { status: 200, body: mySegmentsMarcio });
240-
fetchMock.get({ url: url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}&users=${encodeURIComponent(secondUserKey)}`), repeat: 3 /* initial + 2 STREAMING_RESET */ }, (url, opts) => {
240+
fetchMock.get({ url: url(settings, `/v2/auth?s=1.2&users=${encodeURIComponent(userKey)}&users=${encodeURIComponent(secondUserKey)}`), repeat: 3 /* initial + 2 STREAMING_RESET */ }, (url, opts) => {
241241
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
242242
assert.pass('second auth success');
243243
return { status: 200, body: authPushEnabledNicolasAndMarcio };
244244
});
245-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
245+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
246246
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
247247
fetchMock.getOnce(url(settings, '/mySegments/marcio%40split.io'), { status: 200, body: mySegmentsMarcio });
248248

249249
// fetch due to SPLIT_UPDATE event
250-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), function () {
250+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), function () {
251251
const lapse = Date.now() - start;
252252
assert.true(nearlyEqual(lapse, MILLIS_SPLIT_UPDATE_EVENT_DURING_PUSH), 'sync due to SPLIT_UPDATE event');
253253
return { status: 200, body: splitChangesMock2 };
254254
});
255255

256256
// fetches due to second fallback to polling
257-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552649999'), { status: 200, body: { splits: [], since: 1457552649999, till: 1457552649999 } });
257+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552649999'), { status: 200, body: { splits: [], since: 1457552649999, till: 1457552649999 } });
258258
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
259259
fetchMock.getOnce(url(settings, '/mySegments/marcio%40split.io'), { status: 200, body: mySegmentsMarcio });
260260

261261
// continue fetches due to second fallback to polling
262-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552649999'), function () {
262+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552649999'), function () {
263263
const lapse = Date.now() - start;
264264
assert.true(nearlyEqual(lapse, MILLIS_STREAMING_PAUSED_CONTROL + settings.scheduler.featuresRefreshRate), 'fetch due to second fallback to polling');
265265
return { status: 200, body: { splits: [], since: 1457552649999, till: 1457552649999 } };
@@ -268,7 +268,7 @@ export function testFallback(fetchMock, assert) {
268268
fetchMock.getOnce(url(settings, '/mySegments/marcio%40split.io'), { status: 200, body: mySegmentsMarcio });
269269

270270
// split and segment sync due to streaming up (CONTROL event)
271-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552649999'), { status: 200, body: { splits: [], since: 1457552649999, till: 1457552649999 } });
271+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552649999'), { status: 200, body: { splits: [], since: 1457552649999, till: 1457552649999 } });
272272
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
273273
fetchMock.getOnce(url(settings, '/mySegments/marcio%40split.io'), { status: 200, body: mySegmentsMarcio });
274274

@@ -280,17 +280,17 @@ export function testFallback(fetchMock, assert) {
280280
});
281281

282282
// fetches due to third fallback to polling (STREAMING_PAUSED), two sync all (two STREAMING_RESET events) and fourth fallback (STREAMING_DISABLED)
283-
fetchMock.get({ url: url(settings, '/splitChanges?s=1.1&since=1457552649999'), repeat: 4 }, { status: 200, body: { splits: [], since: 1457552649999, till: 1457552649999 } });
283+
fetchMock.get({ url: url(settings, '/splitChanges?s=1.2&since=1457552649999'), repeat: 4 }, { status: 200, body: { splits: [], since: 1457552649999, till: 1457552649999 } });
284284
fetchMock.get({ url: url(settings, '/mySegments/nicolas%40split.io'), repeat: 4 }, { status: 200, body: mySegmentsNicolasMock1 });
285285
fetchMock.get({ url: url(settings, '/mySegments/marcio%40split.io'), repeat: 4 }, { status: 200, body: mySegmentsMarcio });
286286

287287
// Periodic fetch due to polling (mySegments is not fetched due to smart pausing)
288-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552649999'), function () {
288+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552649999'), function () {
289289
const lapse = Date.now() - start;
290290
assert.true(nearlyEqual(lapse, MILLIS_STREAMING_DISABLED_CONTROL + settings.scheduler.featuresRefreshRate), 'fetch due to fourth fallback to polling');
291291
return { status: 200, body: splitChangesMock3 };
292292
});
293-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552669999'), function () {
293+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552669999'), function () {
294294
const lapse = Date.now() - start;
295295
assert.true(nearlyEqual(lapse, MILLIS_STREAMING_DISABLED_CONTROL + settings.scheduler.featuresRefreshRate * 2), 'fetch due to fourth fallback to polling');
296296
return { status: 200, body: { splits: [], since: 1457552669999, till: 1457552669999 } };

src/__tests__/browserSuites/push-initialization-nopush.spec.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,22 @@ function testInitializationFail(fetchMock, assert, fallbackToPolling) {
4646
let start, splitio, client, ready = false;
4747

4848
fetchMock.get(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolas });
49-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), function () {
49+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=-1'), function () {
5050
const lapse = Date.now() - start;
5151
assert.true(nearlyEqual(lapse, 0), 'initial sync');
5252
return { status: 200, body: splitChangesMock1 };
5353
});
5454

5555
if (fallbackToPolling) {
56-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), function () {
56+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), function () {
5757
assert.true(ready, 'client ready');
5858
const lapse = Date.now() - start;
5959
assert.true(nearlyEqual(lapse, 0), 'polling (first fetch)');
6060
return { status: 200, body: splitChangesMock2 };
6161
});
6262
}
6363

64-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=1457552620999'), function () {
64+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.2&since=1457552620999'), function () {
6565
assert.true(ready, 'client ready');
6666
const lapse = Date.now() - start;
6767
assert.true(nearlyEqual(lapse, settings.scheduler.featuresRefreshRate), 'polling (second fetch)');
@@ -83,7 +83,7 @@ function testInitializationFail(fetchMock, assert, fallbackToPolling) {
8383
export function testAuthWithPushDisabled(fetchMock, assert) {
8484
assert.plan(6);
8585

86-
fetchMock.getOnce(`https://auth.push-initialization-nopush/api/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`, function (url, opts) {
86+
fetchMock.getOnce(`https://auth.push-initialization-nopush/api/v2/auth?s=1.2&users=${encodeURIComponent(userKey)}`, function (url, opts) {
8787
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
8888
assert.pass('auth');
8989
return { status: 200, body: authPushDisabled };
@@ -96,7 +96,7 @@ export function testAuthWithPushDisabled(fetchMock, assert) {
9696
export function testAuthWith401(fetchMock, assert) {
9797
assert.plan(6);
9898

99-
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), function (url, opts) {
99+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.2&users=${encodeURIComponent(userKey)}`), function (url, opts) {
100100
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
101101
assert.pass('auth');
102102
return { status: 401, body: authInvalidCredentials };
@@ -122,7 +122,7 @@ export function testSSEWithNonRetryableError(fetchMock, assert) {
122122
assert.plan(7);
123123

124124
// Auth successes
125-
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), function (url, opts) {
125+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.2&users=${encodeURIComponent(userKey)}`), function (url, opts) {
126126
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
127127
assert.pass('auth successes');
128128
return { status: 200, body: authPushEnabledNicolas };

0 commit comments

Comments
 (0)