bug_test.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package buggo
  2. import (
  3. "strings"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func Test_Bug_View(t *testing.T) {
  8. bug := Bug{
  9. Title: "title",
  10. Description: Field{Data: "description"},
  11. Status: Field{Data: "statustest"},
  12. Tags: VariadicField{
  13. Fields: []Field{
  14. {Data: "tag1"}, {Data: "tag2"},
  15. }},
  16. Blockedby: VariadicField{
  17. Fields: []Field{
  18. {Data: "blocker1"}, {Data: "blocker2"},
  19. }},
  20. }
  21. output := bug.View()
  22. assert.True(t, strings.Contains(output, "title"), output)
  23. assert.True(t, strings.Contains(output, "description"), output)
  24. // Skip this test until a better testing scheme is present
  25. //italicize := lipgloss.NewStyle().
  26. // Italic(true).
  27. // Underline(true)
  28. //render := italicize.Render("statustest")
  29. //assert.True(t, strings.Contains(output, render), output)
  30. assert.True(t, strings.Contains(output, "tag1"), output)
  31. assert.True(t, strings.Contains(output, "tag2"), output)
  32. assert.True(t, strings.Contains(output, "blocker1"), output)
  33. assert.True(t, strings.Contains(output, "blocker2"), output)
  34. }
  35. func Test_Bug_NewFromPath_err_bad_path(t *testing.T) {
  36. testBug := Bug{}
  37. bug, err := Bug.NewFromPath(testBug, "doesntexist")
  38. assert.Error(t, err)
  39. assert.Equal(t, testBug, bug)
  40. }
  41. func Test_Bug_NewFromPath_success(t *testing.T) {
  42. testBug := Bug{
  43. Title: "test 1",
  44. Description: Field{Data: "test description\n", Path: "/description"},
  45. Status: Field{Data: "open:test\n", Path: "/status"},
  46. Path: "tests/bugs/test-1",
  47. Tags: VariadicField{
  48. Path: "/tags", Fields: []Field{
  49. {Path: "tag1"},
  50. {Path: "tag2"},
  51. },
  52. },
  53. Blockedby: VariadicField{
  54. Path: "/blockedby", Fields: []Field{
  55. {Path: "blocker1"},
  56. {Path: "blocker2"},
  57. },
  58. },
  59. }
  60. bug, err := Bug.NewFromPath(Bug{}, "tests/bugs/test-1")
  61. if err != nil {
  62. assert.Fail(t, "should not err")
  63. }
  64. assert.Equal(t, testBug.Title, bug.Title)
  65. assert.Equal(t, testBug.Description, bug.Description)
  66. assert.Equal(t, testBug.Status, bug.Status)
  67. assert.Equal(t, testBug.Tags, bug.Tags)
  68. assert.Equal(t, testBug.Blockedby, bug.Blockedby)
  69. assert.Equal(t, testBug.Path, bug.Path)
  70. }
  71. func Test_VariadicField_NewFromPath_fails(t *testing.T) {
  72. _, err := VariadicField.NewFromPath(VariadicField{Path: "/tags"}, "dosentexist")
  73. assert.Error(t, err)
  74. }
  75. func Test_VariadicField_NewFromPath_no_tags_dir(t *testing.T) {
  76. _, err := VariadicField.NewFromPath(VariadicField{Path: "/tags"}, "tests/bugs/test-2")
  77. assert.Error(t, err, "should not find tags")
  78. }
  79. func Test_VariadicField_NewFromPath_no_tags_in_dir(t *testing.T) {
  80. vf, err := VariadicField.NewFromPath(VariadicField{Path: "/tags"}, "tests/bugs/test-3")
  81. if err != nil {
  82. assert.Fail(t, "should not throw error")
  83. }
  84. assert.Equal(t, len(vf.Fields), 0)
  85. }
  86. func Test_VariadicField_NewFromPath_success(t *testing.T) {
  87. vf, err := VariadicField.NewFromPath(VariadicField{Path: "/tags"}, "tests/bugs/test-1")
  88. if err != nil {
  89. assert.Fail(t, "should not throw error")
  90. }
  91. assert.Equal(t, len(vf.Fields), 2)
  92. }
  93. func Test_parsePathToHuman(t *testing.T) {
  94. testPath := "test-dir/test-1--content"
  95. testParse := "test 1-content"
  96. parseResult := parsePathToHuman(testPath)
  97. assert.Equal(t, testParse, parseResult)
  98. }
  99. func Test_parseHumanToPath(t *testing.T) {
  100. testHuman := "test 1-content"
  101. testParse := "test-1--content"
  102. parseResult := parseHumanToPath(testHuman)
  103. assert.Equal(t, testParse, parseResult)
  104. }