chore: redux transform hooks

This commit is contained in:
Ben Warzeski
2023-05-22 19:50:46 +00:00
parent 64cfcd92a2
commit 6fa10ca0d3
2 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
import { StrictDict } from 'utils';
import selectors from 'data/selectors';
export const grades = StrictDict({
subsectionGrade: ({ gradeFormat, subsection }) => () => (
selectors.grades.subsectionGrade[gradeFormat](subsection)
),
roundGrade: selectors.grades.roundGrade,
});
export default StrictDict({
grades,
});

View File

@@ -0,0 +1,38 @@
import selectors from 'data/selectors';
import { GradeFormats } from 'data/constants/grades';
import transforms from './transforms';
jest.mock('data/selectors', () => {
const {
GradeFormats: { absolute, percent },
} = jest.requireActual('data/constants/grades');
return {
grades: {
subsectionGrade: {
[absolute]: jest.fn(v => ({ absolute: v })),
[percent]: jest.fn(v => ({ percent: v })),
},
roundGrade: jest.fn(),
},
};
});
describe('redux transforms', () => {
describe('grades transforms', () => {
test('subsectionGrade', () => {
const subsection = 'test-subsection';
expect(transforms.grades.subsectionGrade({
gradeFormat: GradeFormats.absolute,
subsection,
})()).toEqual(selectors.grades.subsectionGrade.absolute(subsection));
expect(transforms.grades.subsectionGrade({
gradeFormat: GradeFormats.percent,
subsection,
})()).toEqual(selectors.grades.subsectionGrade.percent(subsection));
});
test('roundGrade', () => {
expect(transforms.grades.roundGrade).toEqual(selectors.grades.roundGrade);
});
});
});