From 85607d7e9712613acea11869fb1846893bee7cf2 Mon Sep 17 00:00:00 2001 From: Eugene Dyudyunov Date: Tue, 24 Jan 2023 20:50:57 +0200 Subject: [PATCH] fix: correct grades minmax values (#277) When the assignment type is selected, but assignment id isn't - the courseGradeMax, courseGradeMin assignmentGradeMax and assignmentGradeMin values become nullable. This leads to incorrect filtering results. Fix: - Preserve the courseGradeMax and courseGradeMin values in such case; --- src/data/selectors/index.js | 13 +++---------- src/data/selectors/index.test.js | 6 +++--- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/data/selectors/index.js b/src/data/selectors/index.js index 096d81a..fe8f04e 100644 --- a/src/data/selectors/index.js +++ b/src/data/selectors/index.js @@ -91,17 +91,10 @@ export const formattedGradeLimits = (state) => { const { assignmentGradeMax, assignmentGradeMin } = app.assignmentGradeLimits(state); const { courseGradeMax, courseGradeMin } = app.courseGradeLimits(state); const hasAssignment = filters.selectedAssignmentId(state) !== undefined; - if (!hasAssignment) { - return { - assignmentGradeMax: null, - assignmentGradeMin: null, - courseGradeMax: null, - courseGradeMin: null, - }; - } + return { - assignmentGradeMax: assignmentGradeMax === maxGrade ? null : assignmentGradeMax, - assignmentGradeMin: assignmentGradeMin === minGrade ? null : assignmentGradeMin, + assignmentGradeMax: (assignmentGradeMax === maxGrade || !hasAssignment) ? null : assignmentGradeMax, + assignmentGradeMin: (assignmentGradeMin === minGrade || !hasAssignment) ? null : assignmentGradeMin, courseGradeMax: courseGradeMax === maxGrade ? null : courseGradeMax, courseGradeMin: courseGradeMin === minGrade ? null : courseGradeMin, }; diff --git a/src/data/selectors/index.test.js b/src/data/selectors/index.test.js index 4c77493..138a353 100644 --- a/src/data/selectors/index.test.js +++ b/src/data/selectors/index.test.js @@ -260,15 +260,15 @@ describe('root selectors', () => { }; const grade1 = '42'; const grade2 = '3.14'; - it('returns an object of nulls if assignment is not set', () => { + it('returns an object of nullable assignmentGrades if assignment is not set', () => { mockId(undefined); mockAssgn(grade1, grade2); mockCourse(grade1, grade2); expect(selector(testState)).toEqual({ assignmentGradeMax: null, assignmentGradeMin: null, - courseGradeMax: null, - courseGradeMin: null, + courseGradeMax: '42', + courseGradeMin: '3.14', }); }); it('returns null for each extreme iff they are equal their default', () => {