The backend for the AiteStory website
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
1.5 KiB

package model
import (
"testing"
"git.aiterp.net/AiteRP/aitestory/server"
)
func TestTag(t *testing.T) {
if server.Main.Config.DB.Password == "" {
t.Skip("No database password")
return
}
t.Run("Insert", func(t *testing.T) {
tag := Tag{}
tag.Name = "Te'Eryvi"
tag.Type = "Organization"
err := tag.Insert()
if err != nil {
t.Log("Failed to insert:", err)
t.Fail()
}
})
t.Run("Insert_BadType", func(t *testing.T) {
tag := Tag{}
tag.Name = "Ehanis Tioran"
tag.Type = "Karakter"
err := tag.Insert()
if err == nil {
t.Log("Oops, it was inserted.")
t.Fail()
return
}
if err.Error() != `"Karakter" is not a valid tag type` {
t.Log("Wrong error:", err)
t.Fail()
}
})
t.Run("Insert_BadName", func(t *testing.T) {
tag := Tag{}
tag.Name = ""
tag.Type = "Character"
err := tag.Insert()
if err == nil {
t.Log("Oops, it was inserted.")
t.Fail()
return
}
if err.Error() != `Tag name is empty` {
t.Log("Wrong error:", err)
t.Fail()
}
})
t.Run("List", func(t *testing.T) {
tags, err := ListTags()
if err != nil {
t.Log("Failed to get tags:", err)
t.Fail()
}
if len(tags) == 0 {
t.Log("No tags found")
t.Fail()
}
t.Logf("%d tags found", len(tags))
found := false
for _, tag := range tags {
if tag.Name == "Te'Eryvi" {
t.Logf("Tag found: %+v", tag)
found = true
break
}
}
if !found {
t.Log("The tag inserted in last test wasn't found")
t.Fail()
}
})
}