From 782cc0a31a866519fb7c3e18a523b347d3e40238 Mon Sep 17 00:00:00 2001
From: Armand Philippot <git@armandphilippot.com>
Date: Mon, 30 May 2022 19:27:21 +0200
Subject: chore: replace Checkbox component with a BooleanField component

Checkbox and radio buttons are working the same way so I decided to
group them in a same component.
---
 src/components/atoms/forms/boolean-field.test.tsx | 60 +++++++++++++++++++++++
 1 file changed, 60 insertions(+)
 create mode 100644 src/components/atoms/forms/boolean-field.test.tsx

(limited to 'src/components/atoms/forms/boolean-field.test.tsx')

diff --git a/src/components/atoms/forms/boolean-field.test.tsx b/src/components/atoms/forms/boolean-field.test.tsx
new file mode 100644
index 0000000..95ec4b1
--- /dev/null
+++ b/src/components/atoms/forms/boolean-field.test.tsx
@@ -0,0 +1,60 @@
+import { render, screen } from '@test-utils';
+import BooleanField from './boolean-field';
+
+describe('BooleanField', () => {
+  it('renders an unchecked checkbox', () => {
+    render(
+      <BooleanField
+        checked={false}
+        id="jest-checkbox"
+        name="jest-checkbox"
+        onChange={() => null}
+        type="checkbox"
+        value="checkbox"
+      />
+    );
+    expect(screen.getByRole('checkbox')).not.toBeChecked();
+  });
+
+  it('renders a checked checkbox', () => {
+    render(
+      <BooleanField
+        checked={true}
+        id="jest-checkbox"
+        name="jest-checkbox"
+        onChange={() => null}
+        type="checkbox"
+        value="checkbox"
+      />
+    );
+    expect(screen.getByRole('checkbox')).toBeChecked();
+  });
+
+  it('renders an unchecked radio', () => {
+    render(
+      <BooleanField
+        checked={false}
+        id="jest-radio"
+        name="jest-radio"
+        onChange={() => null}
+        type="radio"
+        value="radio"
+      />
+    );
+    expect(screen.getByRole('radio')).not.toBeChecked();
+  });
+
+  it('renders a checked radio', () => {
+    render(
+      <BooleanField
+        checked={true}
+        id="jest-radio"
+        name="jest-radio"
+        onChange={() => null}
+        type="radio"
+        value="radio"
+      />
+    );
+    expect(screen.getByRole('radio')).toBeChecked();
+  });
+});
-- 
cgit v1.2.3

