Skip to content

Commit c3ad4d3

Browse files
committed
feat: Add evally test runner and implementation for vscode-evals
1 parent 1e71015 commit c3ad4d3

20 files changed

Lines changed: 2051 additions & 17 deletions

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,6 @@ logs
5151
qdrant_storage/
5252

5353
# Architect plans
54-
plans/
54+
plans/
55+
56+
.results
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
OPENROUTER_API_KEY=sk-or-v1-...

apps/vscode-evals/.vscode-test.mjs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* See: https://code.visualstudio.com/api/working-with-extensions/testing-extension
3+
*/
4+
5+
import { defineConfig } from "@vscode/test-cli"
6+
7+
export default defineConfig({
8+
label: "integrationTest",
9+
files: "out/suite/**/*.test.js",
10+
workspaceFolder: ".",
11+
mocha: {
12+
ui: "tdd",
13+
timeout: 60000,
14+
},
15+
launchArgs: ["--enable-proposed-api=RooVeterinaryInc.roo-cline", "--disable-extensions"],
16+
})
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { config } from "@roo-code/config-eslint/base"
2+
3+
/** @type {import("eslint").Linter.Config} */
4+
export default [...config]

apps/vscode-evals/package.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "@roo-code/vscode-evals",
3+
"private": true,
4+
"scripts": {
5+
"lint": "eslint src --ext=ts --max-warnings=0",
6+
"check-types": "tsc -p tsconfig.esm.json --noEmit",
7+
"format": "prettier --write src",
8+
"test:ci": "pnpm -w bundle && pnpm --filter @roo-code/vscode-webview build && pnpm test:run",
9+
"test:run": "rimraf out && tsc -p tsconfig.json && npx dotenvx run -f .env.local -- node ./out/runTest.js",
10+
"clean": "rimraf out .turbo"
11+
},
12+
"devDependencies": {
13+
"@roo-code/evally": "workspace:^",
14+
"@roo-code/config-eslint": "workspace:^",
15+
"@roo-code/config-typescript": "workspace:^",
16+
"@roo-code/types": "workspace:^",
17+
"@types/vscode": "^1.95.0",
18+
"@vscode/test-cli": "^0.0.11",
19+
"@vscode/test-electron": "^2.4.0",
20+
"rimraf": "^6.0.1",
21+
"typescript": "5.8.3"
22+
},
23+
"dependencies": {
24+
"vscode": "^1.1.37"
25+
}
26+
}

apps/vscode-evals/src/runTest.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import * as path from "path"
2+
import * as os from "os"
3+
import * as fs from "fs/promises"
4+
5+
import { runTests } from "@vscode/test-electron"
6+
7+
async function main() {
8+
try {
9+
const extensionDevelopmentPath = path.resolve(__dirname, "../../../src")
10+
const extensionTestsPath = path.resolve(__dirname, "./suite/index")
11+
const testWorkspace = await fs.mkdtemp(path.join(os.tmpdir(), "roo-evals-workspace-"))
12+
const testGrep = process.argv.find((arg, i) => process.argv[i - 1] === "--grep") || process.env.TEST_GREP
13+
const testFile = process.argv.find((arg, i) => process.argv[i - 1] === "--file") || process.env.TEST_FILE
14+
const extensionTestsEnv = {
15+
...process.env,
16+
...(testGrep && { TEST_GREP: testGrep }),
17+
...(testFile && { TEST_FILE: testFile }),
18+
}
19+
await runTests({
20+
extensionDevelopmentPath,
21+
extensionTestsPath,
22+
launchArgs: [testWorkspace],
23+
extensionTestsEnv,
24+
version: process.env.VSCODE_VERSION || "1.101.2",
25+
})
26+
await fs.rm(testWorkspace, { recursive: true, force: true })
27+
} catch (error) {
28+
console.error("Failed to run vscode evals", error)
29+
process.exit(1)
30+
}
31+
}
32+
33+
main()

0 commit comments

Comments
 (0)