diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-04 08:26:08 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-04 08:26:08 +0300 |
| commit | 81737024f1d39c022d7901de380a5d87df70d4b4 (patch) | |
| tree | 3c7a6b79cdb951a30a00e9da9e783a7bd3e409cc /internal/scanner/scanner_test.go | |
| parent | b15b271dd350e97396f0a7096c71dabc045c5d83 (diff) | |
task 9: Centralize file extension and media type mappings in internal/mediatype
Create a new internal/mediatype package with a single source of truth for:
- Extension-to-media-type mappings (TypeForExt)
- Extension-to-MIME mappings (MIMETypeForExt)
- Supported extension checks (IsSupportedExt, IsImageExt, IsCoverImageExt)
Replace duplicated logic across:
- internal/service/service.go (supportedExtensions, guessMediaType)
- internal/scanner/scanner.go (mediaExtensions, imageExtensions, mediaTypeFromExt)
- internal/api/handlers.go (probe.MimeTypeForFilename)
- internal/probe/probe.go (imageExtensions, isImagePath)
- internal/probe/remux.go (MimeTypeForFilename)
Divergent defaults unified: both scanner and service now default unknown
extensions to video (model.MediaTypeVideo) via mediatype.TypeForExt.
Update tests to use mediatype package and remove obsolete scanner tests.
Update AGENTS.md to reflect the new package.
Diffstat (limited to 'internal/scanner/scanner_test.go')
| -rw-r--r-- | internal/scanner/scanner_test.go | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index 2d5d7c8..ec837bd 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -413,39 +413,4 @@ func TestFSScanner_Scan(t *testing.T) { }) } -func Test_isMediaFile(t *testing.T) { - cases := []struct { - path string - want bool - }{ - {"movie.mp4", true}, - {"song.MP3", true}, - {"archive.zip", false}, - {"photo.jpg", true}, - {"", false}, - } - for _, c := range cases { - if got := isMediaFile(c.path); got != c.want { - t.Errorf("isMediaFile(%q) = %v, want %v", c.path, got, c.want) - } - } -} -func Test_mediaTypeFromExt(t *testing.T) { - cases := []struct { - path string - want model.MediaType - }{ - {"a.mp4", model.MediaTypeVideo}, - {"a.mkv", model.MediaTypeVideo}, - {"a.mp3", model.MediaTypeAudio}, - {"a.FLAC", model.MediaTypeAudio}, - {"a.jpg", model.MediaTypeImage}, - {"a.png", model.MediaTypeImage}, - } - for _, c := range cases { - if got := mediaTypeFromExt(c.path); got != c.want { - t.Errorf("mediaTypeFromExt(%q) = %v, want %v", c.path, got, c.want) - } - } -} |
