diff --git a/src/ops-console/pages/CampaignAssignmentTab.test.tsx b/src/ops-console/pages/CampaignAssignmentTab.test.tsx index 22b3c9e92..531df69bc 100644 --- a/src/ops-console/pages/CampaignAssignmentTab.test.tsx +++ b/src/ops-console/pages/CampaignAssignmentTab.test.tsx @@ -273,6 +273,22 @@ describe('CampaignAssignmentTab', () => { expect(screen.getByRole('progressbar')).toBeInTheDocument(); }); + it('keeps filters disabled until campaign grade metadata is loaded', async () => { + api.getAllGrades.mockResolvedValue(defaultGrades); + api.getCampaignAssignments.mockImplementation( + () => new Promise(() => undefined), + ); + + renderTab('campaign-1'); + + await waitFor(() => expect(api.getAllGrades).toHaveBeenCalled()); + screen + .getAllByRole('combobox') + .forEach((combobox) => + expect(combobox).toHaveAttribute('aria-disabled', 'true'), + ); + }); + it('renders the default grade filter value', async () => { primeApi(); diff --git a/src/ops-console/pages/CampaignAssignmentTab.tsx b/src/ops-console/pages/CampaignAssignmentTab.tsx index 8f3e000d1..8cb5b67b1 100644 --- a/src/ops-console/pages/CampaignAssignmentTab.tsx +++ b/src/ops-console/pages/CampaignAssignmentTab.tsx @@ -180,9 +180,7 @@ const CampaignAssignmentTab: React.FC = ({ subjects.flatMap((subject) => subject.gradeIds), ); - return relevantGradeIds.size === 0 - ? grades - : grades.filter((grade) => relevantGradeIds.has(grade.id)); + return grades.filter((grade) => relevantGradeIds.has(grade.id)); }, [grades, subjects]); useEffect(() => { @@ -302,7 +300,10 @@ const CampaignAssignmentTab: React.FC = ({