From 24a5a3d718617c611fe74823beb845559b9af23e Mon Sep 17 00:00:00 2001 From: webbmj-nih Date: Wed, 15 Jan 2025 10:11:32 -0500 Subject: [PATCH 1/2] Added Unit Tests for VacancyStatus.js --- .../UI/VacancyStatus/VacancyStatus.test.js | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/components/UI/VacancyStatus/VacancyStatus.test.js diff --git a/src/components/UI/VacancyStatus/VacancyStatus.test.js b/src/components/UI/VacancyStatus/VacancyStatus.test.js new file mode 100644 index 00000000..037aea9c --- /dev/null +++ b/src/components/UI/VacancyStatus/VacancyStatus.test.js @@ -0,0 +1,65 @@ +import React from 'react'; +import { render } from '@testing-library/react'; +import VacancyStatus from './VacancyStatus'; + +// Mock window.matchMedia +beforeEach(() => { + window.matchMedia = window.matchMedia || function () { + return { + matches: false, + addListener: function () { }, + removeListener: function () { } + }; + }; +}); + +describe('VacancyStatus Component', () => { + it('renders without crashing', () => { + const { container } = render(); + expect(container).toBeInTheDocument(); + }); + + it('displays the correct step for Triage', () => { + const { getByText } = render(); + expect(getByText('Triage')).toBeInTheDocument(); + }); + + it('displays the correct step for Individual Scoring in Progress', () => { + const { getByText } = render(); + expect(getByText('Individual Scoring')).toBeInTheDocument(); + }); + + it('displays the correct step for Committee Review in Progress', () => { + const { getByText } = render(); + expect(getByText('Committee Review')).toBeInTheDocument(); + }); + + it('displays the correct step for Voting Complete', () => { + const { getByText } = render(); + expect(getByText('Voting Complete')).toBeInTheDocument(); + }); + + it('sets the correct current step for Triage', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[0]).toHaveClass('ant-steps-item-active'); + }); + + it('sets the correct current step for Individual Scoring in Progress', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[1]).toHaveClass('ant-steps-item-active'); + }); + + it('sets the correct current step for Committee Review in Progress', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[2]).toHaveClass('ant-steps-item-active'); + }); + + it('sets the correct current step for Voting Complete', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[3]).toHaveClass('ant-steps-item-active'); + }); +}); \ No newline at end of file From e9370386952cfb2d699d19144566db8575a1f3a7 Mon Sep 17 00:00:00 2001 From: webbmj-nih Date: Tue, 21 Jan 2025 10:53:30 -0500 Subject: [PATCH 2/2] Added Additional Tests for VacancyStatus.js coverage --- .../UI/VacancyStatus/VacancyStatus.test.js | 122 ++++++++++++------ 1 file changed, 84 insertions(+), 38 deletions(-) diff --git a/src/components/UI/VacancyStatus/VacancyStatus.test.js b/src/components/UI/VacancyStatus/VacancyStatus.test.js index 037aea9c..3f3dc444 100644 --- a/src/components/UI/VacancyStatus/VacancyStatus.test.js +++ b/src/components/UI/VacancyStatus/VacancyStatus.test.js @@ -14,52 +14,98 @@ beforeEach(() => { }); describe('VacancyStatus Component', () => { - it('renders without crashing', () => { - const { container } = render(); - expect(container).toBeInTheDocument(); + // Mock window.matchMedia + beforeEach(() => { + window.matchMedia = window.matchMedia || function () { + return { + matches: false, + addListener: function () { }, + removeListener: function () { } + }; + }; }); - it('displays the correct step for Triage', () => { - const { getByText } = render(); - expect(getByText('Triage')).toBeInTheDocument(); - }); + describe('VacancyStatus Component', () => { + it('renders without crashing', () => { + const { container } = render(); + expect(container).toBeInTheDocument(); + }); - it('displays the correct step for Individual Scoring in Progress', () => { - const { getByText } = render(); - expect(getByText('Individual Scoring')).toBeInTheDocument(); - }); + it('displays the correct step for Triage', () => { + const { getByText } = render(); + expect(getByText('Triage')).toBeInTheDocument(); + }); - it('displays the correct step for Committee Review in Progress', () => { - const { getByText } = render(); - expect(getByText('Committee Review')).toBeInTheDocument(); - }); + it('displays the correct step for Chair Triage', () => { + const { getByText } = render(); + expect(getByText('Triage')).toBeInTheDocument(); + }); - it('displays the correct step for Voting Complete', () => { - const { getByText } = render(); - expect(getByText('Voting Complete')).toBeInTheDocument(); - }); + it('displays the correct step for Individual Scoring in Progress', () => { + const { getByText } = render(); + expect(getByText('Individual Scoring')).toBeInTheDocument(); + }); - it('sets the correct current step for Triage', () => { - const { container } = render(); - const steps = container.querySelectorAll('.ant-steps-item'); - expect(steps[0]).toHaveClass('ant-steps-item-active'); - }); + it('displays the correct step for Individual Scoring Complete', () => { + const { getByText } = render(); + expect(getByText('Individual Scoring')).toBeInTheDocument(); + }); - it('sets the correct current step for Individual Scoring in Progress', () => { - const { container } = render(); - const steps = container.querySelectorAll('.ant-steps-item'); - expect(steps[1]).toHaveClass('ant-steps-item-active'); - }); + it('displays the correct step for Committee Review in Progress', () => { + const { getByText } = render(); + expect(getByText('Committee Review')).toBeInTheDocument(); + }); - it('sets the correct current step for Committee Review in Progress', () => { - const { container } = render(); - const steps = container.querySelectorAll('.ant-steps-item'); - expect(steps[2]).toHaveClass('ant-steps-item-active'); - }); + it('displays the correct step for Committee Review Complete', () => { + const { getByText } = render(); + expect(getByText('Committee Review')).toBeInTheDocument(); + }); + + it('displays the correct step for Voting Complete', () => { + const { getByText } = render(); + expect(getByText('Voting Complete')).toBeInTheDocument(); + }); + + it('sets the correct current step for Triage', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[0]).toHaveClass('ant-steps-item-active'); + }); + + it('sets the correct current step for Chair Triage', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[0]).toHaveClass('ant-steps-item-active'); + }); + + it('sets the correct current step for Individual Scoring in Progress', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[1]).toHaveClass('ant-steps-item-active'); + }); + + it('sets the correct current step for Individual Scoring Complete', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[1]).toHaveClass('ant-steps-item-active'); + }); + + it('sets the correct current step for Committee Review in Progress', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[2]).toHaveClass('ant-steps-item-active'); + }); + + it('sets the correct current step for Committee Review Complete', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[2]).toHaveClass('ant-steps-item-active'); + }); - it('sets the correct current step for Voting Complete', () => { - const { container } = render(); - const steps = container.querySelectorAll('.ant-steps-item'); - expect(steps[3]).toHaveClass('ant-steps-item-active'); + it('sets the correct current step for Voting Complete', () => { + const { container } = render(); + const steps = container.querySelectorAll('.ant-steps-item'); + expect(steps[3]).toHaveClass('ant-steps-item-active'); + }); }); }); \ No newline at end of file