completion_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package completion
  2. import (
  3. "bytes"
  4. "errors"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. "gopkg.in/h2non/gock.v1"
  8. )
  9. const samplePackageResp = `
  10. # AUR package list, generated on Fri, 24 Jul 2020 22:05:22 GMT
  11. cytadela
  12. bitefusion
  13. globs-svn
  14. ri-li
  15. globs-benchmarks-svn
  16. dunelegacy
  17. lumina
  18. eternallands-sound
  19. `
  20. const expectPackageCompletion = `cytadela AUR
  21. bitefusion AUR
  22. globs-svn AUR
  23. ri-li AUR
  24. globs-benchmarks-svn AUR
  25. dunelegacy AUR
  26. lumina AUR
  27. eternallands-sound AUR
  28. `
  29. func Test_createAURList(t *testing.T) {
  30. defer gock.Off()
  31. gock.New("https://aur.archlinux.org").
  32. Get("/packages.gz").
  33. Reply(200).
  34. BodyString(samplePackageResp)
  35. out := &bytes.Buffer{}
  36. err := createAURList("https://aur.archlinux.org", out)
  37. assert.NoError(t, err)
  38. gotOut := out.String()
  39. assert.Equal(t, expectPackageCompletion, gotOut)
  40. }
  41. func Test_createAURListHTTPError(t *testing.T) {
  42. defer gock.Off()
  43. gock.New("https://aur.archlinux.org").
  44. Get("/packages.gz").
  45. ReplyError(errors.New("Not available"))
  46. out := &bytes.Buffer{}
  47. err := createAURList("https://aur.archlinux.org", out)
  48. assert.EqualError(t, err, "Get \"https://aur.archlinux.org/packages.gz\": Not available")
  49. }
  50. func Test_createAURListStatusError(t *testing.T) {
  51. defer gock.Off()
  52. gock.New("https://aur.archlinux.org").
  53. Get("/packages.gz").
  54. Reply(503).
  55. BodyString(samplePackageResp)
  56. out := &bytes.Buffer{}
  57. err := createAURList("https://aur.archlinux.org", out)
  58. assert.EqualError(t, err, "invalid status code: 503")
  59. }