From 6f2c0bbd6d53dc8721941f868bb307cef041acc0 Mon Sep 17 00:00:00 2001 From: Matthew Keeler Date: Thu, 5 Nov 2026 18:39:09 +0000 Subject: [PATCH] fix: Make TestData valueForAll return its value when targeting is off Generated-by: termag --- .../sdk-server/__tests__/LDClient.evaluation.test.ts | 8 ++++++++ .../__tests__/integrations/test_data/TestData.test.ts | 8 ++++++++ .../src/integrations/test_data/TestDataFlagBuilder.ts | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/shared/sdk-server/__tests__/LDClient.evaluation.test.ts b/packages/shared/sdk-server/__tests__/LDClient.evaluation.test.ts index fa0ff07746..789c7db0d1 100644 --- a/packages/shared/sdk-server/__tests__/LDClient.evaluation.test.ts +++ b/packages/shared/sdk-server/__tests__/LDClient.evaluation.test.ts @@ -200,6 +200,14 @@ describe('given an LDClient with test data', () => { expect(stringRes).toBe('potato'); }); + it('evaluates a value for all flag to its value when targeting is off', async () => { + await td.update(td.flag('flagkey').valueForAll('potato').on(false)); + const detail = await client.variationDetail('flagkey', defaultUser, 'default'); + expect(detail.value).toEqual('potato'); + expect(detail.variationIndex).toEqual(0); + expect(detail.reason).toEqual({ kind: 'OFF' }); + }); + it('evaluates an existing boolean flag', async () => { td.update(td.flag('flagkey').booleanFlag().on(true)); expect(await client.boolVariation('flagkey', defaultUser, false)).toEqual(true); diff --git a/packages/shared/sdk-server/__tests__/integrations/test_data/TestData.test.ts b/packages/shared/sdk-server/__tests__/integrations/test_data/TestData.test.ts index aee9a6b3b8..d3502ff971 100644 --- a/packages/shared/sdk-server/__tests__/integrations/test_data/TestData.test.ts +++ b/packages/shared/sdk-server/__tests__/integrations/test_data/TestData.test.ts @@ -251,6 +251,14 @@ describe('given a TestData instance', () => { const built = flag.build(1); expect(built.variations).toEqual(['potato']); expect(built.fallthrough.variation).toEqual(0); + expect(built.offVariation).toEqual(0); + }); + + it('sets the off variation to the value for all when targeting is off', () => { + const built = td.flag('test-flag').valueForAll('potato').on(false).build(1); + expect(built.on).toBe(false); + expect(built.variations).toEqual(['potato']); + expect(built.offVariation).toEqual(0); }); it('can handle boolean values for *Variation setters', () => { diff --git a/packages/shared/sdk-server/src/integrations/test_data/TestDataFlagBuilder.ts b/packages/shared/sdk-server/src/integrations/test_data/TestDataFlagBuilder.ts index a3cf80a410..efd1810e75 100644 --- a/packages/shared/sdk-server/src/integrations/test_data/TestDataFlagBuilder.ts +++ b/packages/shared/sdk-server/src/integrations/test_data/TestDataFlagBuilder.ts @@ -196,7 +196,7 @@ export default class TestDataFlagBuilder { * @return the flag builder */ valueForAll(value: any): TestDataFlagBuilder { - return this.variations(value).variationForAll(0); + return this.variations(value).variationForAll(0).offVariation(0); } /**