From d1bceb02acb15caeca28cd569e787c9070a630e4 Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Thu, 23 Jul 2026 10:20:19 -0400 Subject: [PATCH] test: declare client-prereq-cycle-detection capability in wrappers Adds the `client-prereq-cycle-detection` capability to each wrapper's contract-test service so the sdk-test-harness exercises cycle scenarios against them. Covers react, react-native, electron, and node-client; vue has no contract-test service (jest-only), so nothing to declare. The defensive cycle guard itself lives in the shared @launchdarkly/js-client-sdk-common package (v1.30.0), which every wrapper already depends on. Each wrapper's variation() is a direct passthrough to the shared LDClientImpl, so no wrapper-specific code changes are needed. --- packages/sdk/electron/contract-tests/entity/src/main.ts | 1 + packages/sdk/node-client/contract-tests/src/index.ts | 1 + .../contract-tests/entity/src/TestHarnessWebSocket.ts | 1 + packages/sdk/react/contract-tests/app/TestHarnessWebSocket.ts | 1 + 4 files changed, 4 insertions(+) diff --git a/packages/sdk/electron/contract-tests/entity/src/main.ts b/packages/sdk/electron/contract-tests/entity/src/main.ts index 6a9944a0b7..d4de177a76 100644 --- a/packages/sdk/electron/contract-tests/entity/src/main.ts +++ b/packages/sdk/electron/contract-tests/entity/src/main.ts @@ -21,6 +21,7 @@ const capabilities = [ 'anonymous-redaction', 'strongly-typed', 'client-prereq-events', + 'client-prereq-cycle-detection', 'client-per-context-summaries', 'track-hooks', 'tls:skip-verify-peer', diff --git a/packages/sdk/node-client/contract-tests/src/index.ts b/packages/sdk/node-client/contract-tests/src/index.ts index 3ca91d9db1..b27a459e72 100644 --- a/packages/sdk/node-client/contract-tests/src/index.ts +++ b/packages/sdk/node-client/contract-tests/src/index.ts @@ -29,6 +29,7 @@ app.get('/', (req: Request, res: Response) => { 'inline-context', 'inline-context-all', 'client-prereq-events', + 'client-prereq-cycle-detection', 'client-per-context-summaries', 'evaluation-hooks', 'track-hooks', diff --git a/packages/sdk/react-native/contract-tests/entity/src/TestHarnessWebSocket.ts b/packages/sdk/react-native/contract-tests/entity/src/TestHarnessWebSocket.ts index 24cd7cff2b..b6a9c687f7 100644 --- a/packages/sdk/react-native/contract-tests/entity/src/TestHarnessWebSocket.ts +++ b/packages/sdk/react-native/contract-tests/entity/src/TestHarnessWebSocket.ts @@ -55,6 +55,7 @@ export default class TestHarnessWebSocket { 'anonymous-redaction', 'strongly-typed', 'client-prereq-events', + 'client-prereq-cycle-detection', 'client-per-context-summaries', 'track-hooks', ]; diff --git a/packages/sdk/react/contract-tests/app/TestHarnessWebSocket.ts b/packages/sdk/react/contract-tests/app/TestHarnessWebSocket.ts index 8d0ae51f8f..b9cbbfefc3 100644 --- a/packages/sdk/react/contract-tests/app/TestHarnessWebSocket.ts +++ b/packages/sdk/react/contract-tests/app/TestHarnessWebSocket.ts @@ -46,6 +46,7 @@ export default class TestHarnessWebSocket { 'anonymous-redaction', 'strongly-typed', 'client-prereq-events', + 'client-prereq-cycle-detection', 'client-per-context-summaries', 'track-hooks', ];