mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-20 03:32:09 +10:00
Updated builder.test to use new FirebaseStub
This commit is contained in:
@ -8,7 +8,7 @@ import {
|
|||||||
waitFor,
|
waitFor,
|
||||||
} from '@testing-library/react';
|
} from '@testing-library/react';
|
||||||
|
|
||||||
import firebaseMock from 'gatsby-plugin-firebase';
|
import FirebaseStub from 'gatsby-plugin-firebase';
|
||||||
|
|
||||||
import { UserProvider } from '../../../contexts/UserContext';
|
import { UserProvider } from '../../../contexts/UserContext';
|
||||||
import { DatabaseProvider } from '../../../contexts/DatabaseContext';
|
import { DatabaseProvider } from '../../../contexts/DatabaseContext';
|
||||||
@ -17,8 +17,7 @@ import { StorageProvider } from '../../../contexts/StorageContext';
|
|||||||
import Builder from '../builder';
|
import Builder from '../builder';
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
firebaseMock.auth().__init();
|
FirebaseStub.database().initializeData();
|
||||||
firebaseMock.database().__init();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(cleanup);
|
afterEach(cleanup);
|
||||||
@ -28,9 +27,9 @@ describe('builder', () => {
|
|||||||
let resume = null;
|
let resume = null;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
resumeId = firebaseMock.database().__demoResumeId;
|
resumeId = FirebaseStub.database().demoResumeId;
|
||||||
resume = (
|
resume = (
|
||||||
await firebaseMock.database().ref(`resumes/${resumeId}`).once('value')
|
await FirebaseStub.database().ref(`resumes/${resumeId}`).once('value')
|
||||||
).val();
|
).val();
|
||||||
|
|
||||||
render(
|
render(
|
||||||
@ -46,7 +45,7 @@ describe('builder', () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
await firebaseMock.auth().signInAnonymously();
|
await FirebaseStub.auth().signInAnonymously();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -72,43 +71,53 @@ describe('builder', () => {
|
|||||||
/*
|
/*
|
||||||
const newInputValue = 'test street 123';
|
const newInputValue = 'test street 123';
|
||||||
resume.profile.address.line1 = newInputValue;
|
resume.profile.address.line1 = newInputValue;
|
||||||
const ref = firebaseMock.database().ref(`resumes/${resumeId}`);
|
const mockUpdateFunction = jest.spyOn(
|
||||||
const firebaseMockUpdateFunction = jest.spyOn(ref, 'update');
|
FirebaseStub.database().ref(`resumes/${resumeId}`),
|
||||||
const now = Date.now();
|
'update',
|
||||||
|
);
|
||||||
await ref.update({
|
const now = new Date().getTime();
|
||||||
...resume,
|
|
||||||
updatedAt: firebaseMock.database.ServerValue.TIMESTAMP,
|
await FirebaseStub.database()
|
||||||
});
|
.ref(`resumes/${resumeId}`)
|
||||||
|
.update({
|
||||||
await waitFor(() =>
|
...resume,
|
||||||
expect(firebaseMockUpdateFunction).toHaveBeenCalledTimes(1),
|
updatedAt: FirebaseStub.database.ServerValue.TIMESTAMP,
|
||||||
|
});
|
||||||
|
|
||||||
|
await waitFor(() => expect(mockUpdateFunction).toHaveBeenCalledTimes(1));
|
||||||
|
const mockUpdateFunctionCallArgument =
|
||||||
|
mockUpdateFunction.mock.calls[0][0];
|
||||||
|
expect(mockUpdateFunctionCallArgument.id).toBe(resume.id);
|
||||||
|
expect(mockUpdateFunctionCallArgument.profile.address.line1).toBe(
|
||||||
|
newInputValue,
|
||||||
|
);
|
||||||
|
expect(mockUpdateFunctionCallArgument.updatedAt).toBeGreaterThanOrEqual(
|
||||||
|
now,
|
||||||
);
|
);
|
||||||
const firebaseMockUpdateFunctionCallArgument =
|
|
||||||
firebaseMockUpdateFunction.mock.calls[0][0];
|
|
||||||
expect(firebaseMockUpdateFunctionCallArgument.id).toBe(resume.id);
|
|
||||||
expect(firebaseMockUpdateFunctionCallArgument.profile.address.line1).toBe(newInputValue);
|
|
||||||
expect(firebaseMockUpdateFunctionCallArgument.updatedAt).toBeGreaterThanOrEqual(now);
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const input = screen.getByLabelText(new RegExp('address line 1', 'i'));
|
const input = screen.getByLabelText(new RegExp('address line 1', 'i'));
|
||||||
const newInputValue = 'test street 123';
|
const newInputValue = 'test street 123';
|
||||||
const now = Date.now();
|
const mockUpdateFunction = jest.spyOn(
|
||||||
|
FirebaseStub.database().ref(`resumes/${resumeId}`),
|
||||||
|
'update',
|
||||||
|
);
|
||||||
|
const now = new Date().getTime();
|
||||||
|
|
||||||
fireEvent.change(input, { target: { value: newInputValue } });
|
fireEvent.change(input, { target: { value: newInputValue } });
|
||||||
|
|
||||||
expect(input.value).toBe(newInputValue);
|
expect(input.value).toBe(newInputValue);
|
||||||
|
|
||||||
const databaseRef = firebaseMock.database().ref(`resumes/${resume.id}`);
|
await waitFor(() => expect(mockUpdateFunction).toHaveBeenCalledTimes(1), {
|
||||||
await waitFor(() => expect(databaseRef.__updateCalls.length).toBe(1), {
|
|
||||||
timeout: 4000,
|
timeout: 4000,
|
||||||
});
|
});
|
||||||
const databaseRefUpdateCallArgument = databaseRef.__updateCalls[0];
|
const mockUpdateFunctionCallArgument =
|
||||||
expect(databaseRefUpdateCallArgument.id).toBe(resume.id);
|
mockUpdateFunction.mock.calls[0][0];
|
||||||
expect(databaseRefUpdateCallArgument.profile.address.line1).toBe(
|
expect(mockUpdateFunctionCallArgument.id).toBe(resume.id);
|
||||||
|
expect(mockUpdateFunctionCallArgument.profile.address.line1).toBe(
|
||||||
newInputValue,
|
newInputValue,
|
||||||
);
|
);
|
||||||
expect(databaseRefUpdateCallArgument.updatedAt).toBeGreaterThanOrEqual(
|
expect(mockUpdateFunctionCallArgument.updatedAt).toBeGreaterThanOrEqual(
|
||||||
now,
|
now,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,44 +0,0 @@
|
|||||||
import { cleanup, waitFor } from '@testing-library/react';
|
|
||||||
|
|
||||||
import FirebaseStub from 'gatsby-plugin-firebase';
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
FirebaseStub.database().initializeData();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(cleanup);
|
|
||||||
|
|
||||||
describe('builder', () => {
|
|
||||||
let resumeId = null;
|
|
||||||
let resume = null;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
resumeId = FirebaseStub.database().demoResumeId;
|
|
||||||
resume = (
|
|
||||||
await FirebaseStub.database().ref(`resumes/${resumeId}`).once('value')
|
|
||||||
).val();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('test 1', async () => {
|
|
||||||
const now = new Date().getTime();
|
|
||||||
const newInputValue = 'test street 123';
|
|
||||||
resume.profile.address.line1 = newInputValue;
|
|
||||||
const functionSpy = jest.spyOn(
|
|
||||||
FirebaseStub.database().ref(`resumes/${resumeId}`),
|
|
||||||
'update',
|
|
||||||
);
|
|
||||||
|
|
||||||
await FirebaseStub.database()
|
|
||||||
.ref(`resumes/${resumeId}`)
|
|
||||||
.update({
|
|
||||||
...resume,
|
|
||||||
updatedAt: FirebaseStub.database.ServerValue.TIMESTAMP,
|
|
||||||
});
|
|
||||||
|
|
||||||
await waitFor(() => expect(functionSpy).toHaveBeenCalledTimes(1));
|
|
||||||
const functionCallArgument = functionSpy.mock.calls[0][0];
|
|
||||||
expect(functionCallArgument.id).toBe(resume.id);
|
|
||||||
expect(functionCallArgument.profile.address.line1).toBe(newInputValue);
|
|
||||||
expect(functionCallArgument.updatedAt).toBeGreaterThanOrEqual(now);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user