internal/web/funcs_test.go
35 lines · 997 bytes
1package web
2
3import (
4 "strings"
5 "testing"
6 "time"
7
8 "gitbay.org/cmc/gallery/internal/format"
9 "gitbay.org/cmc/gallery/internal/library"
10)
11
12func TestExifLineDate(t *testing.T) {
13 it := &library.Item{Meta: format.Meta{Camera: "X-T5", Taken: time.Date(2025, 3, 14, 23, 10, 5, 0, time.UTC)}}
14 if got, want := exifLine(it), "X-T5 · 2025-03-14"; got != want {
15 t.Fatalf("exifLine = %q, want %q", got, want)
16 }
17}
18
19func TestExifLineNoDate(t *testing.T) {
20 it := &library.Item{Meta: format.Meta{Camera: "X-T5"}}
21 if got, want := exifLine(it), "X-T5"; got != want {
22 t.Fatalf("exifLine = %q, want %q", got, want)
23 }
24}
25
26func TestSrcsetStopsAtExactSourceWidth(t *testing.T) {
27 it := &library.Item{Album: "tokyo", Name: "a.jpg", Meta: format.Meta{Width: 960}}
28 got := srcset(it)
29 if n := strings.Count(got, "960w"); n != 1 {
30 t.Fatalf("srcset = %q, want exactly one 960w entry, got %d", got, n)
31 }
32 if n := strings.Count(got, ", "); n != 1 {
33 t.Fatalf("srcset = %q, want exactly two entries", got)
34 }
35}