mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-22 20:51:29 +10:00
Builder page: unit tests separated in different files
This commit is contained in:
39
src/pages/app/__tests__/builder.dataPersistence.test.js
Normal file
39
src/pages/app/__tests__/builder.dataPersistence.test.js
Normal 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);
|
||||
});
|
||||
Reference in New Issue
Block a user