Dashboard page: unit tests refactoring

This commit is contained in:
gianantoniopini
2021-01-26 13:19:49 +01:00
parent b196ca1bf5
commit e27bedcf88
3 changed files with 32 additions and 22 deletions

View File

@ -50,7 +50,7 @@ class Auth {
this.onAuthStateChangedObservers.forEach((observer) => observer(user)); this.onAuthStateChangedObservers.forEach((observer) => observer(user));
return Promise.resolve(user); return user;
} }
} }

View File

@ -185,7 +185,7 @@ class Reference {
await delay(DatabaseConstants.defaultDelayInMilliseconds); await delay(DatabaseConstants.defaultDelayInMilliseconds);
return Promise.resolve(this._dataSnapshot); return this._dataSnapshot;
} }
orderByChild(path) { orderByChild(path) {
@ -197,24 +197,18 @@ class Reference {
await delay(DatabaseConstants.defaultDelayInMilliseconds); await delay(DatabaseConstants.defaultDelayInMilliseconds);
this._handleDataUpdate(value); this._handleDataUpdate(value);
return Promise.resolve();
} }
async remove() { async remove() {
await delay(DatabaseConstants.defaultDelayInMilliseconds); await delay(DatabaseConstants.defaultDelayInMilliseconds);
this._handleDataUpdate(null); this._handleDataUpdate(null);
return Promise.resolve();
} }
async set(value) { async set(value) {
await delay(DatabaseConstants.defaultDelayInMilliseconds); await delay(DatabaseConstants.defaultDelayInMilliseconds);
this._handleDataUpdate(value); this._handleDataUpdate(value);
return Promise.resolve();
} }
} }

View File

@ -29,13 +29,13 @@ describe('Dashboard', () => {
let userResumes = null; let userResumes = null;
const user = DatabaseConstants.user1; const user = DatabaseConstants.user1;
const waitForResumeToBeRenderedInPreview = async (resume) => { const waitForResumeToBeRenderedInPreview = async (resumeName) => {
await screen.findByText(resume.name); await screen.findByText(resumeName);
}; };
const expectResumeToBeRenderedInPreview = async (resume) => { const expectResumeToBeRenderedInPreview = async (resumeName) => {
await waitFor(() => { await waitFor(() => {
expect(screen.getByText(resume.name)).toBeInTheDocument(); expect(screen.getByText(resumeName)).toBeInTheDocument();
}); });
}; };
@ -92,13 +92,22 @@ describe('Dashboard', () => {
await waitFor(() => { await waitFor(() => {
expect(screen.getByText(/create resume/i)).toBeInTheDocument(); expect(screen.getByText(/create resume/i)).toBeInTheDocument();
}); });
await waitFor(() => {
expect(
screen.getByTestId(createResumeButtonDataTestId),
).toBeInTheDocument();
});
}); });
it('preview of user resumes', async () => { it('preview of user resumes', async () => {
expect(Object.keys(userResumes)).toHaveLength(2); expect(Object.keys(userResumes)).toHaveLength(2);
await expectResumeToBeRenderedInPreview(Object.values(userResumes)[0]); await expectResumeToBeRenderedInPreview(
await expectResumeToBeRenderedInPreview(Object.values(userResumes)[1]); Object.values(userResumes)[0].name,
);
await expectResumeToBeRenderedInPreview(
Object.values(userResumes)[1].name,
);
}); });
}); });
@ -187,7 +196,7 @@ describe('Dashboard', () => {
); );
await waitForModalWindowToHaveBeenClosed(); await waitForModalWindowToHaveBeenClosed();
await waitForResumeToBeRenderedInPreview({ name: resumeName }); await waitForResumeToBeRenderedInPreview(resumeName);
}); });
it('closes modal window', async () => { it('closes modal window', async () => {
@ -195,19 +204,22 @@ describe('Dashboard', () => {
expect(screen.queryByRole('textbox', { name: /name/i })).toBeNull(), expect(screen.queryByRole('textbox', { name: /name/i })).toBeNull(),
); );
await waitForResumeToBeRenderedInPreview({ name: resumeName }); await waitForResumeToBeRenderedInPreview(resumeName);
}); });
// eslint-disable-next-line jest/expect-expect
it('renders created resume in preview', async () => { it('renders created resume in preview', async () => {
await waitForModalWindowToHaveBeenClosed(); await waitForModalWindowToHaveBeenClosed();
await expectResumeToBeRenderedInPreview({ name: resumeName }); await waitFor(() =>
expect(
expectResumeToBeRenderedInPreview(resumeName),
).resolves.toBeUndefined(),
);
}); });
it('adds resume in initial state to database', async () => { it('adds resume in initial state to database', async () => {
await waitForModalWindowToHaveBeenClosed(); await waitForModalWindowToHaveBeenClosed();
await waitForResumeToBeRenderedInPreview({ name: resumeName }); await waitForResumeToBeRenderedInPreview(resumeName);
const actualUserResumes = ( const actualUserResumes = (
await FirebaseStub.database() await FirebaseStub.database()
@ -286,7 +298,7 @@ describe('Dashboard', () => {
await waitFor(() => await waitFor(() =>
expect(screen.queryByText(resumeToDelete.name)).toBeNull(), expect(screen.queryByText(resumeToDelete.name)).toBeNull(),
); );
await expectResumeToBeRenderedInPreview(undeletedResume); await expectResumeToBeRenderedInPreview(undeletedResume.name);
}); });
it('displays notification', async () => { it('displays notification', async () => {
@ -322,8 +334,12 @@ describe('Dashboard', () => {
screen.getByTestId(loadingScreenTestId), screen.getByTestId(loadingScreenTestId),
); );
await waitForResumeToBeRenderedInPreview(Object.values(userResumes)[0]); await waitForResumeToBeRenderedInPreview(
await waitForResumeToBeRenderedInPreview(Object.values(userResumes)[1]); Object.values(userResumes)[0].name,
);
await waitForResumeToBeRenderedInPreview(
Object.values(userResumes)[1].name,
);
}); });
}); });
}); });