aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/atoms/loaders/spinner/spinner.test.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-09-29 11:47:06 +0200
committerArmand Philippot <git@armandphilippot.com>2023-10-24 12:25:00 +0200
commit81b1e0e05919eb368a66aef47adcf7738af76f29 (patch)
tree758577d3f58d7025f84bca5bac9bc0da8432deb7 /src/components/atoms/loaders/spinner/spinner.test.tsx
parent3272ac336da52364ace5ed76d8f609d4088ffc06 (diff)
refactor(components): rewrite Spinner component
* Message should be set as children * Default message is no longer available (depending on use case, the consumer might prefer aria-label instead) * It is now possible to define the message position
Diffstat (limited to 'src/components/atoms/loaders/spinner/spinner.test.tsx')
-rw-r--r--src/components/atoms/loaders/spinner/spinner.test.tsx53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/components/atoms/loaders/spinner/spinner.test.tsx b/src/components/atoms/loaders/spinner/spinner.test.tsx
new file mode 100644
index 0000000..733648b
--- /dev/null
+++ b/src/components/atoms/loaders/spinner/spinner.test.tsx
@@ -0,0 +1,53 @@
+import { describe, expect, it } from '@jest/globals';
+import { render, screen as rtlScreen } from '@testing-library/react';
+import { Spinner } from './spinner';
+
+describe('Spinner', () => {
+ it('renders a spinner', () => {
+ const { container } = render(<Spinner />);
+ expect(container).toBeInTheDocument();
+ });
+
+ it('can render a spinner with a custom message', () => {
+ const customMsg = 'Submitting';
+
+ render(<Spinner>{customMsg}</Spinner>);
+ expect(rtlScreen.getByText(customMsg)).toBeInTheDocument();
+ });
+
+ it('can render a spinner with a custom message at the bottom', () => {
+ const customMsg = 'necessitatibus';
+
+ render(<Spinner position="bottom">{customMsg}</Spinner>);
+ expect(rtlScreen.getByText(customMsg).parentElement).toHaveClass(
+ 'wrapper--bottom'
+ );
+ });
+
+ it('can render a spinner with a custom message on the left', () => {
+ const customMsg = 'eos';
+
+ render(<Spinner position="left">{customMsg}</Spinner>);
+ expect(rtlScreen.getByText(customMsg).parentElement).toHaveClass(
+ 'wrapper--left'
+ );
+ });
+
+ it('can render a spinner with a custom message on the right', () => {
+ const customMsg = 'neque';
+
+ render(<Spinner position="right">{customMsg}</Spinner>);
+ expect(rtlScreen.getByText(customMsg).parentElement).toHaveClass(
+ 'wrapper--right'
+ );
+ });
+
+ it('can render a spinner with a custom message on the top', () => {
+ const customMsg = 'vero';
+
+ render(<Spinner position="top">{customMsg}</Spinner>);
+ expect(rtlScreen.getByText(customMsg).parentElement).toHaveClass(
+ 'wrapper--top'
+ );
+ });
+});