io_test.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package issues
  2. import (
  3. "os"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func Test_readPath_throws_not_found(t *testing.T) {
  8. _, err := readPath("doesntexist")
  9. assert.Error(t, err, "should never exist!")
  10. _, err2 := readPath("tests/asdfasdf")
  11. assert.Error(t, err2, "should never exist!")
  12. }
  13. func Test_readPath_succeeds(t *testing.T) {
  14. data, err := readPath("tests/bugs/test-1/description")
  15. if err != nil {
  16. assert.Fail(t, "function threw error, does tests/bugs/test-1 exist?")
  17. }
  18. assert.Equal(t, data, "test description\n")
  19. }
  20. func Test_IsIssue_success(t *testing.T) {
  21. val := IsIssue("tests/bugs/test-1")
  22. assert.True(t, val)
  23. }
  24. func Test_IsIssue_fail(t *testing.T) {
  25. val := IsIssue("tests/isnotabug")
  26. assert.False(t, val)
  27. }
  28. func Test_IsIssue_returns_false_on_error(t *testing.T) {
  29. val := IsIssue("willneverexist")
  30. assert.False(t, val)
  31. }
  32. func Test_IsIssueCollection_success(t *testing.T) {
  33. val := IsIssueCollection("tests/bugs/")
  34. assert.True(t, val)
  35. }
  36. func Test_IsIssueCollection_fail(t *testing.T) {
  37. val := IsIssueCollection("tests/")
  38. assert.False(t, val)
  39. }
  40. func Test_IsIssueCollection_returns_false_on_error(t *testing.T) {
  41. val := IsIssueCollection("willneverexist")
  42. assert.False(t, val)
  43. }
  44. func Test_WriteIssue_fails_on_existing(t *testing.T) {
  45. testIssue := Issue{
  46. Title: "",
  47. Path: "tests/bugs/test-1",
  48. }
  49. _, err := WriteIssue(testIssue, false)
  50. assert.Error(t, err)
  51. }
  52. func Test_WriteIssue_fails_on_bad_path(t *testing.T) {
  53. testIssue := Issue{
  54. Title: "",
  55. Path: "tests/cantexist/test",
  56. }
  57. _, err := WriteIssue(testIssue, true)
  58. assert.Error(t, err)
  59. }
  60. func Test_WriteIssue_creates_base_path(t *testing.T) {
  61. testIssue := Issue{Path: "tests/bugs/test-write1"}
  62. // clean up path
  63. err := os.RemoveAll(testIssue.Path)
  64. assert.Nil(t, err)
  65. // run test
  66. result, err := WriteIssue(testIssue, false)
  67. assert.Nil(t, err)
  68. assert.True(t, result)
  69. // clean up path
  70. err = os.RemoveAll(testIssue.Path)
  71. assert.Nil(t, err)
  72. }
  73. func Test_WriteIssue_creates_fields(t *testing.T) {
  74. testIssue := Issue{
  75. Path: "tests/bugs/test-write2",
  76. Status: Field{Path: "/status", Data: "test"},
  77. Description: Field{Path: "/description", Data: "test"},
  78. }
  79. // clean up path
  80. err := os.RemoveAll(testIssue.Path)
  81. assert.Nil(t, err)
  82. // run test
  83. result, err := WriteIssue(testIssue, false)
  84. assert.Nil(t, err)
  85. assert.True(t, result)
  86. // clean up path
  87. err = os.RemoveAll(testIssue.Path)
  88. assert.Nil(t, err)
  89. }
  90. func Test_WriteIssue_creates_variadic_fields(t *testing.T) {
  91. testIssue := Issue{
  92. Path: "tests/bugs/test-write3",
  93. Tags: VariadicField{
  94. Path: "/tags",
  95. Fields: []Field{
  96. {Path: "test1"},
  97. {Path: "test2"},
  98. },
  99. },
  100. Blockedby: VariadicField{
  101. Path: "/blockedby",
  102. Fields: []Field{
  103. {Path: "test1"},
  104. {Path: "test2"},
  105. },
  106. },
  107. }
  108. // clean up path
  109. err := os.RemoveAll(testIssue.Path)
  110. assert.Nil(t, err)
  111. // run test
  112. result, err := WriteIssue(testIssue, false)
  113. assert.Nil(t, err)
  114. assert.True(t, result)
  115. // clean up path
  116. err = os.RemoveAll(testIssue.Path)
  117. assert.Nil(t, err)
  118. }