From d22446d9b92fc67ef62727fc1dd0132d66b890d8 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Fri, 1 May 2026 14:31:17 -0400 Subject: [PATCH] fix(library): sync allowed extensions across service, schema, and tests Add .epub and .pdf to comics type, add .pdf to manga type, and ensure avif/tiff/tif extensions are consistently included in manga across all layers. Update test fixtures to match the canonical extension lists. --- cmd/server/tests/library_test.go | 4 ++-- cmd/server/tests/library_test_comprehensive_test.go | 2 +- database/schema/schema.sql | 2 +- internal/services/library_service.go | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cmd/server/tests/library_test.go b/cmd/server/tests/library_test.go index cbbc58a..0cad64e 100644 --- a/cmd/server/tests/library_test.go +++ b/cmd/server/tests/library_test.go @@ -182,13 +182,13 @@ func TestLibraryTypesResponse(t *testing.T) { "id": "test-id-2", "name": "comics", "description": "Comic book archives and image formats", - "allowed_extensions": []string{".cbz", ".cbr", ".cb7", ".cbt", ".pdf"}, + "allowed_extensions": []string{".cbz", ".cbr", ".cb7", ".cbt", ".epub", ".pdf"}, }, { "id": "test-id-3", "name": "manga", "description": "Manga files including archives and image folders", - "allowed_extensions": []string{".cbz", ".cbr", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp"}, + "allowed_extensions": []string{".cbz", ".cbr", ".epub", ".pdf", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp", ".avif", ".tiff", ".tif"}, }, } diff --git a/cmd/server/tests/library_test_comprehensive_test.go b/cmd/server/tests/library_test_comprehensive_test.go index d1beec2..d5b7e30 100644 --- a/cmd/server/tests/library_test_comprehensive_test.go +++ b/cmd/server/tests/library_test_comprehensive_test.go @@ -556,7 +556,7 @@ func TestLibraryTypes(t *testing.T) { "id": uuid.New().String(), "name": "comics", "description": "Comic book archives and image formats", - "allowed_extensions": []string{".cbz", ".cbr", ".pdf"}, + "allowed_extensions": []string{".cbz", ".cbr", ".cb7", ".cbt", ".epub", ".pdf"}, }, } w.WriteHeader(http.StatusOK) diff --git a/database/schema/schema.sql b/database/schema/schema.sql index e0c445b..44a5178 100644 --- a/database/schema/schema.sql +++ b/database/schema/schema.sql @@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS library_types ( INSERT INTO library_types (name, description, allowed_extensions) VALUES ('ebooks', 'Ebook files including EPUB, PDF, MOBI, etc.', ARRAY['.epub', '.pdf', '.mobi', '.azw', '.azw3', '.txt', '.rtf', '.doc', '.docx', '.lit', '.fb2', '.pdb']), ('comics', 'Comic book archives and image formats', ARRAY['.cbz', '.cbr', '.cb7', '.cbt', '.epub', '.pdf']), -('manga', 'Manga files including archives and image folders', ARRAY['.cbz', '.cbr', '.epub', '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp']) +('manga', 'Manga files including archives and image folders', ARRAY['.cbz', '.cbr', '.epub', '.pdf', '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp', '.avif', '.tiff', '.tif']) ON CONFLICT (name) DO NOTHING; -- Create users table diff --git a/internal/services/library_service.go b/internal/services/library_service.go index e7b3903..0ad61dd 100644 --- a/internal/services/library_service.go +++ b/internal/services/library_service.go @@ -30,8 +30,8 @@ const ( var AllowedExtensions = map[string][]string{ LibraryTypeEbooks: {".epub", ".pdf", ".mobi", ".azw", ".azw3", ".txt", ".rtf", ".doc", ".docx", ".lit", ".fb2", ".pdb"}, - LibraryTypeComics: {".cbz", ".cbr", ".cb7", ".cbt", ".pdf"}, - LibraryTypeManga: {".cbz", ".cbr", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp", ".avif", ".tiff", ".tif"}, + LibraryTypeComics: {".cbz", ".cbr", ".cb7", ".cbt", ".epub", ".pdf"}, + LibraryTypeManga: {".cbz", ".cbr", ".epub", ".pdf", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp", ".avif", ".tiff", ".tif"}, } var MimeTypes = map[string]string{