internal/web/funcs_test.go

main
gallery/internal/web/funcs_test.go history · blame · raw

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}