bug_test.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package buggo
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func Test_Bug_NewFromPath_err_bad_path(t *testing.T) {
  7. testBug := Bug{}
  8. bug, err := Bug.NewFromPath(testBug, "doesntexist")
  9. assert.Error(t, err)
  10. assert.Equal(t, testBug, bug)
  11. }
  12. func Test_Bug_NewFromPath_success(t *testing.T) {
  13. testBug := Bug{
  14. Title: "test 1",
  15. Description: Field{Data: "test description\n", Path: "/description"},
  16. Status: Field{Data: "open:test\n", Path: "/status"},
  17. Path: "tests/bugs/test-1",
  18. Tags: VariadicField{
  19. Path: "/tags", Fields: []Field{
  20. {Path: "tag1"},
  21. {Path: "tag2"},
  22. },
  23. },
  24. Blockedby: VariadicField{
  25. Path: "/blockedby", Fields: []Field{
  26. {Path: "blocker1"},
  27. {Path: "blocker2"},
  28. },
  29. },
  30. }
  31. bug, err := Bug.NewFromPath(Bug{}, "tests/bugs/test-1")
  32. if err != nil {
  33. assert.Fail(t, "should not err")
  34. }
  35. assert.Equal(t, testBug.Title, bug.Title)
  36. assert.Equal(t, testBug.Description, bug.Description)
  37. assert.Equal(t, testBug.Status, bug.Status)
  38. assert.Equal(t, testBug.Tags, bug.Tags)
  39. assert.Equal(t, testBug.Blockedby, bug.Blockedby)
  40. assert.Equal(t, testBug.Path, bug.Path)
  41. }
  42. func Test_VariadicField_NewFromPath_fails(t *testing.T) {
  43. _, err := VariadicField.NewFromPath(VariadicField{Path: "/tags"}, "dosentexist")
  44. assert.Error(t, err)
  45. }
  46. func Test_VariadicField_NewFromPath_no_tags_dir(t *testing.T) {
  47. _, err := VariadicField.NewFromPath(VariadicField{Path: "/tags"}, "tests/bugs/test-2")
  48. assert.Error(t, err, "should not find tags")
  49. }
  50. func Test_VariadicField_NewFromPath_no_tags_in_dir(t *testing.T) {
  51. vf, err := VariadicField.NewFromPath(VariadicField{Path: "/tags"}, "tests/bugs/test-3")
  52. if err != nil {
  53. assert.Fail(t, "should not throw error")
  54. }
  55. assert.Equal(t, len(vf.Fields), 0)
  56. }
  57. func Test_VariadicField_NewFromPath_success(t *testing.T) {
  58. vf, err := VariadicField.NewFromPath(VariadicField{Path: "/tags"}, "tests/bugs/test-1")
  59. if err != nil {
  60. assert.Fail(t, "should not throw error")
  61. }
  62. assert.Equal(t, len(vf.Fields), 2)
  63. }
  64. func Test_parsePathToHuman(t *testing.T) {
  65. testPath := "test-dir/test-1--content"
  66. testParse := "test 1-content"
  67. parseResult := parsePathToHuman(testPath)
  68. assert.Equal(t, testParse, parseResult)
  69. }
  70. func Test_parseHumanToPath(t *testing.T) {
  71. testHuman := "test 1-content"
  72. testParse := "test-1--content"
  73. parseResult := parseHumanToPath(testHuman)
  74. assert.Equal(t, testParse, parseResult)
  75. }