From 4634b4f0a040d172bfed58f09241d3158b151c3f Mon Sep 17 00:00:00 2001
From: gianantoniopini <63844628+gianantoniopini@users.noreply.github.com>
Date: Tue, 2 Feb 2021 10:40:26 +0100
Subject: [PATCH] Castform: unit tests refactoring to reduce nesting
---
src/templates/__tests__/Castform.test.js | 75 ++++++++++++------------
1 file changed, 38 insertions(+), 37 deletions(-)
diff --git a/src/templates/__tests__/Castform.test.js b/src/templates/__tests__/Castform.test.js
index 6f29ffed..51cc84c0 100644
--- a/src/templates/__tests__/Castform.test.js
+++ b/src/templates/__tests__/Castform.test.js
@@ -6,47 +6,48 @@ import FirebaseStub, { DatabaseConstants } from 'gatsby-plugin-firebase';
import '../../i18n/index';
import Castform from '../Castform';
-describe('Castform', () => {
- let resume = {};
+const birthDateLabelMatcher = /Date of birth/i;
- beforeEach(async () => {
- FirebaseStub.database().initializeData();
+async function setup(resumeId) {
+ FirebaseStub.database().initializeData();
- const resumeId = DatabaseConstants.initialStateResumeId;
- resume = (
- await FirebaseStub.database()
- .ref(`${DatabaseConstants.resumesPath}/${resumeId}`)
- .once('value')
- ).val();
- });
+ const resume = (
+ await FirebaseStub.database()
+ .ref(`${DatabaseConstants.resumesPath}/${resumeId}`)
+ .once('value')
+ ).val();
- it('renders correctly', () => {
- const { container } = render();
+ return resume;
+}
- expect(container).toBeTruthy();
- expect(container).toBeInTheDocument();
- });
+test('renders correctly', async () => {
+ const resume = await setup(DatabaseConstants.initialStateResumeId);
- describe('date of birth', () => {
- const birthDateLabelMatcher = /Date of birth/i;
+ const { container } = render();
- it('is not shown if not provided', () => {
- render();
-
- expect(screen.queryByText(birthDateLabelMatcher)).toBeNull();
- });
-
- it('is shown if provided', () => {
- const birthDate = new Date(1990, 0, 20);
- const birthDateFormatted = '20 January 1990';
- resume.profile.birthDate = birthDate;
-
- render();
-
- expect(screen.getByText(birthDateLabelMatcher)).toBeTruthy();
- expect(screen.getByText(birthDateLabelMatcher)).toBeInTheDocument();
- expect(screen.getByText(birthDateFormatted)).toBeTruthy();
- expect(screen.getByText(birthDateFormatted)).toBeInTheDocument();
- });
- });
+ expect(container).toBeTruthy();
+ expect(container).toBeInTheDocument();
+});
+
+test('date of birth is not shown if not provided', async () => {
+ const resume = await setup(DatabaseConstants.initialStateResumeId);
+
+ render();
+
+ expect(screen.queryByText(birthDateLabelMatcher)).toBeNull();
+});
+
+test('date of birth is shown if provided', async () => {
+ const resume = await setup(DatabaseConstants.initialStateResumeId);
+
+ const birthDate = new Date(1990, 0, 20);
+ const birthDateFormatted = '20 January 1990';
+ resume.profile.birthDate = birthDate;
+
+ render();
+
+ expect(screen.getByText(birthDateLabelMatcher)).toBeTruthy();
+ expect(screen.getByText(birthDateLabelMatcher)).toBeInTheDocument();
+ expect(screen.getByText(birthDateFormatted)).toBeTruthy();
+ expect(screen.getByText(birthDateFormatted)).toBeInTheDocument();
});