-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfetch-specific-splits.spec.js
More file actions
48 lines (39 loc) · 1.74 KB
/
fetch-specific-splits.spec.js
File metadata and controls
48 lines (39 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import { SplitFactory } from '../../';
import { splitFilters, queryStrings, groupedFilters } from '../mocks/fetchSpecificSplits';
const baseConfig = {
core: {
authorizationKey: '<fake-token-push-1>',
key: 'nicolas@split.io'
},
scheduler: {
featuresRefreshRate: 0.01
},
streamingEnabled: false,
};
export default function fetchSpecificSplits(fetchMock, assert) {
assert.plan(splitFilters.length);
for (let i = 0; i < splitFilters.length; i++) {
const urls = { sdk: 'https://sdkurl' + i };
const config = { ...baseConfig, sync: { splitFilters: splitFilters[i] }, urls };
if (groupedFilters[i]) { // tests where validateSplitFilters executes normally
const queryString = queryStrings[i] || '';
let factory;
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1' + queryString, { status: 200, body: { splits: [], since: -1, till: 1457552620999 } });
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.3&since=1457552620999&rbSince=-1' + queryString, { status: 200, body: { splits: [], since: 1457552620999, till: 1457552620999 } });
fetchMock.getOnce(urls.sdk + '/splitChanges?s=1.3&since=1457552620999&rbSince=-1' + queryString, function () {
factory.client().destroy().then(() => {
assert.pass(`splitFilters #${i}`);
});
return { status: 200, body: { ff: { d: [], s: 1457552620999, t: 1457552620999 } } };
});
fetchMock.get(urls.sdk + '/memberships/nicolas%40split.io', { status: 200, body: { 'ms': {} } });
factory = SplitFactory(config);
} else { // tests where validateSplitFilters throws an exception
try {
SplitFactory(config);
} catch (e) {
assert.equal(e.message, queryStrings[i]);
}
}
}
}