From 6dc54d9f9bbd8019da460424f0cb6b4fc9ff4d48 Mon Sep 17 00:00:00 2001 From: Jake Bromberg Date: Wed, 11 Mar 2026 14:47:58 -0700 Subject: [PATCH] fix: rename album_title query param to album_name to match API spec The GET /library endpoint accepted album_title as a query parameter, but the OpenAPI spec (CatalogSearchParams) and the dj-site frontend both send album_name. This caused album searches to be silently ignored. Closes #233 --- apps/backend/controllers/library.controller.ts | 8 ++++---- tests/integration/library.spec.js | 4 ++-- tests/utils/library_util.js | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/backend/controllers/library.controller.ts b/apps/backend/controllers/library.controller.ts index 5af246c..1cb7181 100644 --- a/apps/backend/controllers/library.controller.ts +++ b/apps/backend/controllers/library.controller.ts @@ -79,7 +79,7 @@ export const addAlbum: RequestHandler = async (req: Request { }); test('searches by album title', async () => { - const res = await auth.get('/library').query({ album_title: 'Keep it Like a Secret' }).expect(200); + const res = await auth.get('/library').query({ album_name: 'Keep it Like a Secret' }).expect(200); expectArray(res); expect(res.body.length).toBeGreaterThan(0); @@ -43,7 +43,7 @@ describe('Library Catalog', () => { test('searches by both artist and album', async () => { const res = await auth .get('/library') - .query({ artist_name: 'Built to Spill', album_title: 'Keep it' }) + .query({ artist_name: 'Built to Spill', album_name: 'Keep it' }) .expect(200); expectArray(res); diff --git a/tests/utils/library_util.js b/tests/utils/library_util.js index b093af5..e93c5c7 100644 --- a/tests/utils/library_util.js +++ b/tests/utils/library_util.js @@ -164,7 +164,7 @@ exports.getAlbumInfo = async (album_id, access_token) => { * * @param {object} searchParams - Search parameters * @param {string} [searchParams.artist_name] - Artist name - * @param {string} [searchParams.album_title] - Album title + * @param {string} [searchParams.album_name] - Album name * @param {number} [searchParams.n] - Number of results * @param {string} access_token - Authorization token * @returns {Promise} Search results @@ -172,7 +172,7 @@ exports.getAlbumInfo = async (album_id, access_token) => { exports.searchLibrary = async (searchParams, access_token) => { const params = new URLSearchParams(); if (searchParams.artist_name) params.append('artist_name', searchParams.artist_name); - if (searchParams.album_title) params.append('album_title', searchParams.album_title); + if (searchParams.album_name) params.append('album_name', searchParams.album_name); if (searchParams.n) params.append('n', searchParams.n.toString()); const res = await fetch(`${url}/library?${params.toString()}`, {