26 lines
686 B
Go
26 lines
686 B
Go
package main
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestObjectKeyOrderPreservesWireOrder(t *testing.T) {
|
|
raw := []byte(`{"success":1,"fields":{"f_name":{"name":"Name"},"l_dep":{"name":"Department"},"c_admin":{"name":"Self Admin"}}}`)
|
|
got, err := objectKeyOrder(raw, "fields")
|
|
if err != nil {
|
|
t.Fatalf("objectKeyOrder: %v", err)
|
|
}
|
|
want := []string{"f_name", "l_dep", "c_admin"}
|
|
if !reflect.DeepEqual(got, want) {
|
|
t.Fatalf("order = %v, want %v", got, want)
|
|
}
|
|
}
|
|
|
|
func TestObjectKeyOrderMissingKey(t *testing.T) {
|
|
raw := []byte(`{"success":1,"other":{}}`)
|
|
if _, err := objectKeyOrder(raw, "fields"); err == nil {
|
|
t.Fatal("expected an error for a missing key, got nil")
|
|
}
|
|
}
|