@timetotest/cli 0.1.10 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +201 -190
- package/dist/bin/ttt.js +4 -2
- package/dist/bin/ttt.js.map +1 -1
- package/dist/package.json +20 -3
- package/dist/src/commands/ask/AskApp.js +121 -0
- package/dist/src/commands/ask/AskApp.js.map +1 -0
- package/dist/src/commands/ask/components/AssistantResponse.js +31 -0
- package/dist/src/commands/ask/components/AssistantResponse.js.map +1 -0
- package/dist/src/commands/ask/components/Banner.js +15 -0
- package/dist/src/commands/ask/components/Banner.js.map +1 -0
- package/dist/src/commands/ask/components/ChatInput.js +93 -0
- package/dist/src/commands/ask/components/ChatInput.js.map +1 -0
- package/dist/src/commands/ask/components/Divider.js +17 -0
- package/dist/src/commands/ask/components/Divider.js.map +1 -0
- package/dist/src/commands/ask/components/IntroTips.js +19 -0
- package/dist/src/commands/ask/components/IntroTips.js.map +1 -0
- package/dist/src/commands/ask/components/MessageBubble.js +47 -0
- package/dist/src/commands/ask/components/MessageBubble.js.map +1 -0
- package/dist/src/commands/ask/components/SessionInfo.js +20 -0
- package/dist/src/commands/ask/components/SessionInfo.js.map +1 -0
- package/dist/src/commands/ask/components/StatusIndicator.js +67 -0
- package/dist/src/commands/ask/components/StatusIndicator.js.map +1 -0
- package/dist/src/commands/ask-ink.js +380 -0
- package/dist/src/commands/ask-ink.js.map +1 -0
- package/dist/src/commands/ask.js +138 -50
- package/dist/src/commands/ask.js.map +1 -1
- package/dist/src/commands/chat/ChatApp.js +125 -0
- package/dist/src/commands/chat/ChatApp.js.map +1 -0
- package/dist/src/commands/chat-ink.js +436 -0
- package/dist/src/commands/chat-ink.js.map +1 -0
- package/dist/src/commands/chat.js +82 -0
- package/dist/src/commands/chat.js.map +1 -0
- package/dist/src/commands/login.js +6 -4
- package/dist/src/commands/login.js.map +1 -1
- package/dist/src/commands/start-test.js +62 -88
- package/dist/src/commands/start-test.js.map +1 -1
- package/dist/src/commands/stream.js +9 -9
- package/dist/src/commands/stream.js.map +1 -1
- package/dist/src/commands/test.js +58 -125
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/lib/agent-orchestrator.js +546 -0
- package/dist/src/lib/agent-orchestrator.js.map +1 -0
- package/dist/src/lib/cloudinary-service.js +65 -0
- package/dist/src/lib/cloudinary-service.js.map +1 -0
- package/dist/src/lib/config.js +3 -2
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/events.js +73 -60
- package/dist/src/lib/events.js.map +1 -1
- package/dist/src/lib/http.js +34 -1
- package/dist/src/lib/http.js.map +1 -1
- package/dist/src/lib/legacy-chat-runner.js +37 -0
- package/dist/src/lib/legacy-chat-runner.js.map +1 -0
- package/dist/src/lib/local-tools/api/api-discovery.js +17 -0
- package/dist/src/lib/local-tools/api/api-discovery.js.map +1 -0
- package/dist/src/lib/local-tools/api/build-request.js +20 -0
- package/dist/src/lib/local-tools/api/build-request.js.map +1 -0
- package/dist/src/lib/local-tools/api/extract-response-fields.js +26 -0
- package/dist/src/lib/local-tools/api/extract-response-fields.js.map +1 -0
- package/dist/src/lib/local-tools/api/generate-api-test.js +20 -0
- package/dist/src/lib/local-tools/api/generate-api-test.js.map +1 -0
- package/dist/src/lib/local-tools/api/generate-curl.js +8 -0
- package/dist/src/lib/local-tools/api/generate-curl.js.map +1 -0
- package/dist/src/lib/local-tools/api/get-api-parameters.js +17 -0
- package/dist/src/lib/local-tools/api/get-api-parameters.js.map +1 -0
- package/dist/src/lib/local-tools/api/index.js +10 -0
- package/dist/src/lib/local-tools/api/index.js.map +1 -0
- package/dist/src/lib/local-tools/api/request.js +43 -0
- package/dist/src/lib/local-tools/api/request.js.map +1 -0
- package/dist/src/lib/local-tools/api/set-auth-header.js +8 -0
- package/dist/src/lib/local-tools/api/set-auth-header.js.map +1 -0
- package/dist/src/lib/local-tools/api/types.js +2 -0
- package/dist/src/lib/local-tools/api/types.js.map +1 -0
- package/dist/src/lib/local-tools/api/utils.js +33 -0
- package/dist/src/lib/local-tools/api/utils.js.map +1 -0
- package/dist/src/lib/local-tools/api/validate-response.js +41 -0
- package/dist/src/lib/local-tools/api/validate-response.js.map +1 -0
- package/dist/src/lib/local-tools/file-tools.js +45 -0
- package/dist/src/lib/local-tools/file-tools.js.map +1 -0
- package/dist/src/lib/local-tools/general/discover-local-services.js +95 -0
- package/dist/src/lib/local-tools/general/discover-local-services.js.map +1 -0
- package/dist/src/lib/local-tools/general/index.js +2 -0
- package/dist/src/lib/local-tools/general/index.js.map +1 -0
- package/dist/src/lib/local-tools/ui/click-element.js +105 -0
- package/dist/src/lib/local-tools/ui/click-element.js.map +1 -0
- package/dist/src/lib/local-tools/ui/dom-rag.js +201 -0
- package/dist/src/lib/local-tools/ui/dom-rag.js.map +1 -0
- package/dist/src/lib/local-tools/ui/find-element.js +31 -0
- package/dist/src/lib/local-tools/ui/find-element.js.map +1 -0
- package/dist/src/lib/local-tools/ui/hover-element.js +94 -0
- package/dist/src/lib/local-tools/ui/hover-element.js.map +1 -0
- package/dist/src/lib/local-tools/ui/index.js +3 -0
- package/dist/src/lib/local-tools/ui/index.js.map +1 -0
- package/dist/src/lib/local-tools/ui/manage-tab.js +65 -0
- package/dist/src/lib/local-tools/ui/manage-tab.js.map +1 -0
- package/dist/src/lib/local-tools/ui/navigate.js +35 -0
- package/dist/src/lib/local-tools/ui/navigate.js.map +1 -0
- package/dist/src/lib/local-tools/ui/page-discovery.js +32 -0
- package/dist/src/lib/local-tools/ui/page-discovery.js.map +1 -0
- package/dist/src/lib/local-tools/ui/playwright-mcp.js +217 -0
- package/dist/src/lib/local-tools/ui/playwright-mcp.js.map +1 -0
- package/dist/src/lib/local-tools/ui/screenshot.js +19 -0
- package/dist/src/lib/local-tools/ui/screenshot.js.map +1 -0
- package/dist/src/lib/local-tools/ui/search-interactive-elements.js +18 -0
- package/dist/src/lib/local-tools/ui/search-interactive-elements.js.map +1 -0
- package/dist/src/lib/local-tools/ui/selector-resolver.js +153 -0
- package/dist/src/lib/local-tools/ui/selector-resolver.js.map +1 -0
- package/dist/src/lib/local-tools/ui/snapshot-query.js +129 -0
- package/dist/src/lib/local-tools/ui/snapshot-query.js.map +1 -0
- package/dist/src/lib/local-tools/ui/type-text.js +40 -0
- package/dist/src/lib/local-tools/ui/type-text.js.map +1 -0
- package/dist/src/lib/local-tools/ui/types.js +2 -0
- package/dist/src/lib/local-tools/ui/types.js.map +1 -0
- package/dist/src/lib/local-tools/utility/finish-overall-test.js +12 -0
- package/dist/src/lib/local-tools/utility/finish-overall-test.js.map +1 -0
- package/dist/src/lib/local-tools/utility/index.js +2 -0
- package/dist/src/lib/local-tools/utility/index.js.map +1 -0
- package/dist/src/lib/prompts/builder.js +38 -0
- package/dist/src/lib/prompts/builder.js.map +1 -0
- package/dist/src/lib/prompts/index.js +7 -0
- package/dist/src/lib/prompts/index.js.map +1 -0
- package/dist/src/lib/prompts/templates.js +166 -0
- package/dist/src/lib/prompts/templates.js.map +1 -0
- package/dist/src/lib/session-manager.js +201 -0
- package/dist/src/lib/session-manager.js.map +1 -0
- package/dist/src/lib/socket.js +78 -6
- package/dist/src/lib/socket.js.map +1 -1
- package/dist/src/lib/testing-mode.js +33 -0
- package/dist/src/lib/testing-mode.js.map +1 -0
- package/dist/src/lib/tool-descriptions.js +59 -0
- package/dist/src/lib/tool-descriptions.js.map +1 -0
- package/dist/src/lib/tool-executor.js +537 -0
- package/dist/src/lib/tool-executor.js.map +1 -0
- package/dist/src/lib/tool-registry.js +803 -0
- package/dist/src/lib/tool-registry.js.map +1 -0
- package/dist/src/lib/tool-result-pruner.js +384 -0
- package/dist/src/lib/tool-result-pruner.js.map +1 -0
- package/dist/src/lib/tui/components/AskIntro.js +6 -0
- package/dist/src/lib/tui/components/AskIntro.js.map +1 -0
- package/dist/src/lib/tui/components/Banner.js +15 -0
- package/dist/src/lib/tui/components/Banner.js.map +1 -0
- package/dist/src/lib/tui/components/Divider.js +17 -0
- package/dist/src/lib/tui/components/Divider.js.map +1 -0
- package/dist/src/lib/tui/components/EventLine.js +110 -0
- package/dist/src/lib/tui/components/EventLine.js.map +1 -0
- package/dist/src/lib/tui/components/Header.js +15 -0
- package/dist/src/lib/tui/components/Header.js.map +1 -0
- package/dist/src/lib/tui/components/InputBox.js +9 -0
- package/dist/src/lib/tui/components/InputBox.js.map +1 -0
- package/dist/src/lib/tui/components/Mapping.js +8 -0
- package/dist/src/lib/tui/components/Mapping.js.map +1 -0
- package/dist/src/lib/tui/components/ProjectList.js +6 -0
- package/dist/src/lib/tui/components/ProjectList.js.map +1 -0
- package/dist/src/lib/tui/components/Spinner.js +20 -0
- package/dist/src/lib/tui/components/Spinner.js.map +1 -0
- package/dist/src/lib/tui/components/StatusBanner.js +12 -0
- package/dist/src/lib/tui/components/StatusBanner.js.map +1 -0
- package/dist/src/lib/tui/components/StatusBar.js +11 -0
- package/dist/src/lib/tui/components/StatusBar.js.map +1 -0
- package/dist/src/lib/tui/components/UserBubble.js +6 -0
- package/dist/src/lib/tui/components/UserBubble.js.map +1 -0
- package/dist/src/lib/tui/components/index.js +16 -0
- package/dist/src/lib/tui/components/index.js.map +1 -0
- package/dist/src/lib/tui/events.js +716 -76
- package/dist/src/lib/tui/events.js.map +1 -1
- package/dist/src/lib/tui/icons.js +14 -0
- package/dist/src/lib/tui/icons.js.map +1 -1
- package/dist/src/lib/tui/ink-print.js +41 -0
- package/dist/src/lib/tui/ink-print.js.map +1 -0
- package/dist/src/lib/tui/interactive-chat.js +345 -0
- package/dist/src/lib/tui/interactive-chat.js.map +1 -0
- package/dist/src/lib/tui/print.js +31 -26
- package/dist/src/lib/tui/print.js.map +1 -1
- package/dist/src/lib/tui/prompt.js +21 -18
- package/dist/src/lib/tui/prompt.js.map +1 -1
- package/dist/src/test-agent-flow.js +148 -0
- package/dist/src/test-agent-flow.js.map +1 -0
- package/dist/src/test-browser-session.js +152 -0
- package/dist/src/test-browser-session.js.map +1 -0
- package/dist/src/test-browser-snapshot.js +187 -0
- package/dist/src/test-browser-snapshot.js.map +1 -0
- package/dist/src/test-snapshot-detailed.js +219 -0
- package/dist/src/test-snapshot-detailed.js.map +1 -0
- package/dist/src/test-snapshot-simple.js +85 -0
- package/dist/src/test-snapshot-simple.js.map +1 -0
- package/dist/src/test-snapshot-tabs.js +110 -0
- package/dist/src/test-snapshot-tabs.js.map +1 -0
- package/package.json +20 -3
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test script specifically for browser snapshot functionality
|
|
3
|
+
* Tests the browser_snapshot tool to identify any issues
|
|
4
|
+
*/
|
|
5
|
+
import { ToolExecutor } from "./lib/tool-executor.js";
|
|
6
|
+
import chalk from "chalk";
|
|
7
|
+
async function testBrowserSnapshot() {
|
|
8
|
+
console.log(chalk.blue("🔍 Testing Browser Snapshot Functionality\n"));
|
|
9
|
+
const executor = new ToolExecutor({
|
|
10
|
+
testingMode: "ui",
|
|
11
|
+
});
|
|
12
|
+
const testResults = [];
|
|
13
|
+
try {
|
|
14
|
+
// Step 1: Start browser session
|
|
15
|
+
console.log(chalk.yellow("Step 1: Starting browser session..."));
|
|
16
|
+
const startResult = await executor.execute({
|
|
17
|
+
name: "browser_session",
|
|
18
|
+
arguments: {
|
|
19
|
+
action: "start",
|
|
20
|
+
viewport: { width: 1280, height: 800 },
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
testResults.push({ step: "Start Browser", ...startResult });
|
|
24
|
+
console.log("Result:", JSON.stringify(startResult, null, 2));
|
|
25
|
+
if (!startResult.success) {
|
|
26
|
+
console.log(chalk.red("❌ Failed to start browser session:"), startResult.error);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
console.log(chalk.green("✅ Browser session started successfully"));
|
|
30
|
+
// Wait for browser to initialize
|
|
31
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
32
|
+
// Step 2: Navigate to a simple page
|
|
33
|
+
console.log(chalk.yellow("\nStep 2: Navigating to Google..."));
|
|
34
|
+
const navigateResult = await executor.execute({
|
|
35
|
+
name: "browser_navigate",
|
|
36
|
+
arguments: {
|
|
37
|
+
url: "https://www.google.com",
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
testResults.push({ step: "Navigate to Google", ...navigateResult });
|
|
41
|
+
console.log("Result:", JSON.stringify(navigateResult, null, 2));
|
|
42
|
+
if (navigateResult.success) {
|
|
43
|
+
console.log(chalk.green("✅ Successfully navigated to Google"));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
console.log(chalk.red("❌ Failed to navigate to Google:"), navigateResult.error);
|
|
47
|
+
}
|
|
48
|
+
// Wait for page to load
|
|
49
|
+
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
50
|
+
// Step 3: Test browser snapshot
|
|
51
|
+
console.log(chalk.yellow("\nStep 3: Testing browser snapshot..."));
|
|
52
|
+
const snapshotResult = await executor.execute({
|
|
53
|
+
name: "browser_snapshot",
|
|
54
|
+
arguments: {},
|
|
55
|
+
});
|
|
56
|
+
testResults.push({ step: "Browser Snapshot", ...snapshotResult });
|
|
57
|
+
console.log("Result:", JSON.stringify(snapshotResult, null, 2));
|
|
58
|
+
if (snapshotResult.success) {
|
|
59
|
+
console.log(chalk.green("✅ Browser snapshot retrieved successfully"));
|
|
60
|
+
// Analyze the snapshot content
|
|
61
|
+
if (snapshotResult.sections) {
|
|
62
|
+
console.log(chalk.blue("\n📋 Snapshot Sections:"));
|
|
63
|
+
for (const [key, value] of snapshotResult.sections) {
|
|
64
|
+
console.log(chalk.cyan(` ${key}:`));
|
|
65
|
+
console.log(chalk.gray(` ${value.substring(0, 200)}${value.length > 200 ? '...' : ''}`));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (snapshotResult.content) {
|
|
69
|
+
console.log(chalk.blue("\n📄 Raw Content:"));
|
|
70
|
+
snapshotResult.content.forEach((item, index) => {
|
|
71
|
+
console.log(chalk.cyan(` Content ${index + 1}:`));
|
|
72
|
+
console.log(chalk.gray(` Type: ${item.type}`));
|
|
73
|
+
if (item.text) {
|
|
74
|
+
console.log(chalk.gray(` Text: ${item.text.substring(0, 200)}${item.text.length > 200 ? '...' : ''}`));
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// Check for specific snapshot data
|
|
79
|
+
const pageState = snapshotResult.sections?.get("Page state");
|
|
80
|
+
if (pageState) {
|
|
81
|
+
console.log(chalk.green("✅ Page state found in snapshot"));
|
|
82
|
+
console.log(chalk.blue("📊 Page state preview:"));
|
|
83
|
+
console.log(chalk.gray(pageState.substring(0, 500) + (pageState.length > 500 ? '...' : '')));
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
console.log(chalk.red("❌ No Page state found in snapshot"));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
console.log(chalk.red("❌ Failed to get browser snapshot:"), snapshotResult.error);
|
|
91
|
+
}
|
|
92
|
+
// Step 4: Test snapshot with different arguments
|
|
93
|
+
console.log(chalk.yellow("\nStep 4: Testing snapshot with accessibility tree..."));
|
|
94
|
+
const snapshotWithAccessibilityResult = await executor.execute({
|
|
95
|
+
name: "browser_snapshot",
|
|
96
|
+
arguments: {
|
|
97
|
+
accessibilityTree: true,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
testResults.push({ step: "Snapshot with Accessibility", ...snapshotWithAccessibilityResult });
|
|
101
|
+
console.log("Result:", JSON.stringify(snapshotWithAccessibilityResult, null, 2));
|
|
102
|
+
if (snapshotWithAccessibilityResult.success) {
|
|
103
|
+
console.log(chalk.green("✅ Accessibility snapshot retrieved successfully"));
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
console.log(chalk.red("❌ Failed to get accessibility snapshot:"), snapshotWithAccessibilityResult.error);
|
|
107
|
+
}
|
|
108
|
+
// Step 5: Test snapshot with specific element
|
|
109
|
+
console.log(chalk.yellow("\nStep 5: Testing snapshot with element selector..."));
|
|
110
|
+
const snapshotWithElementResult = await executor.execute({
|
|
111
|
+
name: "browser_snapshot",
|
|
112
|
+
arguments: {
|
|
113
|
+
element: "body",
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
testResults.push({ step: "Snapshot with Element", ...snapshotWithElementResult });
|
|
117
|
+
console.log("Result:", JSON.stringify(snapshotWithElementResult, null, 2));
|
|
118
|
+
if (snapshotWithElementResult.success) {
|
|
119
|
+
console.log(chalk.green("✅ Element snapshot retrieved successfully"));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
console.log(chalk.red("❌ Failed to get element snapshot:"), snapshotWithElementResult.error);
|
|
123
|
+
}
|
|
124
|
+
// Step 6: Stop browser session
|
|
125
|
+
console.log(chalk.yellow("\nStep 6: Stopping browser session..."));
|
|
126
|
+
const stopResult = await executor.execute({
|
|
127
|
+
name: "browser_session",
|
|
128
|
+
arguments: {
|
|
129
|
+
action: "stop",
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
testResults.push({ step: "Stop Browser", ...stopResult });
|
|
133
|
+
console.log("Result:", JSON.stringify(stopResult, null, 2));
|
|
134
|
+
if (stopResult.success) {
|
|
135
|
+
console.log(chalk.green("✅ Browser session stopped successfully"));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
console.log(chalk.red("❌ Failed to stop browser session:"), stopResult.error);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
console.error(chalk.red("❌ Test failed with error:"), error);
|
|
143
|
+
testResults.push({ step: "Error", success: false, error: String(error) });
|
|
144
|
+
}
|
|
145
|
+
// Summary
|
|
146
|
+
console.log(chalk.blue("\n📊 Test Summary:"));
|
|
147
|
+
console.log("==================");
|
|
148
|
+
testResults.forEach((result, index) => {
|
|
149
|
+
const status = result.success ? "✅ PASS" : "❌ FAIL";
|
|
150
|
+
const color = result.success ? chalk.green : chalk.red;
|
|
151
|
+
console.log(color(`${status} - Step ${index + 1}: ${result.step}`));
|
|
152
|
+
if (!result.success && result.error) {
|
|
153
|
+
console.log(chalk.gray(` Error: ${result.error}`));
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
const successCount = testResults.filter(r => r.success).length;
|
|
157
|
+
const totalCount = testResults.length;
|
|
158
|
+
console.log(chalk.blue(`\n🎯 Overall: ${successCount}/${totalCount} steps completed successfully`));
|
|
159
|
+
if (successCount === totalCount) {
|
|
160
|
+
console.log(chalk.green("🎉 All snapshot tests passed!"));
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
console.log(chalk.yellow("⚠️ Some snapshot tests failed. Check the errors above."));
|
|
164
|
+
}
|
|
165
|
+
// Detailed analysis
|
|
166
|
+
console.log(chalk.blue("\n🔍 Snapshot Analysis:"));
|
|
167
|
+
console.log("===================");
|
|
168
|
+
const snapshotTests = testResults.filter(r => r.step?.includes("Snapshot"));
|
|
169
|
+
snapshotTests.forEach(test => {
|
|
170
|
+
console.log(chalk.cyan(`\n${test.step}:`));
|
|
171
|
+
if (test.success) {
|
|
172
|
+
console.log(chalk.green(" ✅ Success"));
|
|
173
|
+
if (test.sections) {
|
|
174
|
+
console.log(chalk.blue(` 📋 Sections: ${Array.from(test.sections.keys()).join(', ')}`));
|
|
175
|
+
}
|
|
176
|
+
if (test.content) {
|
|
177
|
+
console.log(chalk.blue(` 📄 Content items: ${test.content.length}`));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
console.log(chalk.red(` ❌ Failed: ${test.error}`));
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// Run the test
|
|
186
|
+
testBrowserSnapshot().catch(console.error);
|
|
187
|
+
//# sourceMappingURL=test-browser-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-browser-snapshot.js","sourceRoot":"","sources":["../../src/test-browser-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detailed test for browser snapshot functionality
|
|
3
|
+
* Tests various aspects of the snapshot tool to identify issues
|
|
4
|
+
*/
|
|
5
|
+
import { ToolExecutor } from "./lib/tool-executor.js";
|
|
6
|
+
import chalk from "chalk";
|
|
7
|
+
async function testSnapshotDetailed() {
|
|
8
|
+
console.log(chalk.blue("🔍 Detailed Browser Snapshot Test\n"));
|
|
9
|
+
const executor = new ToolExecutor({
|
|
10
|
+
testingMode: "ui",
|
|
11
|
+
});
|
|
12
|
+
try {
|
|
13
|
+
// Step 1: Start browser session
|
|
14
|
+
console.log(chalk.yellow("Step 1: Starting browser session..."));
|
|
15
|
+
const startResult = await executor.execute({
|
|
16
|
+
name: "browser_session",
|
|
17
|
+
arguments: {
|
|
18
|
+
action: "start",
|
|
19
|
+
viewport: { width: 1280, height: 800 },
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
if (!startResult.success) {
|
|
23
|
+
console.log(chalk.red("❌ Failed to start browser session:"), startResult.error);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
console.log(chalk.green("✅ Browser session started"));
|
|
27
|
+
// Wait for browser to initialize
|
|
28
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
29
|
+
// Step 2: Navigate to a simple page
|
|
30
|
+
console.log(chalk.yellow("\nStep 2: Navigating to example.com..."));
|
|
31
|
+
const navigateResult = await executor.execute({
|
|
32
|
+
name: "browser_navigate",
|
|
33
|
+
arguments: {
|
|
34
|
+
url: "https://example.com",
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
if (!navigateResult.success) {
|
|
38
|
+
console.log(chalk.red("❌ Failed to navigate:"), navigateResult.error);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.log(chalk.green("✅ Successfully navigated to example.com"));
|
|
42
|
+
// Wait for page to load
|
|
43
|
+
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
44
|
+
// Step 3: Test basic snapshot
|
|
45
|
+
console.log(chalk.yellow("\nStep 3: Testing basic browser snapshot..."));
|
|
46
|
+
const snapshotResult = await executor.execute({
|
|
47
|
+
name: "browser_snapshot",
|
|
48
|
+
arguments: {},
|
|
49
|
+
});
|
|
50
|
+
console.log(chalk.blue("📊 Snapshot Result Analysis:"));
|
|
51
|
+
console.log("================================");
|
|
52
|
+
console.log("Success:", snapshotResult.success);
|
|
53
|
+
console.log("Error:", snapshotResult.error);
|
|
54
|
+
console.log("Message:", snapshotResult.message);
|
|
55
|
+
if (snapshotResult.content) {
|
|
56
|
+
console.log("Content type:", typeof snapshotResult.content);
|
|
57
|
+
console.log("Content length:", snapshotResult.content.length);
|
|
58
|
+
console.log("First content item:", JSON.stringify(snapshotResult.content[0], null, 2));
|
|
59
|
+
}
|
|
60
|
+
if (snapshotResult.sections) {
|
|
61
|
+
console.log("Sections type:", typeof snapshotResult.sections);
|
|
62
|
+
console.log("Sections keys:", Object.keys(snapshotResult.sections));
|
|
63
|
+
console.log("Sections content:", JSON.stringify(snapshotResult.sections, null, 2));
|
|
64
|
+
}
|
|
65
|
+
// Step 4: Test snapshot with different parameters
|
|
66
|
+
console.log(chalk.yellow("\nStep 4: Testing snapshot with accessibility tree..."));
|
|
67
|
+
const snapshotAccessibilityResult = await executor.execute({
|
|
68
|
+
name: "browser_snapshot",
|
|
69
|
+
arguments: {
|
|
70
|
+
accessibilityTree: true,
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
console.log(chalk.blue("📊 Accessibility Snapshot Result:"));
|
|
74
|
+
console.log("=====================================");
|
|
75
|
+
console.log("Success:", snapshotAccessibilityResult.success);
|
|
76
|
+
console.log("Error:", snapshotAccessibilityResult.error);
|
|
77
|
+
if (snapshotAccessibilityResult.content) {
|
|
78
|
+
console.log("Content length:", snapshotAccessibilityResult.content.length);
|
|
79
|
+
}
|
|
80
|
+
// Step 5: Test snapshot with element selector
|
|
81
|
+
console.log(chalk.yellow("\nStep 5: Testing snapshot with element selector..."));
|
|
82
|
+
const snapshotElementResult = await executor.execute({
|
|
83
|
+
name: "browser_snapshot",
|
|
84
|
+
arguments: {
|
|
85
|
+
element: "body",
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
console.log(chalk.blue("📊 Element Snapshot Result:"));
|
|
89
|
+
console.log("================================");
|
|
90
|
+
console.log("Success:", snapshotElementResult.success);
|
|
91
|
+
console.log("Error:", snapshotElementResult.error);
|
|
92
|
+
// Step 6: Test snapshot with different modes
|
|
93
|
+
console.log(chalk.yellow("\nStep 6: Testing snapshot with different modes..."));
|
|
94
|
+
const snapshotModeResult = await executor.execute({
|
|
95
|
+
name: "browser_snapshot",
|
|
96
|
+
arguments: {
|
|
97
|
+
mode: "full",
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
console.log(chalk.blue("📊 Mode Snapshot Result:"));
|
|
101
|
+
console.log("=============================");
|
|
102
|
+
console.log("Success:", snapshotModeResult.success);
|
|
103
|
+
console.log("Error:", snapshotModeResult.error);
|
|
104
|
+
// Step 7: Test snapshot with waitFor
|
|
105
|
+
console.log(chalk.yellow("\nStep 7: Testing snapshot with waitFor..."));
|
|
106
|
+
const snapshotWaitResult = await executor.execute({
|
|
107
|
+
name: "browser_snapshot",
|
|
108
|
+
arguments: {
|
|
109
|
+
waitFor: "load",
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
console.log(chalk.blue("📊 Wait Snapshot Result:"));
|
|
113
|
+
console.log("=============================");
|
|
114
|
+
console.log("Success:", snapshotWaitResult.success);
|
|
115
|
+
console.log("Error:", snapshotWaitResult.error);
|
|
116
|
+
// Step 8: Test snapshot with timeout
|
|
117
|
+
console.log(chalk.yellow("\nStep 8: Testing snapshot with timeout..."));
|
|
118
|
+
const snapshotTimeoutResult = await executor.execute({
|
|
119
|
+
name: "browser_snapshot",
|
|
120
|
+
arguments: {
|
|
121
|
+
timeout: 5000,
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
console.log(chalk.blue("📊 Timeout Snapshot Result:"));
|
|
125
|
+
console.log("================================");
|
|
126
|
+
console.log("Success:", snapshotTimeoutResult.success);
|
|
127
|
+
console.log("Error:", snapshotTimeoutResult.error);
|
|
128
|
+
// Step 9: Test snapshot with all parameters
|
|
129
|
+
console.log(chalk.yellow("\nStep 9: Testing snapshot with all parameters..."));
|
|
130
|
+
const snapshotAllResult = await executor.execute({
|
|
131
|
+
name: "browser_snapshot",
|
|
132
|
+
arguments: {
|
|
133
|
+
accessibilityTree: true,
|
|
134
|
+
element: "body",
|
|
135
|
+
mode: "full",
|
|
136
|
+
waitFor: "load",
|
|
137
|
+
timeout: 10000,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
console.log(chalk.blue("📊 All Parameters Snapshot Result:"));
|
|
141
|
+
console.log("=========================================");
|
|
142
|
+
console.log("Success:", snapshotAllResult.success);
|
|
143
|
+
console.log("Error:", snapshotAllResult.error);
|
|
144
|
+
// Step 10: Stop browser session
|
|
145
|
+
console.log(chalk.yellow("\nStep 10: Stopping browser session..."));
|
|
146
|
+
const stopResult = await executor.execute({
|
|
147
|
+
name: "browser_session",
|
|
148
|
+
arguments: {
|
|
149
|
+
action: "stop",
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
if (stopResult.success) {
|
|
153
|
+
console.log(chalk.green("✅ Browser session stopped successfully"));
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
console.log(chalk.red("❌ Failed to stop browser session:"), stopResult.error);
|
|
157
|
+
}
|
|
158
|
+
// Summary
|
|
159
|
+
console.log(chalk.blue("\n📊 Test Summary:"));
|
|
160
|
+
console.log("==================");
|
|
161
|
+
const tests = [
|
|
162
|
+
{ name: "Basic Snapshot", result: snapshotResult },
|
|
163
|
+
{ name: "Accessibility Snapshot", result: snapshotAccessibilityResult },
|
|
164
|
+
{ name: "Element Snapshot", result: snapshotElementResult },
|
|
165
|
+
{ name: "Mode Snapshot", result: snapshotModeResult },
|
|
166
|
+
{ name: "Wait Snapshot", result: snapshotWaitResult },
|
|
167
|
+
{ name: "Timeout Snapshot", result: snapshotTimeoutResult },
|
|
168
|
+
{ name: "All Parameters Snapshot", result: snapshotAllResult },
|
|
169
|
+
];
|
|
170
|
+
tests.forEach(test => {
|
|
171
|
+
const status = test.result.success ? "✅ PASS" : "❌ FAIL";
|
|
172
|
+
const color = test.result.success ? chalk.green : chalk.red;
|
|
173
|
+
console.log(color(`${status} - ${test.name}`));
|
|
174
|
+
if (!test.result.success && test.result.error) {
|
|
175
|
+
console.log(chalk.gray(` Error: ${test.result.error}`));
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
const successCount = tests.filter(t => t.result.success).length;
|
|
179
|
+
console.log(chalk.blue(`\n🎯 Overall: ${successCount}/${tests.length} snapshot tests passed`));
|
|
180
|
+
// Detailed analysis of the first snapshot
|
|
181
|
+
if (snapshotResult.success) {
|
|
182
|
+
console.log(chalk.blue("\n🔍 Detailed Analysis of Basic Snapshot:"));
|
|
183
|
+
console.log("=============================================");
|
|
184
|
+
if (snapshotResult.content && snapshotResult.content.length > 0) {
|
|
185
|
+
const firstContent = snapshotResult.content[0];
|
|
186
|
+
console.log("Content type:", firstContent.type);
|
|
187
|
+
if (firstContent.text) {
|
|
188
|
+
console.log("Text length:", firstContent.text.length);
|
|
189
|
+
console.log("Text preview:", firstContent.text.substring(0, 200) + "...");
|
|
190
|
+
// Check if it contains expected snapshot data
|
|
191
|
+
if (firstContent.text.includes("Page state")) {
|
|
192
|
+
console.log(chalk.green("✅ Contains 'Page state' section"));
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
console.log(chalk.red("❌ Missing 'Page state' section"));
|
|
196
|
+
}
|
|
197
|
+
if (firstContent.text.includes("Page Snapshot")) {
|
|
198
|
+
console.log(chalk.green("✅ Contains 'Page Snapshot' section"));
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
console.log(chalk.red("❌ Missing 'Page Snapshot' section"));
|
|
202
|
+
}
|
|
203
|
+
if (firstContent.text.includes("ref=")) {
|
|
204
|
+
console.log(chalk.green("✅ Contains element references"));
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
console.log(chalk.red("❌ Missing element references"));
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
console.error(chalk.red("❌ Test failed with error:"), error);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Run the test
|
|
218
|
+
testSnapshotDetailed().catch(console.error);
|
|
219
|
+
//# sourceMappingURL=test-snapshot-detailed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-snapshot-detailed.js","sourceRoot":"","sources":["../../src/test-snapshot-detailed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple test to check browser snapshot functionality
|
|
3
|
+
*/
|
|
4
|
+
import { ToolExecutor } from "./lib/tool-executor.js";
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
async function testSnapshotSimple() {
|
|
7
|
+
console.log(chalk.blue("🔍 Simple Browser Snapshot Test\n"));
|
|
8
|
+
const executor = new ToolExecutor({
|
|
9
|
+
testingMode: "ui",
|
|
10
|
+
});
|
|
11
|
+
try {
|
|
12
|
+
// Start browser
|
|
13
|
+
console.log(chalk.yellow("Starting browser..."));
|
|
14
|
+
const startResult = await executor.execute({
|
|
15
|
+
name: "browser_session",
|
|
16
|
+
arguments: { action: "start", viewport: { width: 1280, height: 800 } },
|
|
17
|
+
});
|
|
18
|
+
if (!startResult.success) {
|
|
19
|
+
console.log(chalk.red("❌ Failed to start browser:"), startResult.error);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
console.log(chalk.green("✅ Browser started"));
|
|
23
|
+
// Navigate to a simple page
|
|
24
|
+
console.log(chalk.yellow("\nNavigating to example.com..."));
|
|
25
|
+
const navigateResult = await executor.execute({
|
|
26
|
+
name: "browser_navigate",
|
|
27
|
+
arguments: { url: "https://example.com" },
|
|
28
|
+
});
|
|
29
|
+
if (!navigateResult.success) {
|
|
30
|
+
console.log(chalk.red("❌ Failed to navigate:"), navigateResult.error);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
console.log(chalk.green("✅ Navigated to example.com"));
|
|
34
|
+
// Wait a moment
|
|
35
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
36
|
+
// Test snapshot
|
|
37
|
+
console.log(chalk.yellow("\nTesting browser snapshot..."));
|
|
38
|
+
const snapshotResult = await executor.execute({
|
|
39
|
+
name: "browser_snapshot",
|
|
40
|
+
arguments: {},
|
|
41
|
+
});
|
|
42
|
+
console.log(chalk.blue("\n📊 Snapshot Result:"));
|
|
43
|
+
console.log("Success:", snapshotResult.success);
|
|
44
|
+
console.log("Error:", snapshotResult.error);
|
|
45
|
+
if (snapshotResult.success) {
|
|
46
|
+
console.log(chalk.green("✅ Snapshot successful"));
|
|
47
|
+
if (snapshotResult.content && snapshotResult.content.length > 0) {
|
|
48
|
+
const content = snapshotResult.content[0];
|
|
49
|
+
console.log("Content type:", content.type);
|
|
50
|
+
if (content.text) {
|
|
51
|
+
console.log("Text length:", content.text.length);
|
|
52
|
+
console.log("Contains 'Page state':", content.text.includes("Page state"));
|
|
53
|
+
console.log("Contains 'Page Snapshot':", content.text.includes("Page Snapshot"));
|
|
54
|
+
console.log("Contains 'ref=':", content.text.includes("ref="));
|
|
55
|
+
// Show first 500 characters
|
|
56
|
+
console.log("\nFirst 500 characters:");
|
|
57
|
+
console.log(content.text.substring(0, 500));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (snapshotResult.sections) {
|
|
61
|
+
console.log("Sections:", Object.keys(snapshotResult.sections));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.log(chalk.red("❌ Snapshot failed:"), snapshotResult.error);
|
|
66
|
+
}
|
|
67
|
+
// Stop browser
|
|
68
|
+
console.log(chalk.yellow("\nStopping browser..."));
|
|
69
|
+
const stopResult = await executor.execute({
|
|
70
|
+
name: "browser_session",
|
|
71
|
+
arguments: { action: "stop" },
|
|
72
|
+
});
|
|
73
|
+
if (stopResult.success) {
|
|
74
|
+
console.log(chalk.green("✅ Browser stopped"));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log(chalk.red("❌ Failed to stop browser:"), stopResult.error);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error(chalk.red("❌ Test failed:"), error);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
testSnapshotSimple().catch(console.error);
|
|
85
|
+
//# sourceMappingURL=test-snapshot-simple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-snapshot-simple.js","sourceRoot":"","sources":["../../src/test-snapshot-simple.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test browser snapshot with proper tab management
|
|
3
|
+
*/
|
|
4
|
+
import { ToolExecutor } from "./lib/tool-executor.js";
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
async function testSnapshotWithTabs() {
|
|
7
|
+
console.log(chalk.blue("🔍 Browser Snapshot Test with Tab Management\n"));
|
|
8
|
+
const executor = new ToolExecutor({
|
|
9
|
+
testingMode: "ui",
|
|
10
|
+
});
|
|
11
|
+
try {
|
|
12
|
+
// Start browser
|
|
13
|
+
console.log(chalk.yellow("Starting browser..."));
|
|
14
|
+
const startResult = await executor.execute({
|
|
15
|
+
name: "browser_session",
|
|
16
|
+
arguments: { action: "start", viewport: { width: 1280, height: 800 } },
|
|
17
|
+
});
|
|
18
|
+
if (!startResult.success) {
|
|
19
|
+
console.log(chalk.red("❌ Failed to start browser:"), startResult.error);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
console.log(chalk.green("✅ Browser started"));
|
|
23
|
+
// Wait for browser to initialize
|
|
24
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
25
|
+
// Check tabs
|
|
26
|
+
console.log(chalk.yellow("\nChecking browser tabs..."));
|
|
27
|
+
const tabsResult = await executor.execute({
|
|
28
|
+
name: "browser_tabs",
|
|
29
|
+
arguments: { action: "list" },
|
|
30
|
+
});
|
|
31
|
+
if (tabsResult.success) {
|
|
32
|
+
console.log(chalk.green("✅ Tabs listed successfully"));
|
|
33
|
+
console.log("Tabs:", JSON.stringify(tabsResult, null, 2));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log(chalk.red("❌ Failed to list tabs:"), tabsResult.error);
|
|
37
|
+
}
|
|
38
|
+
// Navigate to example.com
|
|
39
|
+
console.log(chalk.yellow("\nNavigating to example.com..."));
|
|
40
|
+
const navigateResult = await executor.execute({
|
|
41
|
+
name: "browser_navigate",
|
|
42
|
+
arguments: { url: "https://example.com" },
|
|
43
|
+
});
|
|
44
|
+
if (!navigateResult.success) {
|
|
45
|
+
console.log(chalk.red("❌ Failed to navigate:"), navigateResult.error);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
console.log(chalk.green("✅ Navigated to example.com"));
|
|
49
|
+
// Wait for page to load
|
|
50
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
51
|
+
// Check tabs again
|
|
52
|
+
console.log(chalk.yellow("\nChecking tabs after navigation..."));
|
|
53
|
+
const tabsAfterResult = await executor.execute({
|
|
54
|
+
name: "browser_tabs",
|
|
55
|
+
arguments: { action: "list" },
|
|
56
|
+
});
|
|
57
|
+
if (tabsAfterResult.success) {
|
|
58
|
+
console.log(chalk.green("✅ Tabs listed after navigation"));
|
|
59
|
+
console.log("Tabs after:", JSON.stringify(tabsAfterResult, null, 2));
|
|
60
|
+
}
|
|
61
|
+
// Test snapshot
|
|
62
|
+
console.log(chalk.yellow("\nTesting browser snapshot..."));
|
|
63
|
+
const snapshotResult = await executor.execute({
|
|
64
|
+
name: "browser_snapshot",
|
|
65
|
+
arguments: {},
|
|
66
|
+
});
|
|
67
|
+
console.log(chalk.blue("\n📊 Snapshot Result:"));
|
|
68
|
+
console.log("Success:", snapshotResult.success);
|
|
69
|
+
console.log("Error:", snapshotResult.error);
|
|
70
|
+
if (snapshotResult.success) {
|
|
71
|
+
console.log(chalk.green("✅ Snapshot successful"));
|
|
72
|
+
if (snapshotResult.content && snapshotResult.content.length > 0) {
|
|
73
|
+
const content = snapshotResult.content[0];
|
|
74
|
+
console.log("Content type:", content.type);
|
|
75
|
+
if (content.text) {
|
|
76
|
+
console.log("Text length:", content.text.length);
|
|
77
|
+
console.log("Contains 'Page state':", content.text.includes("Page state"));
|
|
78
|
+
console.log("Contains 'Page Snapshot':", content.text.includes("Page Snapshot"));
|
|
79
|
+
console.log("Contains 'ref=':", content.text.includes("ref="));
|
|
80
|
+
// Show first 500 characters
|
|
81
|
+
console.log("\nFirst 500 characters:");
|
|
82
|
+
console.log(content.text.substring(0, 500));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (snapshotResult.sections) {
|
|
86
|
+
console.log("Sections:", Object.keys(snapshotResult.sections));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
console.log(chalk.red("❌ Snapshot failed:"), snapshotResult.error);
|
|
91
|
+
}
|
|
92
|
+
// Stop browser
|
|
93
|
+
console.log(chalk.yellow("\nStopping browser..."));
|
|
94
|
+
const stopResult = await executor.execute({
|
|
95
|
+
name: "browser_session",
|
|
96
|
+
arguments: { action: "stop" },
|
|
97
|
+
});
|
|
98
|
+
if (stopResult.success) {
|
|
99
|
+
console.log(chalk.green("✅ Browser stopped"));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.log(chalk.red("❌ Failed to stop browser:"), stopResult.error);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
console.error(chalk.red("❌ Test failed:"), error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
testSnapshotWithTabs().catch(console.error);
|
|
110
|
+
//# sourceMappingURL=test-snapshot-tabs.js.map
|