From 88947592f002090d3bcba8a9be44e312e6320d8f Mon Sep 17 00:00:00 2001 From: Sarah Fortune Date: Mon, 4 Aug 2025 00:55:21 +0100 Subject: [PATCH] Fix errors in tests (#5294) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix errors in tests: ``` [TerminalProcess] Terminal ID: Cline Error capturing terminal output: Error: Failed to read from clipboard: HostProvider not setup. Call HostProvider.initialize() first. at readTextFromClipboard (/Users/sjf/cline/out/src/utils/env.js:39:15) at getLatestTerminalOutput (/Users/sjf/cline/out/src/integrations/terminal/get-latest-output.js:35:69) at TerminalProcess.emitCurrentTerminalContents (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:26:92) at TerminalProcess.runWithoutShellIntegration (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:366:20) at async TerminalProcess.run (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:47:13) ✔ should execute a command that lists files [TerminalProcess] Starting command: "sleep 0.5 && echo 'Done sleeping'" [TerminalProcess] Shell integration available: false [TerminalProcess] Terminal ID: Cline Error capturing terminal output: Error: Failed to read from clipboard: HostProvider not setup. Call HostProvider.initialize() first. at readTextFromClipboard (/Users/sjf/cline/out/src/utils/env.js:39:15) at getLatestTerminalOutput (/Users/sjf/cline/out/src/integrations/terminal/get-latest-output.js:35:69) at TerminalProcess.emitCurrentTerminalContents (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:26:92) at TerminalProcess.runWithoutShellIntegration (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:366:20) at async TerminalProcess.run (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:47:13) at async Context. (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.test.js:119:13) FakeTimers: clearTimeout was invoked to clear a native timer instead of one created by this library. To automatically clean-up native timers, use `shouldClearNativeTimers`. ✔ should handle a longer running command (3007ms) [TerminalProcess] Starting command: "echo 'Line 1' 'Line 2'" [TerminalProcess] Shell integration available: false [TerminalProcess] Terminal ID: Cline Error capturing terminal output: Error: Failed to read from clipboard: HostProvider not setup. Call HostProvider.initialize() first. at readTextFromClipboard (/Users/sjf/cline/out/src/utils/env.js:39:15) at getLatestTerminalOutput (/Users/sjf/cline/out/src/integrations/terminal/get-latest-output.js:35:69) at TerminalProcess.emitCurrentTerminalContents (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:26:92) at TerminalProcess.runWithoutShellIntegration (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:366:20) at async TerminalProcess.run (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:47:13) ✔ should execute a command with arguments [TerminalProcess] Starting command: "echo "Line 1" && echo 'Line 2'" [TerminalProcess] Shell integration available: false [TerminalProcess] Terminal ID: Cline Error capturing terminal output: Error: Failed to read from clipboard: HostProvider not setup. Call HostProvider.initialize() first. at readTextFromClipboard (/Users/sjf/cline/out/src/utils/env.js:39:15) at getLatestTerminalOutput (/Users/sjf/cline/out/src/integrations/terminal/get-latest-output.js:35:69) at TerminalProcess.emitCurrentTerminalContents (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:26:92) at TerminalProcess.runWithoutShellIntegration (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:366:20) at async TerminalProcess.run (/Users/sjf/cline/out/src/integrations/terminal/TerminalProcess.js:47:13) ✔ should execute a command with quotes ``` * Create brown-papayas-protect.md --------- Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com> --- .changeset/brown-papayas-protect.md | 5 +++++ src/integrations/terminal/TerminalProcess.test.ts | 9 +++++++++ src/integrations/terminal/TerminalProcess.ts | 4 ---- 3 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 .changeset/brown-papayas-protect.md diff --git a/.changeset/brown-papayas-protect.md b/.changeset/brown-papayas-protect.md new file mode 100644 index 0000000000..56d88e16c9 --- /dev/null +++ b/.changeset/brown-papayas-protect.md @@ -0,0 +1,5 @@ +--- +"claude-dev": patch +--- + +Fix errors in publish pipeline tests diff --git a/src/integrations/terminal/TerminalProcess.test.ts b/src/integrations/terminal/TerminalProcess.test.ts index 3463615554..1f084f835f 100644 --- a/src/integrations/terminal/TerminalProcess.test.ts +++ b/src/integrations/terminal/TerminalProcess.test.ts @@ -4,6 +4,8 @@ import * as sinon from "sinon" import { TerminalProcess } from "./TerminalProcess" import * as vscode from "vscode" import { TerminalRegistry } from "./TerminalRegistry" +import { DiffViewProviderCreator, HostProvider, WebviewProviderCreator } from "@/hosts/host-provider" +import { vscodeHostBridgeClient } from "@/hosts/vscode/hostbridge/client/host-grpc-client" declare module "vscode" { // https://github.com/microsoft/vscode/blob/f0417069c62e20f3667506f4b7e53ca0004b4e3e/src/vscode-dts/vscode.d.ts#L7442 @@ -36,6 +38,13 @@ describe("TerminalProcess (Integration Tests)", () => { beforeEach(() => { sandbox = sinon.createSandbox({ useFakeTimers: true }) + HostProvider.reset() + HostProvider.initialize( + ((_) => {}) as WebviewProviderCreator, + (() => {}) as DiffViewProviderCreator, + vscodeHostBridgeClient, + (s: string) => console.log(s), + ) process = new TerminalProcess() }) diff --git a/src/integrations/terminal/TerminalProcess.ts b/src/integrations/terminal/TerminalProcess.ts index ddf36bfc0b..19dfa46fd0 100644 --- a/src/integrations/terminal/TerminalProcess.ts +++ b/src/integrations/terminal/TerminalProcess.ts @@ -1,7 +1,6 @@ import { EventEmitter } from "events" import { stripAnsi } from "./ansiUtils" import * as vscode from "vscode" -import { Logger } from "@services/logging/Logger" import { getLatestTerminalOutput } from "./get-latest-output" export interface TerminalProcessEvents { @@ -28,9 +27,6 @@ export class TerminalProcess extends EventEmitter { private gracePeriodTimer: NodeJS.Timeout | null = null private hasEmittedCompleted: boolean = false - // constructor() { - // super() - private async emitCurrentTerminalContents(): Promise { try { const terminalSnapshot = await getLatestTerminalOutput()