package app import ( "strings" "testing" ) func TestExtractReferencedImageAssetIDsFromMarkdown_DeduplicatesInOrder(t *testing.T) { t.Parallel() markdown := strings.Join([]string{ `before`, `

`, `

`, `

`, }, "\n") got := extractReferencedImageAssetIDsFromMarkdown(markdown) want := []int64{42, 7} if len(got) != len(want) { t.Fatalf("expected %d ids, got %d (%v)", len(want), len(got), got) } for idx := range want { if got[idx] != want[idx] { t.Fatalf("expected ids %v, got %v", want, got) } } } func TestStripInactiveImageAssetIDsFromMarkdown_RemovesOnlyInactiveAttrs(t *testing.T) { t.Parallel() markdown := strings.Join([]string{ `

`, `

`, }, "\n") got := stripInactiveImageAssetIDsFromMarkdown(markdown, map[int64]struct{}{ 12: {}, }) if !strings.Contains(got, `data-asset-id="12"`) { t.Fatalf("expected active asset id to remain, got %q", got) } if strings.Contains(got, `data-asset-id="34"`) { t.Fatalf("expected inactive asset id to be removed, got %q", got) } if !strings.Contains(got, `inactive.webp`) { t.Fatalf("expected image markup to remain after stripping asset id, got %q", got) } } func TestStripInactiveImageAssetIDsFromMarkdown_RemovesAllAttrsWhenNoAssetsAreActive(t *testing.T) { t.Parallel() markdown := `

` got := stripInactiveImageAssetIDsFromMarkdown(markdown, map[int64]struct{}{}) if strings.Contains(got, `data-asset-id="88"`) { t.Fatalf("expected inactive asset id to be removed, got %q", got) } if !strings.Contains(got, `cover.webp`) { t.Fatalf("expected image src to remain, got %q", got) } }