Files
go-sip/internal/configread/task_identity_test.go
T

35 lines
1.1 KiB
Go

package configread
import (
"encoding/json"
"testing"
)
func TestTaskConfigurationIdentityIgnoresOnlyReceptionMetadata(t *testing.T) {
task := Task{Raw: json.RawMessage(`{"task_revision":9,"status":"running","name":"test","agent":{"asr":{"params":{"sample_rate":16000}}}}`)}
original, err := TaskConfigurationSHA256(task)
if err != nil {
t.Fatal(err)
}
for _, body := range []string{
`{"name":"test","status":"paused","task_revision":1,"agent":{"asr":{"params":{"sample_rate":16000}}}}`,
`{"task_revision":9,"status":"running","name":"test","agent":{"asr":{"params":{"sample_rate":8000}}}}`,
} {
current, err := TaskConfigurationSHA256(Task{Raw: json.RawMessage(body)})
if err != nil {
t.Fatal(err)
}
var value map[string]any
if err := json.Unmarshal([]byte(body), &value); err != nil {
t.Fatal(err)
}
metadataOnly := value["status"] == "paused"
if (original == current) != metadataOnly {
t.Fatalf("configuration identity mismatch: metadataOnly=%v", metadataOnly)
}
}
if _, err := TaskConfigurationSHA256(Task{Raw: json.RawMessage(`{`)}); err == nil {
t.Fatal("accepted malformed task JSON")
}
}