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)
|
}
|
}
|
}
|