32 lines
727 B
Go
32 lines
727 B
Go
package store
|
|
|
|
import (
|
|
"encoding/json"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestCurrentStoreSameRevisionCanonicalJSON(t *testing.T) {
|
|
s, err := OpenCurrent(filepath.Join(t.TempDir(), "state.db"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer s.Close()
|
|
snapshot := currentStoreSnapshot(t)
|
|
if err := s.SaveSnapshot(snapshot); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var fields map[string]json.RawMessage
|
|
if err := json.Unmarshal(snapshot.Task.Raw, &fields); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
canonical, err := json.Marshal(fields)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
snapshot.Task.Raw = canonical
|
|
if err := s.SaveSnapshot(snapshot); err != nil {
|
|
t.Fatalf("identical task content with reordered JSON fields was rejected: %v", err)
|
|
}
|
|
}
|