From 584f48ab66b7634e500c994178918e0769302272 Mon Sep 17 00:00:00 2001 From: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com> Date: Wed, 6 Sep 2023 09:20:26 -0700 Subject: [PATCH 1/2] fix: Use clientSideAvailability instead of clientSide for filtering client side flags. --- .../sdk-server/__tests__/LDClient.allFlags.test.ts | 14 ++++++-------- packages/shared/sdk-server/src/LDClientImpl.ts | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/shared/sdk-server/__tests__/LDClient.allFlags.test.ts b/packages/shared/sdk-server/__tests__/LDClient.allFlags.test.ts index 5861068c2a..4f3fd19879 100644 --- a/packages/shared/sdk-server/__tests__/LDClient.allFlags.test.ts +++ b/packages/shared/sdk-server/__tests__/LDClient.allFlags.test.ts @@ -108,28 +108,28 @@ describe('given an LDClient with test data', () => { on: false, offVariation: 0, variations: ['a'], - clientSide: false, }); td.usePreconfiguredFlag({ key: 'server-side-2', on: false, offVariation: 0, variations: ['b'], - clientSide: false, + // Absence and false should be equivalent, so we add a false one here. + clientSideAvailability: { usingEnvironmentId: false }, }); td.usePreconfiguredFlag({ key: 'client-side-1', on: false, offVariation: 0, variations: ['value1'], - clientSide: true, + clientSideAvailability: { usingEnvironmentId: true }, }); td.usePreconfiguredFlag({ key: 'client-side-2', on: false, offVariation: 0, variations: ['value2'], - clientSide: true, + clientSideAvailability: { usingEnvironmentId: true }, }); const state = await client.allFlagsState(defaultUser, { clientSideOnly: true }); expect(state.valid).toEqual(true); @@ -241,28 +241,26 @@ describe('given an LDClient with test data', () => { on: false, offVariation: 0, variations: ['a'], - clientSide: false, }); td.usePreconfiguredFlag({ key: 'server-side-2', on: false, offVariation: 0, variations: ['b'], - clientSide: false, }); td.usePreconfiguredFlag({ key: 'client-side-1', on: false, offVariation: 0, variations: ['value1'], - clientSide: true, + clientSideAvailability: { usingEnvironmentId: true }, }); td.usePreconfiguredFlag({ key: 'client-side-2', on: false, offVariation: 0, variations: ['value2'], - clientSide: true, + clientSideAvailability: { usingEnvironmentId: true }, }); client.allFlagsState(defaultUser, { clientSideOnly: true }, (err, state) => { expect(state.valid).toEqual(true); diff --git a/packages/shared/sdk-server/src/LDClientImpl.ts b/packages/shared/sdk-server/src/LDClientImpl.ts index 768252cdbf..2cef8c9648 100644 --- a/packages/shared/sdk-server/src/LDClientImpl.ts +++ b/packages/shared/sdk-server/src/LDClientImpl.ts @@ -301,7 +301,7 @@ export default class LDClientImpl implements LDClient { Object.values(allFlags), (storeItem, iterCb) => { const flag = storeItem as Flag; - if (clientOnly && !flag.clientSide) { + if (clientOnly && !flag.clientSideAvailability?.usingEnvironmentId) { iterCb(true); return; } From 084efae631f25136e3c71aa34fb195e982a011ac Mon Sep 17 00:00:00 2001 From: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com> Date: Wed, 6 Sep 2023 09:28:08 -0700 Subject: [PATCH 2/2] Make akamai test data consistent. --- .../shared/akamai-edgeworker-sdk/src/__tests__/testData.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/shared/akamai-edgeworker-sdk/src/__tests__/testData.json b/packages/shared/akamai-edgeworker-sdk/src/__tests__/testData.json index 3f1388b529..2ff385cdfe 100644 --- a/packages/shared/akamai-edgeworker-sdk/src/__tests__/testData.json +++ b/packages/shared/akamai-edgeworker-sdk/src/__tests__/testData.json @@ -97,7 +97,7 @@ "variations": [true, false], "clientSideAvailability": { "usingMobileKey": true, - "usingEnvironmentId": true + "usingEnvironmentId": false }, "clientSide": false, "salt": "aef830243d6640d0a973be89988e008d",