|
|
@@ -120,7 +120,7 @@ describe('SplitTestSessionHandler', function () {
|
|
|
})
|
|
|
})
|
|
|
|
|
|
- it('should not read from the sta field', async function () {
|
|
|
+ it('should read from the sta field', async function () {
|
|
|
this.SplitTestCache.get = sinon.stub().resolves(
|
|
|
new Map(
|
|
|
Object.entries({
|
|
|
@@ -190,6 +190,76 @@ describe('SplitTestSessionHandler', function () {
|
|
|
})
|
|
|
})
|
|
|
|
|
|
+ it('should deduplicate entries from the sta field', async function () {
|
|
|
+ this.SplitTestCache.get = sinon.stub().resolves(
|
|
|
+ new Map(
|
|
|
+ Object.entries({
|
|
|
+ 'anon-test-1': {
|
|
|
+ _id: '661f92a4669764bb03f73e37',
|
|
|
+ name: 'anon-test-1',
|
|
|
+ versions: [
|
|
|
+ {
|
|
|
+ versionNumber: 1,
|
|
|
+ variants: [
|
|
|
+ {
|
|
|
+ name: 'enabled',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ 'anon-test-2': {
|
|
|
+ _id: '661f92a9d68ea711d6bf2df4',
|
|
|
+ name: 'anon-test-2',
|
|
|
+ versions: [
|
|
|
+ {
|
|
|
+ versionNumber: 1,
|
|
|
+ variants: [
|
|
|
+ {
|
|
|
+ name: 'v-1',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'v-2',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ })
|
|
|
+ )
|
|
|
+ )
|
|
|
+ const session = {
|
|
|
+ sta: `Zh+SpGaXZLsD9z43_1=d:sbrvs0;Zh+SqdaOpxHWvy30_1=d:sbtqg0;Zh+SqdaOpxHWvy30_1=d:sbtqg0;Zh+SpGaXZLsD9z43_1=d:sbrvs0;Zh+SqdaOpxHWvy30_2=1:sbsi00;Zh+SqdaOpxHWvy30_1=d:sbtqg0`,
|
|
|
+ }
|
|
|
+
|
|
|
+ const assignments =
|
|
|
+ await this.SplitTestSessionHandler.promises.getAssignments(session)
|
|
|
+ expect(assignments).to.deep.equal({
|
|
|
+ 'anon-test-1': [
|
|
|
+ {
|
|
|
+ variantName: 'default',
|
|
|
+ versionNumber: 1,
|
|
|
+ phase: 'release',
|
|
|
+ assignedAt: new Date(1712829600000),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ 'anon-test-2': [
|
|
|
+ {
|
|
|
+ variantName: 'default',
|
|
|
+ versionNumber: 1,
|
|
|
+ phase: 'release',
|
|
|
+ assignedAt: new Date(1712916000000),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ variantName: 'v-2',
|
|
|
+ versionNumber: 2,
|
|
|
+ phase: 'release',
|
|
|
+ assignedAt: new Date(1712858400000),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
it('should merge assignments from both splitTests and sta fields', async function () {
|
|
|
const session = {
|
|
|
splitTests: {
|