Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion apps/vscode-e2e/src/suite/extension.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import * as assert from "assert"
import * as vscode from "vscode"

suite("Roo Code Extension", () => {
import { setDefaultSuiteTimeout } from "./test-utils"

suite("Roo Code Extension", function () {
setDefaultSuiteTimeout(this)

test("Commands should be registered", async () => {
const expectedCommands = [
"SidebarProvider.open",
Expand Down
10 changes: 3 additions & 7 deletions apps/vscode-e2e/src/suite/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,11 @@ export async function run() {

globalThis.api = api

// Configure Mocha with grep pattern if provided
const mochaOptions: Mocha.MochaOptions = {
ui: "tdd",
timeout: 300_000,
timeout: 20 * 60 * 1_000, // 20m
}

// Apply grep filter if TEST_GREP is set
if (process.env.TEST_GREP) {
mochaOptions.grep = process.env.TEST_GREP
console.log(`Running tests matching pattern: ${process.env.TEST_GREP}`)
Expand All @@ -42,17 +40,16 @@ export async function run() {
const mocha = new Mocha(mochaOptions)
const cwd = path.resolve(__dirname, "..")

// Get test files based on filter
let testFiles: string[]

if (process.env.TEST_FILE) {
// Run specific 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 {
// Run all test files
testFiles = await glob("**/**.test.js", { cwd })
}

Expand All @@ -62,7 +59,6 @@ export async function run() {

testFiles.forEach((testFile) => mocha.addFile(path.resolve(cwd, testFile)))

// Let's go!
return new Promise<void>((resolve, reject) =>
mocha.run((failures) => (failures === 0 ? resolve() : reject(new Error(`${failures} tests failed.`)))),
)
Expand Down
5 changes: 4 additions & 1 deletion apps/vscode-e2e/src/suite/modes.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import * as assert from "assert"

import { waitUntilCompleted } from "./utils"
import { setDefaultSuiteTimeout } from "./test-utils"

suite("Roo Code Modes", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code Modes", () => {
test("Should handle switching modes correctly", async () => {
const modes: string[] = []

Expand Down
5 changes: 4 additions & 1 deletion apps/vscode-e2e/src/suite/task.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@ import * as assert from "assert"
import type { ClineMessage } from "@roo-code/types"

import { waitUntilCompleted } from "./utils"
import { setDefaultSuiteTimeout } from "./test-utils"

suite("Roo Code Task", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code Task", () => {
test("Should handle prompt and response correctly", async () => {
const api = globalThis.api

Expand Down
5 changes: 5 additions & 0 deletions apps/vscode-e2e/src/suite/test-utils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export const DEFAULT_SUITE_TIMEOUT = 120_000

export function setDefaultSuiteTimeout(context: Mocha.Suite) {
context.timeout(DEFAULT_SUITE_TIMEOUT)
}
11 changes: 4 additions & 7 deletions apps/vscode-e2e/src/suite/tools/apply-diff.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import * as vscode from "vscode"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code apply_diff Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code apply_diff Tool", () => {
let workspaceDir: string

// Pre-created test files that will be used across tests
Expand Down Expand Up @@ -491,9 +494,6 @@ ${testFile.content}\nAssume the file exists and you can modify it directly.`,
})

test("Should handle apply_diff errors gracefully", async function () {
// Increase timeout for this specific test
this.timeout(90_000)

const api = globalThis.api
const messages: ClineMessage[] = []
const testFile = testFiles.errorHandling
Expand Down Expand Up @@ -605,9 +605,6 @@ Assume the file exists and you can modify it directly.`,
})

test("Should apply multiple search/replace blocks to edit two separate functions", async function () {
// Increase timeout for this specific test
this.timeout(60_000)

const api = globalThis.api
const messages: ClineMessage[] = []
const testFile = testFiles.multiSearchReplace
Expand Down
11 changes: 4 additions & 7 deletions apps/vscode-e2e/src/suite/tools/execute-command.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import * as vscode from "vscode"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep, waitUntilCompleted } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code execute_command Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code execute_command Tool", () => {
let workspaceDir: string

// Pre-created test files that will be used across tests
Expand Down Expand Up @@ -331,9 +334,6 @@ Avoid at all costs suggesting a command when using the attempt_completion tool`,
})

test("Should execute multiple commands sequentially", async function () {
// Increase timeout for this test
this.timeout(90_000)

const api = globalThis.api
const testFile = testFiles.multiCommand
let taskStarted = false
Expand Down Expand Up @@ -447,9 +447,6 @@ After both commands are executed, use the attempt_completion tool to complete th
})

test("Should handle long-running commands", async function () {
// Increase timeout for this test
this.timeout(60_000)

const api = globalThis.api
let taskStarted = false
let _taskCompleted = false
Expand Down
5 changes: 4 additions & 1 deletion apps/vscode-e2e/src/suite/tools/insert-content.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import * as vscode from "vscode"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code insert_content Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code insert_content Tool", () => {
let workspaceDir: string

// Pre-created test files that will be used across tests
Expand Down
5 changes: 4 additions & 1 deletion apps/vscode-e2e/src/suite/tools/list-files.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import * as vscode from "vscode"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code list_files Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code list_files Tool", () => {
let workspaceDir: string
let testFiles: {
rootFile1: string
Expand Down
11 changes: 4 additions & 7 deletions apps/vscode-e2e/src/suite/tools/read-file.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ import * as vscode from "vscode"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code read_file Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code read_file Tool", () => {
let tempDir: string
let testFiles: {
simple: string
Expand Down Expand Up @@ -118,7 +121,6 @@ suite("Roo Code read_file Tool", () => {
})

test("Should read a simple text file", async function () {
this.timeout(90_000) // Increase timeout for this test
const api = globalThis.api
const messages: ClineMessage[] = []
let taskStarted = false
Expand Down Expand Up @@ -264,7 +266,6 @@ suite("Roo Code read_file Tool", () => {
})

test("Should read a multiline file", async function () {
this.timeout(90_000) // Increase timeout
const api = globalThis.api
const messages: ClineMessage[] = []
let taskCompleted = false
Expand Down Expand Up @@ -376,7 +377,6 @@ suite("Roo Code read_file Tool", () => {
})

test("Should read file with line range", async function () {
this.timeout(90_000) // Increase timeout
const api = globalThis.api
const messages: ClineMessage[] = []
let taskCompleted = false
Expand Down Expand Up @@ -562,7 +562,6 @@ suite("Roo Code read_file Tool", () => {
})

test("Should read XML content file", async function () {
this.timeout(90_000) // Increase timeout
const api = globalThis.api
const messages: ClineMessage[] = []
let taskCompleted = false
Expand Down Expand Up @@ -634,7 +633,6 @@ suite("Roo Code read_file Tool", () => {
})

test("Should read multiple files in sequence", async function () {
this.timeout(90_000) // Increase timeout
const api = globalThis.api
const messages: ClineMessage[] = []
let taskCompleted = false
Expand Down Expand Up @@ -708,7 +706,6 @@ Assume both files exist and you can read them directly. Read each file and tell
})

test("Should read large file efficiently", async function () {
this.timeout(90_000) // Increase timeout
const api = globalThis.api
const messages: ClineMessage[] = []
let taskCompleted = false
Expand Down
8 changes: 4 additions & 4 deletions apps/vscode-e2e/src/suite/tools/search-and-replace.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import * as vscode from "vscode"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code search_and_replace Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code search_and_replace Tool", () => {
let workspaceDir: string

// Pre-created test files that will be used across tests
Expand Down Expand Up @@ -253,9 +256,6 @@ Assume the file exists and you can modify it directly.`,
})

test("Should perform regex pattern replacement", async function () {
// Increase timeout for this test
this.timeout(90_000)

const api = globalThis.api
const messages: ClineMessage[] = []
const testFile = testFiles.regexReplace
Expand Down
5 changes: 4 additions & 1 deletion apps/vscode-e2e/src/suite/tools/search-files.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import * as vscode from "vscode"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code search_files Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code search_files Tool", () => {
let workspaceDir: string
let testFiles: {
jsFile: string
Expand Down
5 changes: 4 additions & 1 deletion apps/vscode-e2e/src/suite/tools/use-mcp-tool.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ import * as vscode from "vscode"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code use_mcp_tool Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code use_mcp_tool Tool", () => {
let tempDir: string
let testFiles: {
simple: string
Expand Down
5 changes: 4 additions & 1 deletion apps/vscode-e2e/src/suite/tools/write-to-file.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import * as os from "os"
import type { ClineMessage } from "@roo-code/types"

import { waitFor, sleep } from "../utils"
import { setDefaultSuiteTimeout } from "../test-utils"

suite("Roo Code write_to_file Tool", function () {
setDefaultSuiteTimeout(this)

suite("Roo Code write_to_file Tool", () => {
let tempDir: string
let testFilePath: string

Expand Down
Loading