|
|
@@ -16,109 +16,35 @@ suite("Roo Code Task", () => {
|
|
|
}
|
|
|
|
|
|
const api: ClineAPI = await extension.activate()
|
|
|
-
|
|
|
- if (!api) {
|
|
|
- assert.fail("Extension API not found")
|
|
|
- }
|
|
|
-
|
|
|
const provider = api.sidebarProvider as ClineProvider
|
|
|
-
|
|
|
- if (!provider) {
|
|
|
- assert.fail("Provider not found")
|
|
|
- }
|
|
|
-
|
|
|
await provider.updateGlobalState("apiProvider", "openrouter")
|
|
|
await provider.updateGlobalState("openRouterModelId", "anthropic/claude-3.5-sonnet")
|
|
|
- const apiKey = process.env.OPENROUTER_API_KEY
|
|
|
-
|
|
|
- if (!apiKey) {
|
|
|
- assert.fail("OPENROUTER_API_KEY environment variable is not set")
|
|
|
- }
|
|
|
-
|
|
|
- await provider.storeSecret("openRouterApiKey", apiKey)
|
|
|
+ await provider.storeSecret("openRouterApiKey", process.env.OPENROUTER_API_KEY || "sk-or-v1-fake-api-key")
|
|
|
|
|
|
// Create webview panel with development options.
|
|
|
- const extensionUri = extension.extensionUri
|
|
|
-
|
|
|
const panel = vscode.window.createWebviewPanel("roo-cline.SidebarProvider", "Roo Code", vscode.ViewColumn.One, {
|
|
|
enableScripts: true,
|
|
|
enableCommandUris: true,
|
|
|
retainContextWhenHidden: true,
|
|
|
- localResourceRoots: [extensionUri],
|
|
|
+ localResourceRoots: [extension.extensionUri],
|
|
|
})
|
|
|
|
|
|
try {
|
|
|
- // Initialize webview with development context.
|
|
|
- panel.webview.options = {
|
|
|
- enableScripts: true,
|
|
|
- enableCommandUris: true,
|
|
|
- localResourceRoots: [extensionUri],
|
|
|
- }
|
|
|
-
|
|
|
// Initialize provider with panel.
|
|
|
provider.resolveWebviewView(panel)
|
|
|
|
|
|
- // Set up message tracking.
|
|
|
- let webviewReady = false
|
|
|
- const originalPostMessage = provider.postMessageToWebview.bind(provider)
|
|
|
-
|
|
|
- provider.postMessageToWebview = async (message: any) => {
|
|
|
- if (message.type === "state") {
|
|
|
- webviewReady = true
|
|
|
- }
|
|
|
-
|
|
|
- await originalPostMessage(message)
|
|
|
- }
|
|
|
-
|
|
|
- // Wait for webview to launch and receive initial state.
|
|
|
+ // Wait for webview to launch.
|
|
|
let startTime = Date.now()
|
|
|
|
|
|
while (Date.now() - startTime < timeout) {
|
|
|
- if (webviewReady) {
|
|
|
- // Wait an additional second for webview to fully initialize.
|
|
|
- await new Promise((resolve) => setTimeout(resolve, 1000))
|
|
|
+ if (provider.viewLaunched) {
|
|
|
break
|
|
|
}
|
|
|
|
|
|
await new Promise((resolve) => setTimeout(resolve, interval))
|
|
|
}
|
|
|
|
|
|
- if (!webviewReady) {
|
|
|
- assert.fail("Webview never became ready")
|
|
|
- }
|
|
|
-
|
|
|
- // Send webviewDidLaunch to initialize chat.
|
|
|
- await provider.postMessageToWebview({ type: "webviewDidLaunch" })
|
|
|
-
|
|
|
- // Wait for webview to fully initialize.
|
|
|
- await new Promise((resolve) => setTimeout(resolve, 2000))
|
|
|
-
|
|
|
- // Restore original postMessage.
|
|
|
- provider.postMessageToWebview = originalPostMessage
|
|
|
-
|
|
|
- // Wait for OpenRouter models to be fully loaded.
|
|
|
- startTime = Date.now()
|
|
|
-
|
|
|
- while (Date.now() - startTime < timeout) {
|
|
|
- const models = await provider.readOpenRouterModels()
|
|
|
-
|
|
|
- if (models && Object.keys(models).length > 0) {
|
|
|
- break
|
|
|
- }
|
|
|
-
|
|
|
- await new Promise((resolve) => setTimeout(resolve, interval))
|
|
|
- }
|
|
|
-
|
|
|
- // Send prompt.
|
|
|
- const prompt = "Hello world, what is your name? Respond with 'My name is ...'"
|
|
|
-
|
|
|
- // Start task.
|
|
|
- try {
|
|
|
- await api.startNewTask(prompt)
|
|
|
- } catch (error) {
|
|
|
- console.error(error)
|
|
|
- assert.fail("Error starting task")
|
|
|
- }
|
|
|
+ await api.startNewTask("Hello world, what is your name? Respond with 'My name is ...'")
|
|
|
|
|
|
// Wait for task to appear in history with tokens.
|
|
|
startTime = Date.now()
|
|
|
@@ -128,7 +54,6 @@ suite("Roo Code Task", () => {
|
|
|
const task = state.taskHistory?.[0]
|
|
|
|
|
|
if (task && task.tokensOut > 0) {
|
|
|
- // console.log("Task completed with tokens:", task)
|
|
|
break
|
|
|
}
|
|
|
|