返回 DeepSeek-Reasonix
browsercontrol_test.go
根目录 / desktop / internal / hostrpc / browsercontrol_test.go
1 package hostrpc
2
3 import (
4 "context"
5 "testing"
6
7 "reasonix/internal/extension/rpcwire"
8 )
9
10 func TestBrowserControlHookReceivesEnabledFlag(t *testing.T) {
11 var seen []bool
12 h := newHarness(t, &fixtureTarget{}, Hooks{
13 BrowserControl: func(_ context.Context, enabled bool) error {
14 seen = append(seen, enabled)
15 return nil
16 },
17 })
18 h.mustHello()
19 for _, enabled := range []bool{false, true} {
20 var empty map[string]any
21 if err := h.call("desktop/browserControl", map[string]bool{"enabled": enabled}, &empty); err != nil || len(empty) != 0 {
22 t.Fatalf("browserControl enabled=%v = %v, %v", enabled, empty, err)
23 }
24 }
25 if len(seen) != 2 || seen[0] || !seen[1] {
26 t.Fatalf("hook saw %v, want [false true]", seen)
27 }
28 }
29
30 func TestBrowserControlRequiresEnabledFlag(t *testing.T) {
31 h := newHarness(t, &fixtureTarget{}, Hooks{BrowserControl: func(context.Context, bool) error {
32 t.Error("hook must not run without the flag")
33 return nil
34 }})
35 h.mustHello()
36 assertCode(t, h.call("desktop/browserControl", map[string]any{}, nil), rpcwire.ErrInvalidParams, "")
37 }
38
38 lines GO