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
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()
|
|
}
|
|
})
|
|
}
|