19 lines
466 B
Go
19 lines
466 B
Go
package stateio
|
|
|
|
import "testing"
|
|
|
|
func TestRequireExactJSONObject(t *testing.T) {
|
|
if err := RequireExactJSONObject([]byte(`{"version":1,"items":[]}`), "version", "items"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for _, payload := range []string{
|
|
`{"version":1}`,
|
|
`{"version":1,"items":[],"legacy":true}`,
|
|
`[]`,
|
|
} {
|
|
if err := RequireExactJSONObject([]byte(payload), "version", "items"); err == nil {
|
|
t.Fatalf("accepted non-current layout %s", payload)
|
|
}
|
|
}
|
|
}
|