71 lines
3.2 KiB
Go
71 lines
3.2 KiB
Go
// Copyright 2026 Alibaba Group
|
|
// Licensed under the Apache License, Version 2.0
|
|
|
|
package minutesdata
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
)
|
|
|
|
func TestCrossPlatformCoverageMinutesWorkflowShapesRejectUnknownE2E(t *testing.T) {
|
|
if err := RequireWriteAcknowledgement("write", map[string]any{}); err == nil {
|
|
t.Fatal("bare write response accepted")
|
|
}
|
|
if _, err := HotWords(map[string]any{"success": true, "result": map[string]any{}}); err == nil {
|
|
t.Fatal("missing hot-word list accepted")
|
|
}
|
|
if _, _, err := MindGraphStatus(map[string]any{"success": true, "result": map[string]any{}}); err == nil {
|
|
t.Fatal("missing mind graph status accepted")
|
|
}
|
|
if _, _, err := MindGraphStatus(map[string]any{"success": true, "result": map[string]any{"taskStatus": 1.5}}); err == nil {
|
|
t.Fatal("fractional mind graph status accepted")
|
|
}
|
|
if _, err := SpeakerSummaryResult(map[string]any{"success": true, "result": map[string]any{}}); err == nil {
|
|
t.Fatal("empty speaker summary accepted")
|
|
}
|
|
}
|
|
|
|
func TestCrossPlatformCoverageMinutesPermissionMutationRequiresExactResultMap(t *testing.T) {
|
|
for _, data := range []map[string]any{
|
|
{"success": true, "result": map[string]any{}},
|
|
{"success": true, "result": map[string]any{"resultMap": map[string]any{}}},
|
|
{"success": true, "result": map[string]any{"resultMap": map[string]any{"u1": []any{}}}},
|
|
{"success": true, "result": map[string]any{"resultMap": map[string]any{"other": []any{"m1"}}}},
|
|
} {
|
|
if err := RequirePermissionMutationAcknowledgement("unshare", []string{"u1"}, []string{"m1"}, data); err == nil {
|
|
t.Fatalf("incomplete permission acknowledgement accepted: %#v", data)
|
|
}
|
|
}
|
|
valid := map[string]any{
|
|
"success": true,
|
|
"result": map[string]any{"resultMap": map[string]any{"u1": []any{"m1"}}},
|
|
}
|
|
if err := RequirePermissionMutationAcknowledgement("unshare", []string{"u1"}, []string{"m1"}, valid); err != nil {
|
|
t.Fatalf("valid permission acknowledgement rejected: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestCrossPlatformCoverageMinutesWorkflowObservedShapesE2E(t *testing.T) {
|
|
record, err := RecordResult("pause", "u1", map[string]any{"success": true, "result": map[string]any{"cmd": "pause", "uuid": "u1"}})
|
|
if err != nil || record["cmd"] != "pause" {
|
|
t.Fatalf("record=%#v err=%v", record, err)
|
|
}
|
|
status, _, err := MindGraphStatus(map[string]any{"success": true, "result": map[string]any{"taskStatus": float64(1)}})
|
|
if err != nil || status != 1 {
|
|
t.Fatalf("mind status=%d err=%v", status, err)
|
|
}
|
|
status, _, err = MindGraphStatus(map[string]any{"success": true, "result": map[string]any{"taskStatus": json.Number("1")}})
|
|
if err != nil || status != 1 {
|
|
t.Fatalf("number-preserving mind status=%d err=%v", status, err)
|
|
}
|
|
taskID, state, err := SpeakerSummaryTask(map[string]any{"success": true, "result": map[string]any{"taskId": "job-1", "status": "processing"}})
|
|
if err != nil || taskID != "job-1" || state != "processing" {
|
|
t.Fatalf("speaker task=%q state=%q err=%v", taskID, state, err)
|
|
}
|
|
words, err := HotWords(map[string]any{"success": true, "result": map[string]any{"hotWordList": []any{"DWS", map[string]any{"hotWord": "听记"}}}})
|
|
if err != nil || len(words) != 2 || words[1] != "听记" {
|
|
t.Fatalf("words=%#v err=%v", words, err)
|
|
}
|
|
}
|