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

7 years ago
  1. package model
  2. import (
  3. "testing"
  4. "git.aiterp.net/AiteRP/aitestory/server"
  5. )
  6. func TestTag(t *testing.T) {
  7. if server.Main.Config.DB.Password == "" {
  8. t.Skip("No database password")
  9. return
  10. }
  11. t.Run("Insert", func(t *testing.T) {
  12. tag := Tag{}
  13. tag.Name = "Te'Eryvi"
  14. tag.Type = "Organization"
  15. err := tag.Insert()
  16. if err != nil {
  17. t.Log("Failed to insert:", err)
  18. t.Fail()
  19. }
  20. })
  21. t.Run("Insert_BadType", func(t *testing.T) {
  22. tag := Tag{}
  23. tag.Name = "Ehanis Tioran"
  24. tag.Type = "Karakter"
  25. err := tag.Insert()
  26. if err == nil {
  27. t.Log("Oops, it was inserted.")
  28. t.Fail()
  29. return
  30. }
  31. if err.Error() != `"Karakter" is not a valid tag type` {
  32. t.Log("Wrong error:", err)
  33. t.Fail()
  34. }
  35. })
  36. t.Run("Insert_BadName", func(t *testing.T) {
  37. tag := Tag{}
  38. tag.Name = ""
  39. tag.Type = "Character"
  40. err := tag.Insert()
  41. if err == nil {
  42. t.Log("Oops, it was inserted.")
  43. t.Fail()
  44. return
  45. }
  46. if err.Error() != `Tag name is empty` {
  47. t.Log("Wrong error:", err)
  48. t.Fail()
  49. }
  50. })
  51. t.Run("List", func(t *testing.T) {
  52. tags, err := ListTags()
  53. if err != nil {
  54. t.Log("Failed to get tags:", err)
  55. t.Fail()
  56. }
  57. if len(tags) == 0 {
  58. t.Log("No tags found")
  59. t.Fail()
  60. }
  61. t.Logf("%d tags found", len(tags))
  62. found := false
  63. for _, tag := range tags {
  64. if tag.Name == "Te'Eryvi" {
  65. t.Logf("Tag found: %+v", tag)
  66. found = true
  67. break
  68. }
  69. }
  70. if !found {
  71. t.Log("The tag inserted in last test wasn't found")
  72. t.Fail()
  73. }
  74. })
  75. }