package store import ( "reflect" "testing" ) func TestNormalizeMetadataHeroSettingsKeepsAnOrderedSubset(t *testing.T) { got := NormalizeMetadataHeroSettings(MetadataHeroSettings{ ContentOrder: []string{"summary", "unknown", "title", "summary"}, }).ContentOrder want := []string{"summary", "title"} if !reflect.DeepEqual(got, want) { t.Fatalf("content order = %v, want %v", got, want) } } func TestNormalizeMetadataHeroSettingsRestoresTheDefault(t *testing.T) { got := NormalizeMetadataHeroSettings(MetadataHeroSettings{}).ContentOrder if !reflect.DeepEqual(got, DefaultMetadataHeroContentOrder) { t.Fatalf("content order = %v, want %v", got, DefaultMetadataHeroContentOrder) } got[0] = "changed" if DefaultMetadataHeroContentOrder[0] != MetadataHeroTitle { t.Fatal("normalising an empty document returned the shared default slice") } } func TestNormalizeMetadataHeroSettingsAcceptsOptionalContent(t *testing.T) { got := NormalizeMetadataHeroSettings(MetadataHeroSettings{ ContentOrder: []string{MetadataHeroTitle, MetadataHeroReason, MetadataHeroTime}, }).ContentOrder want := []string{MetadataHeroTitle, MetadataHeroReason, MetadataHeroTime} if !reflect.DeepEqual(got, want) { t.Fatalf("content order = %v, want %v", got, want) } } func TestNormalizeMetadataHeroSettingsNormalisesTimeRemainingColour(t *testing.T) { if got := NormalizeMetadataHeroSettings(MetadataHeroSettings{}).TimeRemainingColour; got != MetadataHeroTimeRemainingColourGreen { t.Fatalf("default time remaining colour = %q, want green", got) } if got := NormalizeMetadataHeroSettings(MetadataHeroSettings{TimeRemainingColour: " WHITE "}).TimeRemainingColour; got != MetadataHeroTimeRemainingColourWhite { t.Fatalf("time remaining colour = %q, want white", got) } if got := NormalizeMetadataHeroSettings(MetadataHeroSettings{TimeRemainingColour: "orange"}).TimeRemainingColour; got != MetadataHeroTimeRemainingColourGreen { t.Fatalf("unknown time remaining colour = %q, want green", got) } }