From 58a0efa9e1688aee8e472a9d8ea481d3804fe6c9 Mon Sep 17 00:00:00 2001 From: Chris Estreich Date: Thu, 22 May 2025 08:41:58 -0700 Subject: [PATCH] Move e2e into apps (#3823) --- .github/workflows/code-qa.yml | 4 +- {e2e => apps/vscode-e2e}/.env.local.sample | 0 {e2e => apps/vscode-e2e}/.vscode-test.mjs | 0 {e2e => apps/vscode-e2e}/eslint.config.mjs | 0 {e2e => apps/vscode-e2e}/package.json | 0 {e2e => apps/vscode-e2e}/src/runTest.ts | 2 +- .../vscode-e2e}/src/suite/extension.test.ts | 0 {e2e => apps/vscode-e2e}/src/suite/index.ts | 0 .../vscode-e2e}/src/suite/modes.test.ts | 0 .../vscode-e2e}/src/suite/subtasks.test.ts | 0 .../vscode-e2e}/src/suite/task.test.ts | 0 {e2e => apps/vscode-e2e}/src/suite/utils.ts | 0 {e2e => apps/vscode-e2e}/tsconfig.json | 0 knip.json | 2 +- pnpm-lock.yaml | 77 +++++++++---------- pnpm-workspace.yaml | 5 +- 16 files changed, 41 insertions(+), 49 deletions(-) rename {e2e => apps/vscode-e2e}/.env.local.sample (100%) rename {e2e => apps/vscode-e2e}/.vscode-test.mjs (100%) rename {e2e => apps/vscode-e2e}/eslint.config.mjs (100%) rename {e2e => apps/vscode-e2e}/package.json (100%) rename {e2e => apps/vscode-e2e}/src/runTest.ts (98%) rename {e2e => apps/vscode-e2e}/src/suite/extension.test.ts (100%) rename {e2e => apps/vscode-e2e}/src/suite/index.ts (100%) rename {e2e => apps/vscode-e2e}/src/suite/modes.test.ts (100%) rename {e2e => apps/vscode-e2e}/src/suite/subtasks.test.ts (100%) rename {e2e => apps/vscode-e2e}/src/suite/task.test.ts (100%) rename {e2e => apps/vscode-e2e}/src/suite/utils.ts (100%) rename {e2e => apps/vscode-e2e}/tsconfig.json (100%) diff --git a/.github/workflows/code-qa.yml b/.github/workflows/code-qa.yml index 1c333b46a2..1a001921d3 100644 --- a/.github/workflows/code-qa.yml +++ b/.github/workflows/code-qa.yml @@ -159,8 +159,8 @@ jobs: - name: Install dependencies run: pnpm install - name: Create .env.local file - working-directory: e2e + working-directory: apps/vscode-e2e run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local - name: Run integration tests - working-directory: e2e + working-directory: apps/vscode-e2e run: xvfb-run -a pnpm test:ci diff --git a/e2e/.env.local.sample b/apps/vscode-e2e/.env.local.sample similarity index 100% rename from e2e/.env.local.sample rename to apps/vscode-e2e/.env.local.sample diff --git a/e2e/.vscode-test.mjs b/apps/vscode-e2e/.vscode-test.mjs similarity index 100% rename from e2e/.vscode-test.mjs rename to apps/vscode-e2e/.vscode-test.mjs diff --git a/e2e/eslint.config.mjs b/apps/vscode-e2e/eslint.config.mjs similarity index 100% rename from e2e/eslint.config.mjs rename to apps/vscode-e2e/eslint.config.mjs diff --git a/e2e/package.json b/apps/vscode-e2e/package.json similarity index 100% rename from e2e/package.json rename to apps/vscode-e2e/package.json diff --git a/e2e/src/runTest.ts b/apps/vscode-e2e/src/runTest.ts similarity index 98% rename from e2e/src/runTest.ts rename to apps/vscode-e2e/src/runTest.ts index 7f432b38a5..86f9e94a36 100644 --- a/e2e/src/runTest.ts +++ b/apps/vscode-e2e/src/runTest.ts @@ -6,7 +6,7 @@ async function main() { try { // The folder containing the Extension Manifest package.json // Passed to `--extensionDevelopmentPath` - const extensionDevelopmentPath = path.resolve(__dirname, "../../src") + const extensionDevelopmentPath = path.resolve(__dirname, "../../../src") // The path to the extension test script // Passed to --extensionTestsPath diff --git a/e2e/src/suite/extension.test.ts b/apps/vscode-e2e/src/suite/extension.test.ts similarity index 100% rename from e2e/src/suite/extension.test.ts rename to apps/vscode-e2e/src/suite/extension.test.ts diff --git a/e2e/src/suite/index.ts b/apps/vscode-e2e/src/suite/index.ts similarity index 100% rename from e2e/src/suite/index.ts rename to apps/vscode-e2e/src/suite/index.ts diff --git a/e2e/src/suite/modes.test.ts b/apps/vscode-e2e/src/suite/modes.test.ts similarity index 100% rename from e2e/src/suite/modes.test.ts rename to apps/vscode-e2e/src/suite/modes.test.ts diff --git a/e2e/src/suite/subtasks.test.ts b/apps/vscode-e2e/src/suite/subtasks.test.ts similarity index 100% rename from e2e/src/suite/subtasks.test.ts rename to apps/vscode-e2e/src/suite/subtasks.test.ts diff --git a/e2e/src/suite/task.test.ts b/apps/vscode-e2e/src/suite/task.test.ts similarity index 100% rename from e2e/src/suite/task.test.ts rename to apps/vscode-e2e/src/suite/task.test.ts diff --git a/e2e/src/suite/utils.ts b/apps/vscode-e2e/src/suite/utils.ts similarity index 100% rename from e2e/src/suite/utils.ts rename to apps/vscode-e2e/src/suite/utils.ts diff --git a/e2e/tsconfig.json b/apps/vscode-e2e/tsconfig.json similarity index 100% rename from e2e/tsconfig.json rename to apps/vscode-e2e/tsconfig.json diff --git a/knip.json b/knip.json index 88221eafa8..ac26aa5339 100644 --- a/knip.json +++ b/knip.json @@ -10,7 +10,7 @@ "**/*.test.tsx", "**/stories/**", "bin/**", - "e2e/**", + "apps/vscode-e2e/**", "evals/**", "src/activate/**", "src/exports/**", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 146a7b261e..1f4a58440f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,20 +54,14 @@ importers: specifier: ^5.4.5 version: 5.8.3 - apps/vscode-nightly: - devDependencies: - '@roo-code/build': - specifier: workspace:^ - version: link:../../packages/build - - e2e: + apps/vscode-e2e: devDependencies: '@roo-code/config-eslint': specifier: workspace:^ - version: link:../packages/config-eslint + version: link:../../packages/config-eslint '@roo-code/config-typescript': specifier: workspace:^ - version: link:../packages/config-typescript + version: link:../../packages/config-typescript '@roo-code/types': specifier: ^1.12.0 version: 1.12.0 @@ -76,7 +70,7 @@ importers: version: 10.0.10 '@types/node': specifier: ^22.14.1 - version: 22.15.18 + version: 22.15.20 '@types/vscode': specifier: ^1.95.0 version: 1.100.0 @@ -99,6 +93,12 @@ importers: specifier: 5.8.3 version: 5.8.3 + apps/vscode-nightly: + devDependencies: + '@roo-code/build': + specifier: workspace:^ + version: link:../../packages/build + packages/build: dependencies: zod: @@ -3000,9 +3000,6 @@ packages: '@types/node@20.17.47': resolution: {integrity: sha512-3dLX0Upo1v7RvUimvxLeXqwrfyKxUINk0EAM83swP2mlSUcwV73sZy8XhNz8bcZ3VbsfQyC/y6jRdL5tgCNpDQ==} - '@types/node@22.15.18': - resolution: {integrity: sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==} - '@types/node@22.15.20': resolution: {integrity: sha512-A6BohGFRGHAscJsTslDCA9JG7qSJr/DWUvrvY8yi9IgnGtMxCyat7vvQ//MFa0DnLsyuS3wYTpLdw4Hf+Q5JXw==} @@ -9785,7 +9782,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -9798,14 +9795,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.15.18)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.15.20)(babel-plugin-macros@3.1.0) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -9830,7 +9827,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -9848,7 +9845,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.18 + '@types/node': 22.15.20 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -9870,7 +9867,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.18 + '@types/node': 22.15.20 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -9940,7 +9937,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.18 + '@types/node': 22.15.20 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -11628,11 +11625,11 @@ snapshots: '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.18 + '@types/node': 22.15.20 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.18 + '@types/node': 22.15.20 '@types/hast@3.0.4': dependencies: @@ -11662,7 +11659,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.15.18 + '@types/node': 22.15.20 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -11690,12 +11687,12 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.15.18 + '@types/node': 22.15.20 form-data: 4.0.2 '@types/node-ipc@9.2.3': dependencies: - '@types/node': 22.15.18 + '@types/node': 22.15.20 '@types/node@12.20.55': {} @@ -11707,10 +11704,6 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.15.18': - dependencies: - undici-types: 6.21.0 - '@types/node@22.15.20': dependencies: undici-types: 6.21.0 @@ -11772,7 +11765,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.15.18 + '@types/node': 22.15.20 optional: true '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': @@ -14575,7 +14568,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 chalk: 4.1.2 co: 4.6.0 dedent: 1.6.0(babel-plugin-macros@3.1.0) @@ -14693,7 +14686,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.15.18)(babel-plugin-macros@3.1.0): + jest-config@29.7.0(@types/node@22.15.20)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.27.1 '@jest/test-sequencer': 29.7.0 @@ -14718,7 +14711,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.18 + '@types/node': 22.15.20 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -14755,7 +14748,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.15.18 + '@types/node': 22.15.20 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -14769,7 +14762,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -14781,7 +14774,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.18 + '@types/node': 22.15.20 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14827,7 +14820,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -14862,7 +14855,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -14890,7 +14883,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -14938,7 +14931,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -14957,7 +14950,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.18 + '@types/node': 22.15.20 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -14966,7 +14959,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.15.18 + '@types/node': 22.15.20 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 84d450bd1a..b16bbea150 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,5 @@ packages: - - "src" - - "webview-ui" - - "e2e" + - "src" # Should be apps/vscode + - "webview-ui" # Should be apps/vscode-webview - "apps/*" - "packages/*"