@@ -2,16 +2,58 @@ import * as http from "http"
22import * as vscode from "vscode"
33import { Logger } from "../../services/logging/Logger"
44import { WebviewProvider } from "../../core/webview"
5+ import { AutoApprovalSettings } from "../../shared/AutoApprovalSettings"
6+ import { updateGlobalState , getAllExtensionState } from "../../core/storage/state"
57
68let testServer : http . Server | undefined
79let messageCatcherDisposable : vscode . Disposable | undefined
810
11+ /**
12+ * Updates the auto approval settings to enable all actions
13+ * @param context The VSCode extension context
14+ * @param provider The webview provider instance
15+ */
16+ async function updateAutoApprovalSettings ( context : vscode . ExtensionContext , provider ?: WebviewProvider ) {
17+ try {
18+ const { autoApprovalSettings } = await getAllExtensionState ( context )
19+
20+ // Enable all actions
21+ const updatedSettings : AutoApprovalSettings = {
22+ ...autoApprovalSettings ,
23+ enabled : true ,
24+ actions : {
25+ readFiles : true ,
26+ editFiles : true ,
27+ executeSafeCommands : true ,
28+ executeAllCommands : true ,
29+ useBrowser : false , // Keep browser disabled for tests
30+ useMcp : false , // Keep MCP disabled for tests
31+ } ,
32+ maxRequests : 100 , // Increase max requests for tests
33+ }
34+
35+ await updateGlobalState ( context , "autoApprovalSettings" , updatedSettings )
36+ Logger . log ( "Auto approval settings updated for test mode" )
37+
38+ // Update the webview with the new state
39+ if ( provider ?. controller ) {
40+ await provider . controller . postStateToWebview ( )
41+ }
42+ } catch ( error ) {
43+ Logger . log ( `Error updating auto approval settings: ${ error } ` )
44+ }
45+ }
46+
947/**
1048 * Creates and starts an HTTP server for test automation
1149 * @param webviewProvider The webview provider instance to use for message catching
1250 * @returns The created HTTP server instance
1351 */
1452export function createTestServer ( webviewProvider ?: WebviewProvider ) : http . Server {
53+ // Update auto approval settings if webviewProvider is available
54+ if ( webviewProvider ?. controller ?. context ) {
55+ updateAutoApprovalSettings ( webviewProvider . controller . context , webviewProvider )
56+ }
1557 const PORT = 9876
1658
1759 testServer = http . createServer ( ( req , res ) => {
@@ -126,7 +168,7 @@ export function createMessageCatcher(webviewProvider: WebviewProvider): vscode.D
126168 if ( webviewProvider && webviewProvider . controller ) {
127169 const originalPostMessageToWebview = webviewProvider . controller . postMessageToWebview
128170 webviewProvider . controller . postMessageToWebview = async ( message ) => {
129- Logger . log ( "Cline message received: " + message . type )
171+ Logger . log ( "Cline message received: " + JSON . stringify ( message ) )
130172 return originalPostMessageToWebview . call ( webviewProvider . controller , message )
131173 }
132174 } else {
0 commit comments