mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-15 01:01:43 +10:00
Builder.test: added draft version of test for data update
This commit is contained in:
@ -125,17 +125,37 @@ const database = () => {
|
|||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const update = async (value) => {
|
||||||
|
console.log('update');
|
||||||
|
console.log(value);
|
||||||
|
if (resumesPath) {
|
||||||
|
if (value === null) {
|
||||||
|
delete __resumesDictionary[databaseLocationId];
|
||||||
|
} else {
|
||||||
|
__resumesDictionary[databaseLocationId] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
once,
|
once,
|
||||||
set,
|
set,
|
||||||
|
update,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const ServerValue = {
|
||||||
|
TIMESTAMP: Date.now(),
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
__demoResumeId,
|
__demoResumeId,
|
||||||
__emptyResumeId,
|
__emptyResumeId,
|
||||||
__init,
|
__init,
|
||||||
ref,
|
ref,
|
||||||
|
ServerValue,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,12 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { act, cleanup, render, screen } from '@testing-library/react';
|
import {
|
||||||
|
act,
|
||||||
|
cleanup,
|
||||||
|
fireEvent,
|
||||||
|
render,
|
||||||
|
screen,
|
||||||
|
waitFor,
|
||||||
|
} from '@testing-library/react';
|
||||||
|
|
||||||
import firebaseMock from 'gatsby-plugin-firebase';
|
import firebaseMock from 'gatsby-plugin-firebase';
|
||||||
|
|
||||||
@ -20,7 +27,6 @@ describe('builder', () => {
|
|||||||
let resumeId = null;
|
let resumeId = null;
|
||||||
let resume = null;
|
let resume = null;
|
||||||
|
|
||||||
describe('with demo resume', () => {
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
resumeId = firebaseMock.database().__demoResumeId;
|
resumeId = firebaseMock.database().__demoResumeId;
|
||||||
resume = (
|
resume = (
|
||||||
@ -44,7 +50,8 @@ describe('builder', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders first and last name', async () => {
|
describe('renders', () => {
|
||||||
|
it('first and last name', async () => {
|
||||||
expect(
|
expect(
|
||||||
screen.getByLabelText(new RegExp('first name', 'i')),
|
screen.getByLabelText(new RegExp('first name', 'i')),
|
||||||
).toHaveDisplayValue(resume.profile.firstName);
|
).toHaveDisplayValue(resume.profile.firstName);
|
||||||
@ -60,37 +67,30 @@ describe('builder', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('with empty resume', () => {
|
describe('updates data', () => {
|
||||||
beforeEach(async () => {
|
it('when input value is changed', async () => {
|
||||||
resumeId = firebaseMock.database().__emptyResumeId;
|
const input = screen.getByLabelText(new RegExp('address line 1', 'i'));
|
||||||
|
const newInputValue = 'test street 123';
|
||||||
|
const spy = jest.spyOn(
|
||||||
|
firebaseMock.database().ref(`resumes/${resumeId}`),
|
||||||
|
'update',
|
||||||
|
);
|
||||||
|
|
||||||
|
fireEvent.change(input, { target: { value: newInputValue } });
|
||||||
|
|
||||||
|
expect(input.value).toBe(newInputValue);
|
||||||
|
|
||||||
|
await waitFor(() => expect(spy).toHaveBeenCalledTimes(1), {
|
||||||
|
timeout: 4000,
|
||||||
|
});
|
||||||
|
//const promise = spy.mock.results[0].value;
|
||||||
|
//await spy();
|
||||||
|
//expect(spy).toHaveBeenCalledTimes(1);
|
||||||
|
|
||||||
resume = (
|
resume = (
|
||||||
await firebaseMock.database().ref(`resumes/${resumeId}`).once('value')
|
await firebaseMock.database().ref(`resumes/${resumeId}`).once('value')
|
||||||
).val();
|
).val();
|
||||||
|
expect(resume.profile.address.line1).toBe(newInputValue);
|
||||||
render(
|
|
||||||
<UserProvider>
|
|
||||||
<DatabaseProvider>
|
|
||||||
<ResumeProvider>
|
|
||||||
<StorageProvider>
|
|
||||||
<Builder id={resume.id} />
|
|
||||||
</StorageProvider>
|
|
||||||
</ResumeProvider>
|
|
||||||
</DatabaseProvider>
|
|
||||||
</UserProvider>,
|
|
||||||
);
|
|
||||||
|
|
||||||
await act(async () => {
|
|
||||||
await firebaseMock.auth().signInAnonymously();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('renders empty first and last name', async () => {
|
|
||||||
expect(
|
|
||||||
screen.getByLabelText(new RegExp('first name', 'i')),
|
|
||||||
).not.toHaveDisplayValue();
|
|
||||||
expect(
|
|
||||||
screen.getByLabelText(new RegExp('last name', 'i')),
|
|
||||||
).not.toHaveDisplayValue();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user