35 lines
1.1 KiB
Go
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")
|
|
}
|
|
}
|