diff --git a/src/components/UI/VacancyStatus/VacancyStatus.test.js b/src/components/UI/VacancyStatus/VacancyStatus.test.js
new file mode 100644
index 00000000..3f3dc444
--- /dev/null
+++ b/src/components/UI/VacancyStatus/VacancyStatus.test.js
@@ -0,0 +1,111 @@
+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', () => {
+ // 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 Chair 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 Individual Scoring Complete', () => {
+ 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 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');
+ });
+ });
+});
\ No newline at end of file