Skip to content

Commit cf61f73

Browse files
Merge branch 'development' into cache_expiration
2 parents 9ebbab6 + 039ce57 commit cf61f73

9 files changed

Lines changed: 40 additions & 34 deletions

File tree

.github/workflows/ci-cd.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ permissions:
1919
jobs:
2020
build:
2121
name: Build
22-
# @TODO rollback to ubuntu-latest eventually. ATM, `npm run test-browser` fails when using ubuntu-latest (ubuntu-22.04) with "ERROR [launcher]: Cannot start ChromeHeadless"
23-
runs-on: ubuntu-20.04
22+
runs-on: ubuntu-latest
2423
steps:
2524
- name: Checkout code
2625
uses: actions/checkout@v4
@@ -56,7 +55,7 @@ jobs:
5655

5756
upload-stage:
5857
name: Upload assets
59-
runs-on: ubuntu-20.04
58+
runs-on: ubuntu-latest
6059
needs: build
6160
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/development' }}
6261
strategy:
@@ -99,7 +98,7 @@ jobs:
9998

10099
upload-prod:
101100
name: Upload assets
102-
runs-on: ubuntu-20.04
101+
runs-on: ubuntu-latest
103102
needs: build
104103
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
105104
strategy:

.github/workflows/sonar-scan.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
jobs:
1313
build:
1414
name: Build
15-
runs-on: ubuntu-20.04
15+
runs-on: ubuntu-latest
1616
steps:
1717
- name: Checkout code
1818
uses: actions/checkout@v4

.github/workflows/update-license-year.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ permissions:
1010

1111
jobs:
1212
test:
13-
runs-on: ubuntu-20.04
13+
runs-on: ubuntu-latest
1414
steps:
1515
- name: Checkout
1616
uses: actions/checkout@v4

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ Split has built and maintains SDKs for:
6464
* .NET [Github](https://github.com/splitio/dotnet-client) [Docs](https://help.split.io/hc/en-us/articles/360020240172--NET-SDK)
6565
* Android [Github](https://github.com/splitio/android-client) [Docs](https://help.split.io/hc/en-us/articles/360020343291-Android-SDK)
6666
* Angular [Github](https://github.com/splitio/angular-sdk-plugin) [Docs](https://help.split.io/hc/en-us/articles/6495326064397-Angular-utilities)
67+
* Elixir thin-client [Github](https://github.com/splitio/elixir-thin-client) [Docs](https://help.split.io/hc/en-us/articles/26988707417869-Elixir-Thin-Client-SDK)
6768
* Flutter [Github](https://github.com/splitio/flutter-sdk-plugin) [Docs](https://help.split.io/hc/en-us/articles/8096158017165-Flutter-plugin)
6869
* GO [Github](https://github.com/splitio/go-client) [Docs](https://help.split.io/hc/en-us/articles/360020093652-Go-SDK)
6970
* iOS [Github](https://github.com/splitio/ios-client) [Docs](https://help.split.io/hc/en-us/articles/360020401491-iOS-SDK)

karma/config.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,15 @@ module.exports = {
2424
'tap'
2525
],
2626

27-
// Run on Chrome Headless. Use 'Chrome' instead to run on full browser for debugging
28-
browsers: [
29-
'ChromeHeadless'
30-
],
27+
// Run on Chrome Headless
28+
customLaunchers: {
29+
ChromeHeadlessNoSandbox: {
30+
base: 'ChromeHeadless',
31+
// Flags required to run in ubuntu-22.04 or above (https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox_development.md)
32+
flags: ['--no-sandbox', '--disable-setuid-sandbox']
33+
}
34+
},
35+
browsers: ['ChromeHeadlessNoSandbox'],
3136

3237
// Continuous Integration mode
3338
// if true, it capture browsers, run tests and exit. Set false for debugging

package-lock.json

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

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,15 @@ export default function (fetchMock, assert) {
7575

7676
fetchMock.postOnce(url(settings, '/testImpressions/count'), (url, opts) => {
7777
assert.deepEqual(JSON.parse(opts.body), {
78-
pf: [{ f: 'always_on_track_impressions_false', m: truncatedTimeFrame, rc: 1 }]
78+
pf: [{ f: 'always_on_impressions_disabled_true', m: truncatedTimeFrame, rc: 1 }]
7979
}, 'We should generate impression count for the feature with track impressions disabled.');
8080

8181
return 200;
8282
});
8383

8484
fetchMock.postOnce(url(settings, '/v1/keys/cs'), (url, opts) => {
8585
assert.deepEqual(JSON.parse(opts.body), {
86-
keys: [{ fs: ['always_on_track_impressions_false'], k: 'facundo@split.io' }]
86+
keys: [{ fs: ['always_on_impressions_disabled_true'], k: 'facundo@split.io' }]
8787
}, 'We should track unique keys for the feature with track impressions disabled.');
8888

8989
return 200;
@@ -95,6 +95,6 @@ export default function (fetchMock, assert) {
9595
client.getTreatment('split_with_config');
9696
client.getTreatment('split_with_config');
9797
client.getTreatment('split_with_config');
98-
assert.equal(client.getTreatment('always_on_track_impressions_false'), 'on');
98+
assert.equal(client.getTreatment('always_on_impressions_disabled_true'), 'on');
9999
});
100100
}

src/__tests__/browserSuites/impressions.spec.js

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

5454
const dependencyChildImpr = resp.filter(e => e.f === 'hierarchical_splits_test')[0];
5555
const splitWithConfigImpr = resp.filter(e => e.f === 'split_with_config')[0];
56-
const alwaysOnWithTrackImpressionsFalse = resp.filter(e => e.f === 'always_on_track_impressions_false');
56+
const alwaysOnWithImpressionsDisabledTrue = resp.filter(e => e.f === 'always_on_impressions_disabled_true');
5757

5858
assert.true(dependencyChildImpr, 'Split we wanted to evaluate should be present on the impressions.');
5959
assert.false(resp.some(e => e.f === 'hierarchical_dep_always_on'), 'Parent split evaluations should not result in impressions.');
6060
assert.false(resp.some(e => e.f === 'hierarchical_dep_hierarchical'), 'No matter how deep is the chain.');
6161
assert.true(splitWithConfigImpr, 'Split evaluated with config should have generated an impression too.');
6262
assert.false(Object.prototype.hasOwnProperty.call(splitWithConfigImpr.i[0], 'configuration'), 'Impressions do not change with configuration evaluations.');
6363
assert.false(Object.prototype.hasOwnProperty.call(splitWithConfigImpr.i[0], 'config'), 'Impressions do not change with configuration evaluations.');
64-
assert.equal(alwaysOnWithTrackImpressionsFalse.length, 0);
64+
assert.equal(alwaysOnWithImpressionsDisabledTrue.length, 0);
6565

6666
const {
6767
k,
@@ -100,21 +100,21 @@ export default function (fetchMock, assert) {
100100

101101
// finding these validate the feature names collection too
102102
const splitWithConfigImpr = data.pf.filter(e => e.f === 'split_with_config')[0];
103-
const alwaysOnWithTrackImpressionsFalse = data.pf.filter(e => e.f === 'always_on_track_impressions_false')[0];
103+
const alwaysOnWithImpressionsDisabledTrue = data.pf.filter(e => e.f === 'always_on_impressions_disabled_true')[0];
104104

105105
assert.equal(splitWithConfigImpr.rc, 2);
106106
assert.equal(typeof splitWithConfigImpr.m, 'number');
107107
assert.equal(splitWithConfigImpr.m, truncatedTimeFrame);
108-
assert.equal(alwaysOnWithTrackImpressionsFalse.rc, 1);
109-
assert.equal(typeof alwaysOnWithTrackImpressionsFalse.m, 'number');
110-
assert.equal(alwaysOnWithTrackImpressionsFalse.m, truncatedTimeFrame);
108+
assert.equal(alwaysOnWithImpressionsDisabledTrue.rc, 1);
109+
assert.equal(typeof alwaysOnWithImpressionsDisabledTrue.m, 'number');
110+
assert.equal(alwaysOnWithImpressionsDisabledTrue.m, truncatedTimeFrame);
111111

112112
return 200;
113113
});
114114

115115
fetchMock.postOnce(url(settings, '/v1/keys/cs'), (url, opts) => {
116116
assert.deepEqual(JSON.parse(opts.body), {
117-
keys: [{ fs: [ 'always_on_track_impressions_false' ], k: 'facundo@split.io' }]
117+
keys: [{ fs: [ 'always_on_impressions_disabled_true' ], k: 'facundo@split.io' }]
118118
}, 'We should only track unique keys for features flags with track impressions disabled.');
119119

120120
return 200;
@@ -132,6 +132,6 @@ export default function (fetchMock, assert) {
132132
client.getTreatmentWithConfig('split_with_config');
133133

134134
// Impression should not be tracked
135-
assert.equal(client.getTreatment('always_on_track_impressions_false'), 'on');
135+
assert.equal(client.getTreatment('always_on_impressions_disabled_true'), 'on');
136136
});
137137
}

src/__tests__/mocks/splitchanges.since.-1.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1387,7 +1387,7 @@
13871387
"environment": null,
13881388
"trafficTypeId": null,
13891389
"trafficTypeName": null,
1390-
"name": "always_on_track_impressions_false",
1390+
"name": "always_on_impressions_disabled_true",
13911391
"impressionsDisabled": true,
13921392
"seed": -790401604,
13931393
"status": "ACTIVE",

0 commit comments

Comments
 (0)