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();
+ });
+ });
+});