mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-15 01:01:43 +10:00
Attempt to test Builder, using DatabaseContext mock.
This commit is contained in:
@ -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;
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
};
|
||||
|
||||
70
src/contexts/__mocks__/DatabaseContext.js
Normal file
70
src/contexts/__mocks__/DatabaseContext.js
Normal 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 };
|
||||
1
src/contexts/__mocks__/StorageContext.js
Normal file
1
src/contexts/__mocks__/StorageContext.js
Normal file
@ -0,0 +1 @@
|
||||
module.exports = {};
|
||||
1
src/contexts/__mocks__/UserContext.js
Normal file
1
src/contexts/__mocks__/UserContext.js
Normal file
@ -0,0 +1 @@
|
||||
module.exports = {};
|
||||
22
src/pages/app/__tests__/builder.test.js
Normal file
22
src/pages/app/__tests__/builder.test.js
Normal 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();
|
||||
});
|
||||
Reference in New Issue
Block a user