Builder page: unit tests separated in different files

This commit is contained in:
gianantoniopini
2021-02-02 10:27:30 +01:00
parent e39026c8b4
commit f72d2639e5
7 changed files with 311 additions and 262 deletions

View File

@ -0,0 +1,39 @@
import { fireEvent, screen } from '@testing-library/react';
import { DatabaseConstants } from 'gatsby-plugin-firebase';
import {
setupAndWait,
expectDatabaseUpdateToHaveCompleted,
} from './helpers/builder';
const testTimeoutInMilliseconds = 20000;
jest.setTimeout(testTimeoutInMilliseconds);
test('when input value is changed, updates database', async () => {
const resumeId = DatabaseConstants.demoStateResume1Id;
const { mockDatabaseUpdateFunction } = await setupAndWait(
resumeId,
true,
true,
);
const input = screen.getByRole('textbox', { name: /address line 1/i });
const newInputValue = 'test street 123';
const now = new Date().getTime();
fireEvent.change(input, { target: { value: newInputValue } });
expect(input.value).toBe(newInputValue);
await expectDatabaseUpdateToHaveCompleted(mockDatabaseUpdateFunction);
const mockDatabaseUpdateFunctionCallArgument =
mockDatabaseUpdateFunction.mock.calls[0][0];
expect(mockDatabaseUpdateFunctionCallArgument.id).toBe(resumeId);
expect(mockDatabaseUpdateFunctionCallArgument.profile.address.line1).toBe(
newInputValue,
);
expect(
mockDatabaseUpdateFunctionCallArgument.updatedAt,
).toBeGreaterThanOrEqual(now);
});