From a79de37ac91ca902c274f344f1fed28a7dbfa346 Mon Sep 17 00:00:00 2001 From: gianantoniopini <63844628+gianantoniopini@users.noreply.github.com> Date: Wed, 16 Dec 2020 17:03:28 +0100 Subject: [PATCH] Deleted obsolete Context mocks; added more Asserts to builder.test --- src/contexts/__mocks__/DatabaseContext.js | 70 -------------- src/contexts/__mocks__/ResumeContext.js | 1 - src/contexts/__mocks__/StorageContext.js | 1 - src/contexts/__mocks__/UserContext.js | 1 - .../__tests__/builder.mockContexts.test.js | 34 ------- .../__tests__/builder.mockFirebase.test.js | 44 --------- src/pages/app/__tests__/builder.test.js | 91 +++++++++++++++++++ 7 files changed, 91 insertions(+), 151 deletions(-) delete mode 100644 src/contexts/__mocks__/DatabaseContext.js delete mode 100644 src/contexts/__mocks__/ResumeContext.js delete mode 100644 src/contexts/__mocks__/StorageContext.js delete mode 100644 src/contexts/__mocks__/UserContext.js delete mode 100644 src/pages/app/__tests__/builder.mockContexts.test.js delete mode 100644 src/pages/app/__tests__/builder.mockFirebase.test.js create mode 100644 src/pages/app/__tests__/builder.test.js diff --git a/src/contexts/__mocks__/DatabaseContext.js b/src/contexts/__mocks__/DatabaseContext.js deleted file mode 100644 index 702ec722..00000000 --- a/src/contexts/__mocks__/DatabaseContext.js +++ /dev/null @@ -1,70 +0,0 @@ -import React, { createContext, memo, useState } from 'react'; - -let resumes = []; - -const __setResumes = (value) => { - resumes = value; -}; - -const defaultState = { - isUpdating: false, - createResume: async () => {}, - duplicateResume: async () => {}, - deleteResume: () => {}, - getResume: async () => {}, - getResumes: async () => {}, - updateResume: async () => {}, - debouncedUpdateResume: async () => {}, -}; - -const DatabaseContext = createContext(defaultState); - -const DatabaseProvider = ({ children }) => { - const [isUpdating] = useState(false); - - const getResume = async (id) => { - try { - const resume = await resumes.find((resume) => { - return resume.id === id; - }); - - return resume !== 'undefined' ? resume : null; - } catch (error) { - return null; - } - }; - - const createResume = async ({ name }) => {}; - - const duplicateResume = async (originalResume) => {}; - - const updateResume = async (resume) => {}; - - const debouncedUpdateResume = {}; - - const deleteResume = async (id) => {}; - - return ( - - {children} - - ); -}; - -export default DatabaseContext; - -const memoizedProvider = memo(DatabaseProvider); - -export { memoizedProvider as DatabaseProvider }; - -export { __setResumes }; diff --git a/src/contexts/__mocks__/ResumeContext.js b/src/contexts/__mocks__/ResumeContext.js deleted file mode 100644 index f053ebf7..00000000 --- a/src/contexts/__mocks__/ResumeContext.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/src/contexts/__mocks__/StorageContext.js b/src/contexts/__mocks__/StorageContext.js deleted file mode 100644 index f053ebf7..00000000 --- a/src/contexts/__mocks__/StorageContext.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/src/contexts/__mocks__/UserContext.js b/src/contexts/__mocks__/UserContext.js deleted file mode 100644 index f053ebf7..00000000 --- a/src/contexts/__mocks__/UserContext.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/src/pages/app/__tests__/builder.mockContexts.test.js b/src/pages/app/__tests__/builder.mockContexts.test.js deleted file mode 100644 index 17f362cd..00000000 --- a/src/pages/app/__tests__/builder.mockContexts.test.js +++ /dev/null @@ -1,34 +0,0 @@ -//jest.mock('../../../contexts/UserContext'); -jest.mock('../../../contexts/DatabaseContext'); -//jest.mock('../../../contexts/ResumeContext'); -//jest.mock('../../../contexts/StorageContext'); - -import React from 'react'; -import { render, cleanup } from '@testing-library/react'; - -//import { UserProvider } from '../../../contexts/UserContext'; -import { - DatabaseProvider, - __setResumes, -} from '../../../contexts/DatabaseContext'; -//import { ResumeProvider } from '../../../contexts/ResumeContext'; -//import { StorageProvider } from '../../../contexts/StorageContext'; - -import Builder from '../builder'; - -afterEach(cleanup); - -it('renders correctly', () => { - const resumeId = 'ab1c2d'; - const resumes = [{ id: resumeId }]; - __setResumes(resumes); - - const container = render( - - - , - ); - - expect(container).toBeTruthy(); - //expect(container).toBeInTheDocument(); -}); diff --git a/src/pages/app/__tests__/builder.mockFirebase.test.js b/src/pages/app/__tests__/builder.mockFirebase.test.js deleted file mode 100644 index 12b7da9e..00000000 --- a/src/pages/app/__tests__/builder.mockFirebase.test.js +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react'; -import { act, render, cleanup } from '@testing-library/react'; - -import firebaseMock from 'gatsby-plugin-firebase'; - -import { UserProvider } from '../../../contexts/UserContext'; -import { DatabaseProvider } from '../../../contexts/DatabaseContext'; -import { ResumeProvider } from '../../../contexts/ResumeContext'; -import { StorageProvider } from '../../../contexts/StorageContext'; - -import Builder from '../builder'; - -beforeEach(() => { - firebaseMock.auth().__init(); - firebaseMock.database().__init(); -}); - -afterEach(cleanup); - -it('renders correctly', async () => { - firebaseMock.database().__useDemoResume(true); - const resume = firebaseMock.database().__getResume(); - - const element = ( - - - - - - - - - - ); - let container = null; - - act(() => { - container = render(element); - }); - - await firebaseMock.auth().signInAnonymously(); - - expect(container).toBeTruthy(); -}); diff --git a/src/pages/app/__tests__/builder.test.js b/src/pages/app/__tests__/builder.test.js new file mode 100644 index 00000000..6d914310 --- /dev/null +++ b/src/pages/app/__tests__/builder.test.js @@ -0,0 +1,91 @@ +import React from 'react'; +import { act, cleanup, render, screen } from '@testing-library/react'; + +import firebaseMock from 'gatsby-plugin-firebase'; + +import { UserProvider } from '../../../contexts/UserContext'; +import { DatabaseProvider } from '../../../contexts/DatabaseContext'; +import { ResumeProvider } from '../../../contexts/ResumeContext'; +import { StorageProvider } from '../../../contexts/StorageContext'; +import Builder from '../builder'; + +let resume = null; + +beforeEach(() => { + firebaseMock.auth().__init(); + firebaseMock.database().__init(); +}); + +afterEach(cleanup); + +describe('builder', () => { + describe('with demo resume', () => { + beforeEach(async () => { + firebaseMock.database().__useDemoResume(true); + resume = firebaseMock.database().__getResume(); + + render( + + + + + + + + + , + ); + + await act(async () => { + await firebaseMock.auth().signInAnonymously(); + }); + }); + + it('renders first and last name', async () => { + expect( + screen.getByLabelText(new RegExp('first name', 'i')), + ).toHaveDisplayValue(resume.profile.firstName); + expect( + screen.getByLabelText(new RegExp('last name', 'i')), + ).toHaveDisplayValue(resume.profile.lastName); + expect( + screen.getAllByText(new RegExp(resume.profile.firstName, 'i')).length, + ).toBeTruthy(); + expect( + screen.getAllByText(new RegExp(resume.profile.lastName, 'i')).length, + ).toBeTruthy(); + }); + }); + + describe('with empty resume', () => { + beforeEach(async () => { + firebaseMock.database().__useDemoResume(false); + resume = firebaseMock.database().__getResume(); + + render( + + + + + + + + + , + ); + + 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(); + }); + }); +});