mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-08 22:21:23 +00:00
65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import * as path from "path"
|
|
import Mocha from "mocha"
|
|
import { glob } from "glob"
|
|
import * as vscode from "vscode"
|
|
|
|
import type { RooCodeAPI } from "@roo-code/types"
|
|
|
|
import { waitFor } from "./utils"
|
|
|
|
export async function run() {
|
|
const extension = vscode.extensions.getExtension<RooCodeAPI>("RooVeterinaryInc.roo-cline")
|
|
|
|
if (!extension) {
|
|
throw new Error("Extension not found")
|
|
}
|
|
|
|
const api = extension.isActive ? extension.exports : await extension.activate()
|
|
|
|
await api.setConfiguration({
|
|
apiProvider: "openrouter" as const,
|
|
openRouterApiKey: process.env.OPENROUTER_API_KEY!,
|
|
openRouterModelId: "openai/gpt-4.1",
|
|
})
|
|
|
|
await vscode.commands.executeCommand("roo-cline.SidebarProvider.focus")
|
|
await waitFor(() => api.isReady())
|
|
|
|
globalThis.api = api
|
|
|
|
const mochaOptions: Mocha.MochaOptions = {
|
|
ui: "tdd",
|
|
timeout: 20 * 60 * 1_000, // 20m
|
|
}
|
|
|
|
if (process.env.TEST_GREP) {
|
|
mochaOptions.grep = process.env.TEST_GREP
|
|
console.log(`Running tests matching pattern: ${process.env.TEST_GREP}`)
|
|
}
|
|
|
|
const mocha = new Mocha(mochaOptions)
|
|
const cwd = path.resolve(__dirname, "..")
|
|
|
|
let testFiles: string[]
|
|
|
|
if (process.env.TEST_FILE) {
|
|
const specificFile = process.env.TEST_FILE.endsWith(".js")
|
|
? process.env.TEST_FILE
|
|
: `${process.env.TEST_FILE}.js`
|
|
|
|
testFiles = await glob(`**/${specificFile}`, { cwd })
|
|
console.log(`Running specific test file: ${specificFile}`)
|
|
} else {
|
|
testFiles = await glob("**/**.test.js", { cwd })
|
|
}
|
|
|
|
if (testFiles.length === 0) {
|
|
throw new Error(`No test files found matching criteria: ${process.env.TEST_FILE || "all tests"}`)
|
|
}
|
|
|
|
testFiles.forEach((testFile) => mocha.addFile(path.resolve(cwd, testFile)))
|
|
|
|
return new Promise<void>((resolve, reject) =>
|
|
mocha.run((failures) => (failures === 0 ? resolve() : reject(new Error(`${failures} tests failed.`)))),
|
|
)
|
|
}
|