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(); });