Ariver
2026-07-12 24f551a39eae849d891da26cc91f90d354e3a2db
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package main
 
import (
    "testing"
    "voicesnap/internal/textoutput"
)
 
func TestTextOutputUpdatePayloadExposesFallbackStateWithoutSensitiveText(t *testing.T) {
    payload := textOutputUpdatePayload(textoutput.Result{
        OK:                false,
        Text:              "Private voice terminal.",
        Method:            "ax_value_replacement",
        Target:            `app=Terminal title="Secret Document.txt" role=AXTextArea`,
        NeedsPermission:   true,
        FallbackAvailable: true,
    })
 
    if payload["ok"] != false {
        t.Fatalf("ok = %v, want false", payload["ok"])
    }
    if payload["needsPermission"] != true {
        t.Fatalf("needsPermission = %v, want true", payload["needsPermission"])
    }
    if payload["fallbackAvailable"] != true {
        t.Fatalf("fallbackAvailable = %v, want true", payload["fallbackAvailable"])
    }
    if payload["hasText"] != true {
        t.Fatalf("hasText = %v, want true", payload["hasText"])
    }
    for _, key := range []string{"text", "transcript", "target", "method", "message"} {
        if _, ok := payload[key]; ok {
            t.Fatalf("payload should not expose %q", key)
        }
    }
}