Roo-Code/apps/vscode-e2e/src/suite/task.test.ts
Chris Estreich b2d2a2c5d2
Task and TaskProvider event emitter cleanup + a few new events (#6606)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-02 11:12:44 -07:00

36 lines
1 KiB
TypeScript

import * as assert from "assert"
import { RooCodeEventName, type ClineMessage } from "@roo-code/types"
import { waitUntilCompleted } from "./utils"
import { setDefaultSuiteTimeout } from "./test-utils"
suite("Roo Code Task", function () {
setDefaultSuiteTimeout(this)
test("Should handle prompt and response correctly", async () => {
const api = globalThis.api
const messages: ClineMessage[] = []
api.on(RooCodeEventName.Message, ({ message }) => {
if (message.type === "say" && message.partial === false) {
messages.push(message)
}
})
const taskId = await api.startNewTask({
configuration: { mode: "ask", alwaysAllowModeSwitch: true, autoApprovalEnabled: true },
text: "Hello world, what is your name? Respond with 'My name is ...'",
})
await waitUntilCompleted({ api, taskId })
assert.ok(
!!messages.find(
({ say, text }) => (say === "completion_result" || say === "text") && text?.includes("My name is Roo"),
),
`Completion should include "My name is Roo"`,
)
})
})