32 lines
703 B
Go
32 lines
703 B
Go
package ai
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"git.ipao.vip/rogee/go-sip/contracts"
|
|
)
|
|
|
|
func TestSnapshotDigestUsesJCSNotJSONPresentation(t *testing.T) {
|
|
raw, err := contracts.Read("examples/agent-version.json")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
first, err := Validate(raw)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
variant := bytes.ReplaceAll(raw, []byte(`"speed": 1.0`), []byte(`"speed": 1`))
|
|
variant = append([]byte("\n\t"), variant...)
|
|
second, err := Validate(variant)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if first.Digest != second.Digest {
|
|
t.Fatal("JSON presentation changed immutable AI digest")
|
|
}
|
|
if !bytes.Equal(first.Raw, raw) {
|
|
t.Fatal("canonicalization changed supplied snapshot bytes")
|
|
}
|
|
}
|