pages_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package webpages
  2. import (
  3. "io"
  4. "io/fs"
  5. "os"
  6. "path"
  7. "testing"
  8. "git.aetherial.dev/aeth/keiji/pkg/env"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestNewContentLayer(t *testing.T) {
  12. type testcase struct {
  13. input ServiceOption
  14. want fs.FS
  15. }
  16. for _, tc := range []testcase{
  17. {
  18. input: EMBED,
  19. want: content,
  20. },
  21. {
  22. input: FILESYSTEM,
  23. want: FilesystemWebpages{Webroot: path.Base(os.Getenv(env.WEB_ROOT))},
  24. },
  25. } {
  26. got := NewContentLayer(tc.input)
  27. assert.Equal(t, tc.want, got)
  28. }
  29. }
  30. func TestOpen(t *testing.T) {
  31. type testcase struct {
  32. input string
  33. dir string
  34. createFile string
  35. data []byte
  36. err error
  37. }
  38. for _, tc := range []testcase{
  39. {
  40. input: "testfile.txt",
  41. dir: t.TempDir(),
  42. createFile: "testfile.txt",
  43. data: []byte("testdataetcabc123"),
  44. err: nil,
  45. },
  46. {
  47. input: "this_cant_be_indexed.csv",
  48. dir: t.TempDir(),
  49. createFile: "test",
  50. data: []byte("testdatagdfsagfdsbhs"),
  51. err: os.ErrNotExist,
  52. },
  53. } {
  54. os.WriteFile(path.Join(tc.dir, tc.createFile), tc.data, os.ModePerm)
  55. testFs := FilesystemWebpages{Webroot: tc.dir}
  56. fh, err := testFs.Open(tc.input)
  57. if err != nil {
  58. assert.Equal(t, tc.err, err)
  59. } else {
  60. b, _ := io.ReadAll(fh)
  61. assert.Equal(t, tc.data, b)
  62. }
  63. }
  64. }
  65. func TestReadToString(t *testing.T) {
  66. testFs := FilesystemWebpages{Webroot: t.TempDir()}
  67. filename := "testfile.txt"
  68. testFile := path.Join(testFs.Webroot, filename)
  69. data := []byte("abc123xyz098")
  70. os.WriteFile(testFile, data, os.ModePerm)
  71. got := ReadToString(testFs, filename)
  72. assert.Equal(t, string(data), got)
  73. }