diff --git a/__tests__/usecase/searchCourse.test.ts b/__tests__/usecase/searchCourse.test.ts index d19e2aa..fe0cf44 100644 --- a/__tests__/usecase/searchCourse.test.ts +++ b/__tests__/usecase/searchCourse.test.ts @@ -215,6 +215,33 @@ test('不正なlimit', () => { ).rejects.toThrow(InvalidArgumentError) }) +test('キーワード指定&科目番号指定&時間割', async () => { + const res = await searchCourseUseCase({ + year: 2020, + keywords: ['科学'], + codes: ['FF'], + timetable: { + FallA: { + Thu: [false, true, false, false, false, false, false, false, false], + }, + FallB: { + Thu: [false, true, false, false, false, false, false, false, false], + }, + FallC: { + Thu: [false, true, false, false, false, false, false, false, false], + }, + }, + searchMode: SearchMode.Contain, + offset: 0, + limit: 30, + }) + expect(res.length > 0).toBe(true) + expect(res.length <= 30).toBe(true) + res.forEach((c) => + expect(c.name.includes('科学') && c.code.startsWith('FF')).toBe(true) + ) +}) + test('時間割 contain1', async () => { const res = await searchCourseUseCase({ year: 2020, diff --git a/src/usecase/searchCourse.ts b/src/usecase/searchCourse.ts index 1af99e0..3fb1306 100644 --- a/src/usecase/searchCourse.ts +++ b/src/usecase/searchCourse.ts @@ -38,7 +38,7 @@ const keywordCodeQuery = (keywords: string[], codes: string[]): string => { ifstr(codes.length > 0, 'courses.code ~* :codes'), ] .filter(notNull) - .join('and') + .join(' and ') // 最後に()で囲んでandを足す // 出力例 (courses.name ~* :names and courses.code ~* :codes) and