| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 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)
- }
- func TestVideoHighlightUsesCardHover(t *testing.T) {
- template := ReadToString(content, "html/digital_art.html")
- css := ReadToString(content, "cdn/custom.css")
- for _, want := range []string{"media-card", "video-highlight", "autoplay muted loop", "{{ .Title }}", "{{ .Desc }}"} {
- assert.Contains(t, template, want)
- }
- for _, want := range []string{".media-card:hover .video-highlight", ".media-card:focus-within .video-highlight", "pointer-events: auto", "opacity: 1"} {
- assert.Contains(t, css, want)
- }
- }
|