package handlers import "testing" // The collection chain's curated order (plan ยง10 R2): the resolver // reads view_settings.chain_order, tolerates absent/corrupt docs, and // refuses unknown orders (they mean native). func TestCollectionChainOrder(t *testing.T) { cases := []struct { name string vs string want string }{ {"absent doc", "", ""}, {"empty object", `{}`, ""}, {"reverse", `{"chain_order":"reverse"}`, "reverse"}, {"newest", `{"chain_order":"newest"}`, "newest"}, {"merged with toggles", `{"hide_finished":true,"chain_order":"oldest"}`, "oldest"}, {"unknown order means native", `{"chain_order":"shuffle"}`, ""}, {"non-string means native", `{"chain_order":3}`, ""}, {"corrupt doc means native", `not json`, ""}, } for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { if got := CollectionChainOrder([]byte(tc.vs)); got != tc.want { t.Fatalf("CollectionChainOrder(%s) = %q, want %q", tc.vs, got, tc.want) } }) } }