From f5bee11d72a48435ac13759c573a9eab0cf6ad74 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Wed, 13 Mar 2024 11:11:55 -0700 Subject: [PATCH] consider academic year filter when tallying up search results by school. --- .../frontend/app/components/global-search.js | 4 ++-- .../components/global-search-test.js | 21 +++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/frontend/app/components/global-search.js b/packages/frontend/app/components/global-search.js index 26013c0757..03c6bf4341 100644 --- a/packages/frontend/app/components/global-search.js +++ b/packages/frontend/app/components/global-search.js @@ -63,7 +63,7 @@ export default class GlobalSearchComponent extends Component { } get schoolOptions() { - if (this.results.length && this.schools.length) { + if (this.yearFilteredResults.length && this.schools.length) { const emptySchools = sortBy( this.schools.map(({ id, title }) => { return { @@ -74,7 +74,7 @@ export default class GlobalSearchComponent extends Component { }), 'title', ); - const options = this.results.reduce((set, course) => { + const options = this.yearFilteredResults.reduce((set, course) => { const schoolOption = findBy(set, 'title', course.school); schoolOption.results++; diff --git a/packages/frontend/tests/integration/components/global-search-test.js b/packages/frontend/tests/integration/components/global-search-test.js index 3db0ede4d1..2c8da21634 100644 --- a/packages/frontend/tests/integration/components/global-search-test.js +++ b/packages/frontend/tests/integration/components/global-search-test.js @@ -71,8 +71,9 @@ module('Integration | Component | global-search', function (hooks) { }); test('academic year filter works properly', async function (assert) { - assert.expect(16); - + assert.expect(28); + this.server.create('school', { title: 'Medicine' }); + this.server.create('school', { title: 'Pharmacy' }); this.server.get('api/search/v1/curriculum', () => { return { results: { @@ -82,21 +83,25 @@ module('Integration | Component | global-search', function (hooks) { title: 'Course 1', year: 2019, sessions: [], + school: 'Medicine', }, { title: 'Course 2', year: 2020, sessions: [], + school: 'Pharmacy', }, { title: 'Course 3', year: 2021, sessions: [], + school: 'Pharmacy', }, { title: 'Course 4', year: 2021, sessions: [], + school: 'Medicine', }, ], }, @@ -123,18 +128,30 @@ module('Integration | Component | global-search', function (hooks) { assert.strictEqual(component.searchResults[1].courseTitle, '2020 Course 2'); assert.strictEqual(component.searchResults[2].courseTitle, '2021 Course 3'); assert.strictEqual(component.searchResults[3].courseTitle, '2021 Course 4'); + assert.strictEqual(component.schoolFilters.length, 2); + assert.strictEqual(component.schoolFilters[0].school, 'Medicine (2)'); + assert.strictEqual(component.schoolFilters[1].school, 'Pharmacy (2)'); await component.selectAcademicYear('2021'); assert.strictEqual(component.searchResults.length, 2); assert.strictEqual(component.searchResults[0].courseTitle, '2021 Course 3'); assert.strictEqual(component.searchResults[1].courseTitle, '2021 Course 4'); + assert.strictEqual(component.schoolFilters.length, 2); + assert.strictEqual(component.schoolFilters[0].school, 'Medicine (1)'); + assert.strictEqual(component.schoolFilters[1].school, 'Pharmacy (1)'); await component.selectAcademicYear('2020'); assert.strictEqual(component.academicYear, '2020'); assert.strictEqual(component.searchResults.length, 1); assert.strictEqual(component.searchResults[0].courseTitle, '2020 Course 2'); + assert.strictEqual(component.schoolFilters.length, 2); + assert.strictEqual(component.schoolFilters[0].school, 'Medicine (0)'); + assert.strictEqual(component.schoolFilters[1].school, 'Pharmacy (1)'); await component.selectAcademicYear('2019'); assert.strictEqual(component.academicYear, '2019'); assert.strictEqual(component.searchResults.length, 1); assert.strictEqual(component.searchResults[0].courseTitle, '2019 Course 1'); + assert.strictEqual(component.schoolFilters.length, 2); + assert.strictEqual(component.schoolFilters[0].school, 'Medicine (1)'); + assert.strictEqual(component.schoolFilters[1].school, 'Pharmacy (0)'); }); test('school filter works properly', async function (assert) {