aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Joe Banks <[email protected]>2024-07-09 21:55:42 +0100
committerGravatar Joe Banks <[email protected]>2024-07-10 01:56:39 +0100
commite586c951c14d1bac4cabc1f582aca4d12045f179 (patch)
tree48b287c399570a26bad5fc4ba566bcf2e1cb8356
parentUpdate App test to render with Redux store (diff)
Add new test suite for testing authorization splash
-rw-r--r--src/tests/components/AuthorizationSplash.test.tsx62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/tests/components/AuthorizationSplash.test.tsx b/src/tests/components/AuthorizationSplash.test.tsx
new file mode 100644
index 0000000..7f44ba4
--- /dev/null
+++ b/src/tests/components/AuthorizationSplash.test.tsx
@@ -0,0 +1,62 @@
+/** @jsx jsx */
+import { jsx } from "@emotion/react";
+import { renderWithProviders } from "../utils";
+import AuthorizationSplash from "../../components/AuthorizationSplash";
+import { finishAuthorizing } from "../../slices/authorization";
+import { act } from "@testing-library/react";
+
+test("authorization splash is hidden when not authorizing", () => {
+ const { container } = renderWithProviders(<AuthorizationSplash />);
+ const splash = container.firstElementChild;
+
+ expect(splash).not.toBe(null);
+
+ if (splash) {
+ const style = window.getComputedStyle(splash);
+ expect(style.opacity).toBe("0");
+ }
+});
+
+test("authorization splash is visible when authorizing state is set", () => {
+ const { container } = renderWithProviders(<AuthorizationSplash />, {
+ preloadedState: {
+ authorization: {
+ authorizing: true
+ }
+ }
+ });
+ const splash = container.firstElementChild;
+
+ expect(splash).not.toBe(null);
+
+ if (splash) {
+ const style = window.getComputedStyle(splash);
+ expect(style.opacity).toBe("1");
+ }
+});
+
+test("test state transitions when authorization completes", () => {
+ const { store, container } = renderWithProviders(<AuthorizationSplash />, {
+ preloadedState: {
+ authorization: {
+ authorizing: true
+ }
+ }
+ });
+
+ const splash = container.firstElementChild;
+
+ expect(splash).not.toBe(null);
+
+ if (splash) {
+ let style = window.getComputedStyle(splash);
+ expect(style.opacity).toBe("1");
+
+ act(() => {
+ store.dispatch(finishAuthorizing());
+ });
+
+ style = window.getComputedStyle(splash);
+ expect(style.opacity).toBe("0");
+ }
+});