From 0780b1c981ab7ccc4ca77d0bc63521c330d1521b Mon Sep 17 00:00:00 2001 From: Olivier Germain Date: Thu, 14 Nov 2024 11:25:26 -0500 Subject: [PATCH] feat(checkbox, checkbox-group): add required state for checkboxes --- .../checkbox-group/checkbox-group.test.tsx | 32 +++++ .../checkbox-group.test.tsx.snap | 16 +++ .../checkbox-group/checkbox-group.tsx | 50 +++++++- .../src/components/checkbox/checkbox.test.tsx | 54 +++++++++ .../checkbox/checkbox.test.tsx.snap | 14 ++- .../src/components/checkbox/checkbox.tsx | 111 +++++++++++++----- .../src/components/table/table.test.tsx.snap | 16 +++ packages/react/src/i18n/translations.ts | 12 ++ .../stories/checkbox-group.stories.tsx | 21 ++++ packages/storybook/stories/checkbox.mdx | 2 + .../storybook/stories/checkbox.stories.tsx | 2 + 11 files changed, 298 insertions(+), 32 deletions(-) diff --git a/packages/react/src/components/checkbox-group/checkbox-group.test.tsx b/packages/react/src/components/checkbox-group/checkbox-group.test.tsx index 3e9012dc1a..e9e6968886 100644 --- a/packages/react/src/components/checkbox-group/checkbox-group.test.tsx +++ b/packages/react/src/components/checkbox-group/checkbox-group.test.tsx @@ -45,4 +45,36 @@ describe('Checkbox', () => { expect(tree).toMatchSnapshot(); }); + + test('should display warning message if input is invalid and not checked', () => { + const wrapper = mountWithTheme( + , + ); + + const warning = wrapper.find('checkbox-group-test_validationAlert'); + expect(warning).toBeDefined(); + }); + + test('should hide warning message if group is invalid and one input is checked', () => { + const wrapper = mountWithTheme( + , + ); + + wrapper.find('input').at(0).simulate('change'); + + const warningPostCheck = wrapper.find('checkbox-group-test_validationAlert'); + expect(warningPostCheck).toEqual({}); + }); }); diff --git a/packages/react/src/components/checkbox-group/checkbox-group.test.tsx.snap b/packages/react/src/components/checkbox-group/checkbox-group.test.tsx.snap index 06fbc61189..e2f7e30167 100644 --- a/packages/react/src/components/checkbox-group/checkbox-group.test.tsx.snap +++ b/packages/react/src/components/checkbox-group/checkbox-group.test.tsx.snap @@ -112,10 +112,14 @@ exports[`Checkbox Matches the snapshot 1`] = `