返回 DeepSeek-Reasonix
bridge-mock-approval-mode.test.ts
根目录 / desktop / frontend / src / __tests__ / bridge-mock-approval-mode.test.ts
1 // Run: tsx src/__tests__/bridge-mock-approval-mode.test.ts
2
3 import { mockToolApprovalModeAfterModeChange } from "../lib/bridge";
4
5 let passed = 0;
6 let failed = 0;
7
8 function eq(a: unknown, b: unknown, label: string) {
9 if (a === b) {
10 process.stdout.write(` PASS ${label}\n`);
11 passed += 1;
12 } else {
13 process.stdout.write(` FAIL ${label}: expected ${JSON.stringify(b)}, got ${JSON.stringify(a)}\n`);
14 failed += 1;
15 }
16 }
17
18 console.log("\nbridge mock approval mode");
19
20 eq(
21 mockToolApprovalModeAfterModeChange("auto", "plan"),
22 "auto",
23 "legacy plan switch keeps explicit auto approval mode",
24 );
25 eq(
26 mockToolApprovalModeAfterModeChange("auto", "normal"),
27 "auto",
28 "legacy normal switch keeps explicit auto approval mode",
29 );
30 eq(
31 mockToolApprovalModeAfterModeChange("ask", "yolo"),
32 "yolo",
33 "legacy yolo switch still enables yolo approval mode",
34 );
35 eq(
36 mockToolApprovalModeAfterModeChange("yolo", "plan"),
37 "ask",
38 "legacy non-yolo switch clears yolo back to ask",
39 );
40
41 console.log(`\n${passed} passed, ${failed} failed`);
42 if (failed > 0) process.exit(1);
43
43 lines TYPESCRIPT