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));
return Promise.resolve(user);
return user;
}
}

View File

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

View File

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