Skip to content

Commit ff12f34

Browse files
Add flags spec query param to auth requests
1 parent 440ac15 commit ff12f34

17 files changed

+48
-48
lines changed

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
@@ -40,7 +40,7 @@
4040
"node": ">=6"
4141
},
4242
"dependencies": {
43-
"@splitsoftware/splitio-commons": "1.13.2-rc.1",
43+
"@splitsoftware/splitio-commons": "1.13.2-rc.2",
4444
"@types/google.analytics": "0.0.40",
4545
"@types/ioredis": "^4.28.0",
4646
"bloom-filters": "^3.0.0",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export function testSplitKillOnReadyFromCache(fetchMock, assert) {
7171
});
7272

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

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

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

208208
});
209209

210-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), function (url, opts) {
210+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&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 };
@@ -237,7 +237,7 @@ export function testFallbacking(fetchMock, assert) {
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?users=${encodeURIComponent(userKey)}&users=${encodeURIComponent(secondUserKey)}`), repeat: 3 /* initial + 2 STREAMING_RESET */ }, (url, opts) => {
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) => {
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 };

src/__tests__/browserSuites/push-flag-sets.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export function testFlagSets(fetchMock, t) {
3838

3939
fetchMock.get(baseUrls.sdk + '/mySegments/nicolas%40split.io', { status: 200, body: { 'mySegments': [] } });
4040

41-
fetchMock.get(baseUrls.auth + '/v2/auth?users=nicolas%40split.io', function () {
41+
fetchMock.get(baseUrls.auth + '/v2/auth?s=1.1&users=nicolas%40split.io', function () {
4242
return { status: 200, body: authPushEnabled };
4343
});
4444
fetchMock.get(baseUrls.sdk + '/splitChanges?s=1.1&since=-1', function () {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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?users=${encodeURIComponent(userKey)}`, function (url, opts) {
86+
fetchMock.getOnce(`https://auth.push-initialization-nopush/api/v2/auth?s=1.1&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?users=${encodeURIComponent(userKey)}`), function (url, opts) {
99+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&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?users=${encodeURIComponent(userKey)}`), function (url, opts) {
125+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&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 };

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ export function testPushRetriesDueToAuthErrors(fetchMock, assert) {
5151

5252
let start, splitio, client, ready = false;
5353

54-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), function (url, opts) {
54+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), function (url, opts) {
5555
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
5656
assert.pass('first auth attempt');
5757
return { status: 200, body: authPushBadToken };
5858
});
59-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), { throws: new TypeError('Network error') });
60-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), function (url, opts) {
59+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), { throws: new TypeError('Network error') });
60+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), function (url, opts) {
6161
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
6262
const lapse = Date.now() - start;
6363
const expected = (settings.scheduler.pushRetryBackoffBase * Math.pow(2, 0) + settings.scheduler.pushRetryBackoffBase * Math.pow(2, 1));
@@ -130,7 +130,7 @@ export function testPushRetriesDueToSseErrors(fetchMock, assert) {
130130
sseattempts++;
131131
});
132132

133-
fetchMock.get({ url: url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), repeat: 3 /* 3 push attempts */ }, function (url, opts) {
133+
fetchMock.get({ url: url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), repeat: 3 /* 3 push attempts */ }, function (url, opts) {
134134
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
135135
assert.pass('auth success');
136136
return { status: 200, body: authPushEnabledNicolas };
@@ -189,7 +189,7 @@ export function testSdkDestroyWhileAuthSuccess(fetchMock, assert) {
189189

190190
let splitio, client, ready = false;
191191

192-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), { status: 200, body: authPushEnabledNicolas }, { delay: 100 });
192+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), { status: 200, body: authPushEnabledNicolas }, { delay: 100 });
193193

194194
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock });
195195
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), { status: 200, body: splitChangesMock1 });
@@ -224,7 +224,7 @@ export function testSdkDestroyWhileConnDelay(fetchMock, assert) {
224224
assert.fail('unexpected EventSource request with url: ' + eventSourceInstance.url);
225225
});
226226

227-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), { status: 200, body: { ...authPushEnabledNicolas, connDelay: 0.1 } });
227+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), { status: 200, body: { ...authPushEnabledNicolas, connDelay: 0.1 } });
228228
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock });
229229
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), { status: 200, body: splitChangesMock1 });
230230

@@ -255,8 +255,8 @@ export function testSdkDestroyWhileAuthRetries(fetchMock, assert) {
255255

256256
let splitio, client, ready = false;
257257

258-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), { status: 200, body: authPushBadToken });
259-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), { throws: new TypeError('Network error') }, { delay: 100 });
258+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), { status: 200, body: authPushBadToken });
259+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), { throws: new TypeError('Network error') }, { delay: 100 });
260260

261261
fetchMock.get({ url: url(settings, '/mySegments/nicolas%40split.io'), repeat: 2 }, { status: 200, body: mySegmentsNicolasMock });
262262
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), { status: 200, body: splitChangesMock1 });

src/__tests__/browserSuites/push-refresh-token.spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export function testRefreshToken(fetchMock, assert) {
8181
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
8282

8383
// first auth
84-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), function (url, opts) {
84+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), function (url, opts) {
8585
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
8686
assert.pass('auth success');
8787
return { status: 200, body: authPushEnabledNicolas };
@@ -92,7 +92,7 @@ export function testRefreshToken(fetchMock, assert) {
9292
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
9393

9494
// re-auth due to refresh token, with connDelay of 0.5 seconds
95-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), function (url, opts) {
95+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), function (url, opts) {
9696
const lapse = Date.now() - start;
9797
assert.true(nearlyEqual(lapse, MILLIS_REFRESH_TOKEN), 'reauthentication for token refresh');
9898
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
@@ -108,7 +108,7 @@ export function testRefreshToken(fetchMock, assert) {
108108
fetchMock.getOnce(url(settings, '/mySegments/nicolas%40split.io'), { status: 200, body: mySegmentsNicolasMock1 });
109109

110110
// second re-auth due to refresh token, this time responding with pushEnabled false
111-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}`), function (url, opts) {
111+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}`), function (url, opts) {
112112
const lapse = Date.now() - start;
113113
assert.true(nearlyEqual(lapse, MILLIS_REFRESH_TOKEN * 2), 'second reauthentication for token refresh');
114114
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');

src/__tests__/browserSuites/push-synchronization-retries.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ export function testSynchronizationRetries(fetchMock, assert) {
135135
});
136136

137137
// initial auth
138-
fetchMock.getOnce(url(settings, `/v2/auth?users=${encodeURIComponent(userKey)}&users=${encodeURIComponent(otherUserKeySync)}`), function (url, opts) {
138+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&users=${encodeURIComponent(userKey)}&users=${encodeURIComponent(otherUserKeySync)}`), function (url, opts) {
139139
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
140140
assert.pass('auth success');
141141
return { status: 200, body: authPushEnabledNicolas };

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,23 +265,23 @@ export function testSynchronization(fetchMock, assert) {
265265

266266
// initial auth
267267
let authParams = `users=${encodeURIComponent(userKey)}`;
268-
fetchMock.getOnce(url(settings, `/v2/auth?${authParams}`), function (url, opts) {
268+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&${authParams}`), function (url, opts) {
269269
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
270270
assert.pass('auth success');
271271
return { status: 200, body: authPushEnabledNicolas };
272272
});
273273

274274
// reauth due to new client
275275
authParams += `&users=${encodeURIComponent(otherUserKey)}`;
276-
fetchMock.getOnce(url(settings, `/v2/auth?${authParams}`), function (url, opts) {
276+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&${authParams}`), function (url, opts) {
277277
if (!opts.headers['Authorization']) assert.fail('`/v2/auth` request must include `Authorization` header');
278278
assert.pass('second auth success');
279279
return { status: 200, body: authPushEnabledNicolasAndMarcio };
280280
});
281281

282282
// reauth due to more clients
283283
authParams += `&users=${encodeURIComponent(keylistAddKey)}&users=${encodeURIComponent(keylistRemoveKey)}&users=${encodeURIComponent(bitmapTrueKey)}`;
284-
fetchMock.getOnce(url(settings, `/v2/auth?${authParams}`), { status: 200, body: authPushEnabledNicolasAndMarcio });
284+
fetchMock.getOnce(url(settings, `/v2/auth?s=1.1&${authParams}`), { status: 200, body: authPushEnabledNicolasAndMarcio });
285285

286286
// initial split and mySegments sync
287287
fetchMock.getOnce(url(settings, '/splitChanges?s=1.1&since=-1'), function (url, opts) {

0 commit comments

Comments
 (0)