Castform: unit tests refactoring to reduce nesting

This commit is contained in:
gianantoniopini
2021-02-02 10:40:26 +01:00
parent f72d2639e5
commit 4634b4f0a0

View File

@ -6,37 +6,40 @@ import FirebaseStub, { DatabaseConstants } from 'gatsby-plugin-firebase';
import '../../i18n/index'; import '../../i18n/index';
import Castform from '../Castform'; import Castform from '../Castform';
describe('Castform', () => { const birthDateLabelMatcher = /Date of birth/i;
let resume = {};
beforeEach(async () => { async function setup(resumeId) {
FirebaseStub.database().initializeData(); FirebaseStub.database().initializeData();
const resumeId = DatabaseConstants.initialStateResumeId; const resume = (
resume = (
await FirebaseStub.database() await FirebaseStub.database()
.ref(`${DatabaseConstants.resumesPath}/${resumeId}`) .ref(`${DatabaseConstants.resumesPath}/${resumeId}`)
.once('value') .once('value')
).val(); ).val();
});
it('renders correctly', () => { return resume;
}
test('renders correctly', async () => {
const resume = await setup(DatabaseConstants.initialStateResumeId);
const { container } = render(<Castform data={resume} />); const { container } = render(<Castform data={resume} />);
expect(container).toBeTruthy(); expect(container).toBeTruthy();
expect(container).toBeInTheDocument(); expect(container).toBeInTheDocument();
}); });
describe('date of birth', () => { test('date of birth is not shown if not provided', async () => {
const birthDateLabelMatcher = /Date of birth/i; const resume = await setup(DatabaseConstants.initialStateResumeId);
it('is not shown if not provided', () => {
render(<Castform data={resume} />); render(<Castform data={resume} />);
expect(screen.queryByText(birthDateLabelMatcher)).toBeNull(); expect(screen.queryByText(birthDateLabelMatcher)).toBeNull();
}); });
test('date of birth is shown if provided', async () => {
const resume = await setup(DatabaseConstants.initialStateResumeId);
it('is shown if provided', () => {
const birthDate = new Date(1990, 0, 20); const birthDate = new Date(1990, 0, 20);
const birthDateFormatted = '20 January 1990'; const birthDateFormatted = '20 January 1990';
resume.profile.birthDate = birthDate; resume.profile.birthDate = birthDate;
@ -47,6 +50,4 @@ describe('Castform', () => {
expect(screen.getByText(birthDateLabelMatcher)).toBeInTheDocument(); expect(screen.getByText(birthDateLabelMatcher)).toBeInTheDocument();
expect(screen.getByText(birthDateFormatted)).toBeTruthy(); expect(screen.getByText(birthDateFormatted)).toBeTruthy();
expect(screen.getByText(birthDateFormatted)).toBeInTheDocument(); expect(screen.getByText(birthDateFormatted)).toBeInTheDocument();
});
});
}); });