From e27bedcf889aecf06969832708d4dfc07388951b Mon Sep 17 00:00:00 2001 From: gianantoniopini <63844628+gianantoniopini@users.noreply.github.com> Date: Tue, 26 Jan 2021 13:19:49 +0100 Subject: [PATCH] Dashboard page: unit tests refactoring --- __mocks__/gatsby-plugin-firebase/auth/auth.js | 2 +- .../database/reference.js | 8 +--- src/pages/app/__tests__/dashboard.test.js | 44 +++++++++++++------ 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/__mocks__/gatsby-plugin-firebase/auth/auth.js b/__mocks__/gatsby-plugin-firebase/auth/auth.js index 853bb133..b2fd1eb6 100644 --- a/__mocks__/gatsby-plugin-firebase/auth/auth.js +++ b/__mocks__/gatsby-plugin-firebase/auth/auth.js @@ -50,7 +50,7 @@ class Auth { this.onAuthStateChangedObservers.forEach((observer) => observer(user)); - return Promise.resolve(user); + return user; } } diff --git a/__mocks__/gatsby-plugin-firebase/database/reference.js b/__mocks__/gatsby-plugin-firebase/database/reference.js index 08e345fd..aca79397 100644 --- a/__mocks__/gatsby-plugin-firebase/database/reference.js +++ b/__mocks__/gatsby-plugin-firebase/database/reference.js @@ -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(); } } diff --git a/src/pages/app/__tests__/dashboard.test.js b/src/pages/app/__tests__/dashboard.test.js index 8a697403..b5efa2c4 100644 --- a/src/pages/app/__tests__/dashboard.test.js +++ b/src/pages/app/__tests__/dashboard.test.js @@ -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, + ); }); }); });