feat: update project

This commit is contained in:
Philippe Torrel
2026-09-01 08:47:49 +02:00
parent 0bdbf245ee
commit 2aef8b91bd
10 changed files with 491 additions and 123 deletions

View File

@@ -18,17 +18,13 @@ describe('GoalSetting Component', () => {
handleChange={() => {}}
handleCheckboxChange={() => {}}
errors={{}}
/>
/>,
);
// Use getByRole to target the fieldset for "What are your goals?"
expect(
screen.getByRole('group', { name: /What are your goals\?/i })
).toBeInTheDocument();
expect(screen.getByRole('group', { name: /What are your goals\?/i })).toBeInTheDocument();
expect(
screen.getByLabelText(/How much time can you commit each day\?/i)
).toBeInTheDocument();
expect(screen.getByLabelText(/How much time can you commit each day\?/i)).toBeInTheDocument();
});
it('displays validation errors for empty fields', () => {
@@ -38,21 +34,10 @@ describe('GoalSetting Component', () => {
};
const errors = validate(formData, step);
render(
<GoalSetting
formData={formData}
handleChange={() => {}}
handleCheckboxChange={() => {}}
errors={errors}
/>
);
render(<GoalSetting formData={formData} handleChange={() => {}} handleCheckboxChange={() => {}} errors={errors} />);
expect(
screen.getByText(/At least one goal is required/i)
).toBeInTheDocument();
expect(
screen.getByText(/Time Commitment is required/i)
).toBeInTheDocument();
expect(screen.getByText(/At least one goal is required/i)).toBeInTheDocument();
expect(screen.getByText(/Time Commitment is required/i)).toBeInTheDocument();
});
it('displays no validation errors for valid data', () => {
@@ -62,14 +47,7 @@ describe('GoalSetting Component', () => {
};
const errors = validate(formData, step);
render(
<GoalSetting
formData={formData}
handleChange={() => {}}
handleCheckboxChange={() => {}}
errors={errors}
/>
);
render(<GoalSetting formData={formData} handleChange={() => {}} handleCheckboxChange={() => {}} errors={errors} />);
expect(screen.queryByText(/is required/i)).not.toBeInTheDocument();
});
@@ -79,9 +57,7 @@ describe('GoalSetting Component', () => {
let errors = validate(formData, step);
const handleCheckboxChangeTest = (field, id, isChecked) => {
const updatedGoals = isChecked
? [...formData[field], id]
: formData[field].filter((goal) => goal !== id);
const updatedGoals = isChecked ? [...formData[field], id] : formData[field].filter((goal) => goal !== id);
formData = { ...formData, [field]: updatedGoals };
errors = validate(formData, step);
@@ -93,7 +69,7 @@ describe('GoalSetting Component', () => {
handleChange={() => {}}
handleCheckboxChange={handleCheckboxChangeTest}
errors={errors}
/>
/>,
);
const weightLossCheckbox = screen.getByLabelText(/Weight Loss/i);
@@ -106,13 +82,11 @@ describe('GoalSetting Component', () => {
handleChange={() => {}}
handleCheckboxChange={handleCheckboxChangeTest}
errors={errors}
/>
/>,
);
expect(weightLossCheckbox).toBeChecked();
expect(
screen.queryByText(/At least one goal is required/i)
).not.toBeInTheDocument();
expect(screen.queryByText(/At least one goal is required/i)).not.toBeInTheDocument();
await userEvent.click(muscleGainCheckbox);
rerender(
@@ -121,7 +95,7 @@ describe('GoalSetting Component', () => {
handleChange={() => {}}
handleCheckboxChange={handleCheckboxChangeTest}
errors={errors}
/>
/>,
);
expect(muscleGainCheckbox).toBeChecked();
@@ -141,33 +115,25 @@ describe('GoalSetting Component', () => {
const { rerender } = render(
<GoalSetting
formData={formData}
handleChange={({ target }) =>
handleChangeTest(target.name, target.value)
}
handleChange={({ target }) => handleChangeTest(target.name, target.value)}
handleCheckboxChange={() => {}}
errors={errors}
/>
/>,
);
const timeCommitmentSelect = screen.getByLabelText(
/How much time can you commit each day\?/i
);
await userEvent.selectOptions(timeCommitmentSelect, '45');
const timeCommitmentSelect = screen.getByLabelText(/How much time can you commit each day\?/i);
await userEvent.selectOptions(timeCommitmentSelect, '30');
rerender(
<GoalSetting
formData={formData}
handleChange={({ target }) =>
handleChangeTest(target.name, target.value)
}
handleChange={({ target }) => handleChangeTest(target.name, target.value)}
handleCheckboxChange={() => {}}
errors={errors}
/>
/>,
);
expect(timeCommitmentSelect).toHaveValue('30');
expect(
screen.queryByText(/Time Commitment is required/i)
).not.toBeInTheDocument();
expect(screen.queryByText(/Time Commitment is required/i)).not.toBeInTheDocument();
});
});