Skip to content

Commit ed57661

Browse files
committed
refactor: moving testharness adapter to shared utils
1 parent 1aa98fc commit ed57661

13 files changed

Lines changed: 23 additions & 59 deletions

File tree

.github/workflows/browser.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,23 +45,20 @@ jobs:
4545

4646
# Contract Tests
4747
- name: Install contract test dependencies
48-
run: yarn workspaces focus browser-contract-test-adapter browser-contract-test-service
48+
run: yarn workspaces focus browser-contract-test-service
4949

5050
- name: Install Playwright browsers
5151
run: yarn workspace browser-contract-test-service install-playwright-browsers
5252

5353
- name: Build shared contract test utils
5454
run: yarn workspace @launchdarkly/js-contract-test-utils build
5555

56-
- name: Build contract test adapter
57-
run: yarn workspace browser-contract-test-adapter run build
58-
5956
- name: Build contract test entity (browser app)
6057
run: yarn workspace browser-contract-test-service run build
6158

6259
- name: Start contract test adapter in background
6360
run: |
64-
yarn workspace browser-contract-test-adapter run start > /tmp/adapter.log 2>&1 &
61+
yarn workspace browser-contract-test-service run start:adapter > /tmp/adapter.log 2>&1 &
6562
echo $! > /tmp/adapter.pid
6663
6764
- name: Serve browser app with http-server

.github/workflows/react-native-contract-tests.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,14 @@ jobs:
2828
node-version: 24
2929

3030
- name: Install dependencies
31-
run: yarn workspaces focus react-native-contract-test-adapter react-native-contract-test-entity
31+
run: yarn workspaces focus react-native-contract-test-entity
3232

3333
- name: Build SDK and dependencies
3434
run: yarn workspaces foreach -pR --topological-dev --from '@launchdarkly/react-native-client-sdk' run build
3535

3636
- name: Build shared contract test utils
3737
run: yarn workspace @launchdarkly/js-contract-test-utils build
3838

39-
- name: Build contract test adapter
40-
run: yarn workspace react-native-contract-test-adapter run build
41-
4239
- name: Enable KVM group perms (for emulator performance)
4340
run: |
4441
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
@@ -71,7 +68,7 @@ jobs:
7168

7269
- name: Start adapter in background
7370
run: |
74-
yarn workspace react-native-contract-test-adapter run start > /tmp/adapter.log 2>&1 &
71+
yarn workspace react-native-contract-test-entity run start:adapter > /tmp/adapter.log 2>&1 &
7572
echo $! > /tmp/adapter.pid
7673
7774
- name: Wait for adapter to be ready

.github/workflows/react.yml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,16 @@ jobs:
3232

3333
# Contract Tests
3434
- name: Install contract test dependencies
35-
env:
36-
YARN_ENABLE_IMMUTABLE_INSTALLS: 'false'
37-
run: |
38-
yarn workspaces foreach -pR --topological-dev --from 'browser-contract-test-adapter' install
39-
yarn workspaces foreach -pR --topological-dev --from "@launchdarkly/react-sdk-contract-tests" install
40-
yarn workspaces foreach -pR --topological-dev --from 'browser-contract-test-adapter' run build
41-
yarn workspaces foreach -pR --topological-dev --from "@launchdarkly/react-sdk-contract-tests" run build
42-
yarn workspace @launchdarkly/react-sdk-contract-tests install-playwright-browsers
35+
run: yarn workspaces focus @launchdarkly/react-sdk-contract-tests
36+
37+
- name: Install Playwright browsers
38+
run: yarn workspace @launchdarkly/react-sdk-contract-tests install-playwright-browsers
39+
40+
- name: Build shared contract test utils
41+
run: yarn workspace @launchdarkly/js-contract-test-utils build
42+
43+
- name: Build contract test entity (Next.js app)
44+
run: yarn workspace @launchdarkly/react-sdk-contract-tests run build
4345
- name: Run test adapter
4446
run: |
4547
yarn workspace @launchdarkly/react-sdk-contract-tests run start:adapter > /tmp/adapter.log 2>&1 &

package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
"packages/sdk/react/examples/server-only",
2525
"packages/sdk/react-native",
2626
"packages/sdk/react-native/example",
27-
"packages/sdk/react-native/contract-tests/adapter",
2827
"packages/sdk/react-native/contract-tests/entity",
2928
"packages/sdk/vercel",
3029
"packages/sdk/svelte",
@@ -41,7 +40,6 @@
4140
"packages/tooling/jest/example/react-native-example",
4241
"packages/sdk/browser",
4342
"packages/sdk/browser/contract-tests/entity",
44-
"packages/sdk/browser/contract-tests/adapter",
4543
"packages/sdk/server-ai",
4644
"packages/sdk/server-ai/examples/bedrock",
4745
"packages/sdk/server-ai/examples/chat-judge",

packages/sdk/browser/contract-tests/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This directory contains the contract test implementation for the LaunchDarkly Br
66

77
The browser contract tests consist of three components:
88

9-
1. **Adapter** (`adapter/`): A thin wrapper that delegates to the `sdk-testharness-server adapter` CLI from `@launchdarkly/js-contract-test-utils`. The adapter:
9+
1. **Adapter**: The `npx sdk-testharness-server adapter` CLI from `@launchdarkly/js-contract-test-utils`. The adapter:
1010
- Exposes a REST API on port 8000 for the test harness
1111
- Runs a WebSocket server on port 8001 for browser communication
1212
- Translates REST commands to WebSocket messages

packages/sdk/browser/contract-tests/adapter/package.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

packages/sdk/browser/contract-tests/entity/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"start": "tsc --noEmit && vite --open=true",
1010
"build": "tsc --noEmit && vite build",
1111
"lint": "eslint ./src",
12+
"start:adapter": "sdk-testharness-server adapter",
1213
"prettier": "prettier --write '**/*.@(js|ts|tsx|json|css)' --ignore-path ../../../../.prettierignore"
1314
},
1415
"dependencies": {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
yarn workspace browser-contract-test-adapter run start & yarn workspace browser-contract-test-service run start && kill $!
1+
yarn workspace browser-contract-test-service run start:adapter & yarn workspace browser-contract-test-service run start && kill $!

packages/sdk/react-native/contract-tests/adapter/package.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

packages/sdk/react-native/contract-tests/entity/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
"expo-prebuild": "CI=1 expo prebuild --clean",
99
"android": "expo run:android",
1010
"android-release": "expo run:android --variant release",
11-
"ios": "expo run:ios"
11+
"ios": "expo run:ios",
12+
"start:adapter": "sdk-testharness-server adapter"
1213
},
1314
"dependencies": {
1415
"@launchdarkly/js-contract-test-utils": "workspace:^",

0 commit comments

Comments
 (0)