Attempt to test Builder, using DatabaseContext mock.

This commit is contained in:
gianantoniopini
2020-12-10 11:13:03 +01:00
parent 435400b1e3
commit 9736b2c6d4
5 changed files with 115 additions and 1 deletions

View File

@ -11,5 +11,25 @@ module.exports = {
}),
),
StaticQuery: jest.fn(),
useStaticQuery: jest.fn(),
useStaticQuery: jest.fn().mockReturnValue({
site: {
siteMetadata: {
title: '',
description: '',
author: '',
siteUrl: '',
},
},
file: {
childImageSharp: {
fluid(maxWidth = 512) {
base64;
aspectRatio;
src;
srcSet;
sizes;
},
},
},
}),
};

View File

@ -0,0 +1,70 @@
import { createContext, memo, useState } from 'react';
const defaultState = {
__setResumes: () => {},
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);
let resumes = {};
const __setResumes = (newResumes) => {
resumes = newResumes;
};
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 (
<DatabaseContext.Provider
value={{
__setResumes,
isUpdating,
getResume,
createResume,
duplicateResume,
updateResume,
deleteResume,
debouncedUpdateResume,
}}
>
{children}
</DatabaseContext.Provider>
);
};
export default DatabaseContext;
const memoizedProvider = memo(DatabaseProvider);
export { memoizedProvider as DatabaseProvider };

View File

@ -0,0 +1 @@
module.exports = {};

View File

@ -0,0 +1 @@
module.exports = {};

View File

@ -0,0 +1,22 @@
jest.mock('../../../contexts/DatabaseContext');
jest.mock('../../../contexts/UserContext');
jest.mock('../../../contexts/StorageContext');
import React from 'react';
import { render, cleanup } from '@testing-library/react';
//import DatabaseContext from '../../../contexts/DatabaseContext';
import Builder from '../builder';
afterEach(cleanup);
it('renders correctly', () => {
const resumeId = 'ab1c2d';
//const resumes = [{ id: resumeId }];
//DatabaseContext.__setResumes(resumes);
const { container } = render(<Builder id={resumeId} />);
expect(container).toBeTruthy();
expect(container).toBeInTheDocument();
});