123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package webpages
- import (
- "io"
- "io/fs"
- "os"
- "path"
- "testing"
- "git.aetherial.dev/aeth/keiji/pkg/env"
- "github.com/stretchr/testify/assert"
- )
- func TestNewContentLayer(t *testing.T) {
- type testcase struct {
- input ServiceOption
- want fs.FS
- }
- for _, tc := range []testcase{
- {
- input: EMBED,
- want: content,
- },
- {
- input: FILESYSTEM,
- want: FilesystemWebpages{Webroot: path.Base(os.Getenv(env.WEB_ROOT))},
- },
- } {
- got := NewContentLayer(tc.input)
- assert.Equal(t, tc.want, got)
- }
- }
- func TestOpen(t *testing.T) {
- type testcase struct {
- input string
- dir string
- createFile string
- data []byte
- err error
- }
- for _, tc := range []testcase{
- {
- input: "testfile.txt",
- dir: t.TempDir(),
- createFile: "testfile.txt",
- data: []byte("testdataetcabc123"),
- err: nil,
- },
- {
- input: "this_cant_be_indexed.csv",
- dir: t.TempDir(),
- createFile: "test",
- data: []byte("testdatagdfsagfdsbhs"),
- err: os.ErrNotExist,
- },
- } {
- os.WriteFile(path.Join(tc.dir, tc.createFile), tc.data, os.ModePerm)
- testFs := FilesystemWebpages{Webroot: tc.dir}
- fh, err := testFs.Open(tc.input)
- if err != nil {
- assert.Equal(t, tc.err, err)
- } else {
- b, _ := io.ReadAll(fh)
- assert.Equal(t, tc.data, b)
- }
- }
- }
- func TestReadToString(t *testing.T) {
- testFs := FilesystemWebpages{Webroot: t.TempDir()}
- filename := "testfile.txt"
- testFile := path.Join(testFs.Webroot, filename)
- data := []byte("abc123xyz098")
- os.WriteFile(testFile, data, os.ModePerm)
- got := ReadToString(testFs, filename)
- assert.Equal(t, string(data), got)
- }
|