diff --git a/src/routes/getChapterNames.ts b/src/routes/getChapterNames.ts index c40030a..e78cc84 100644 --- a/src/routes/getChapterNames.ts +++ b/src/routes/getChapterNames.ts @@ -27,10 +27,11 @@ export async function getChapterNames(req: Request, res: Response): Promise= 0.1 GROUP BY "description" ORDER BY SUM("votes"), similarity("description", ?) DESC LIMIT 5;` - , [channelID, description]) as { description: string }[]; + , [channelID, description, description]) as { description: string }[]; if (descriptions?.length > 0) { return res.status(200).json(descriptions.map(d => ({ diff --git a/test/cases/getChapterNames.ts b/test/cases/getChapterNames.ts index 01bb7c5..df386ac 100644 --- a/test/cases/getChapterNames.ts +++ b/test/cases/getChapterNames.ts @@ -16,17 +16,18 @@ describe("getChapterNames", function () { "Weird name", "A different one", "Something else", + "Weirder name", ]; - const nameSearch = (query: string, expected: string): Promise => { + const nameSearch = (query: string, expected: string | null, expectedResults: number): Promise => { const expectedData = [{ description: expected }]; return client.get(`${endpoint}?description=${query}&channelID=${chapterChannelID}`) .then(res => { - assert.strictEqual(res.status, 200); - assert.strictEqual(res.data.length, chapterNames.length); - assert.ok(partialDeepEquals(res.data, expectedData)); + assert.strictEqual(res.status, expectedResults == 0 ? 404 : 200); + assert.strictEqual(res.data.length, expectedResults); + if (expected != null) assert.ok(partialDeepEquals(res.data, expectedData)); }); }; @@ -35,11 +36,13 @@ describe("getChapterNames", function () { await insertChapter(db, chapterNames[0], { videoID: chapterNamesVid1, startTime: 60, endTime: 80 }); await insertChapter(db, chapterNames[1], { videoID: chapterNamesVid1, startTime: 70, endTime: 75 }); await insertChapter(db, chapterNames[2], { videoID: chapterNamesVid1, startTime: 71, endTime: 76 }); + await insertChapter(db, chapterNames[3], { videoID: chapterNamesVid1, startTime: 72, endTime: 77 }); await insertVideoInfo(db, chapterNamesVid1, chapterChannelID); }); - it("Search for 'weird'", () => nameSearch("weird", chapterNames[0])); - it("Search for 'different'", () => nameSearch("different", chapterNames[1])); - it("Search for 'something'", () => nameSearch("something", chapterNames[2])); -}); \ No newline at end of file + it("Search for 'weird' (2 results)", () => nameSearch("weird", chapterNames[0], 2)); + it("Search for 'different' (1 result)", () => nameSearch("different", chapterNames[1], 1)); + it("Search for 'something' (1 result)", () => nameSearch("something", chapterNames[2], 1)); + it("Search for 'unrelated' (0 result)", () => nameSearch("unrelated", null, 0)); +});