package models_test import ( "reflect" "testing" "git.golem15.com/golem15/sm-journal-plugin/models" ) type translatable interface { Translatable() []string } type translatableIndexed interface { TranslatableIndexes() []string } func TestTranslatable(t *testing.T) { post := models.Post{} if post.MorphName() != `Golem15\Journal\Models\Post` { t.Fatalf("Post.MorphName = %q", post.MorphName()) } if got := post.Translatable(); !reflect.DeepEqual(got, []string{"title", "content", "content_html", "excerpt", "metadata", "slug"}) { t.Fatalf("Post.Translatable = %#v", got) } if got := post.TranslatableIndexes(); !reflect.DeepEqual(got, []string{"slug"}) { t.Fatalf("Post.TranslatableIndexes = %#v", got) } cat := models.Category{} if cat.MorphName() != `Golem15\Journal\Models\Category` { t.Fatalf("Category.MorphName = %q", cat.MorphName()) } if got := cat.Translatable(); !reflect.DeepEqual(got, []string{"name", "description", "slug"}) { t.Fatalf("Category.Translatable = %#v", got) } if got := cat.TranslatableIndexes(); !reflect.DeepEqual(got, []string{"slug"}) { t.Fatalf("Category.TranslatableIndexes = %#v", got) } tag := models.Tag{} if tag.MorphName() != `Golem15\Journal\Models\Tag` { t.Fatalf("Tag.MorphName = %q", tag.MorphName()) } if _, ok := any(tag).(translatable); ok { t.Fatal("Tag must not implement Translatable") } if _, ok := any(tag).(translatableIndexed); ok { t.Fatal("Tag must not implement TranslatableIndexes") } } func TestFilterScopes(t *testing.T) { got := (models.Post{}).FilterScopes() if !reflect.DeepEqual(got, []string{models.FilterPublished, models.FilterCategories}) { t.Fatalf("FilterScopes = %#v", got) } }