mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-16 01:32:02 +10:00
Deleted obsolete Context mocks; added more Asserts to builder.test
This commit is contained in:
@ -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 (
|
|
||||||
<DatabaseContext.Provider
|
|
||||||
value={{
|
|
||||||
isUpdating,
|
|
||||||
getResume,
|
|
||||||
createResume,
|
|
||||||
duplicateResume,
|
|
||||||
updateResume,
|
|
||||||
deleteResume,
|
|
||||||
debouncedUpdateResume,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{children}
|
|
||||||
</DatabaseContext.Provider>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default DatabaseContext;
|
|
||||||
|
|
||||||
const memoizedProvider = memo(DatabaseProvider);
|
|
||||||
|
|
||||||
export { memoizedProvider as DatabaseProvider };
|
|
||||||
|
|
||||||
export { __setResumes };
|
|
||||||
@ -1 +0,0 @@
|
|||||||
module.exports = {};
|
|
||||||
@ -1 +0,0 @@
|
|||||||
module.exports = {};
|
|
||||||
@ -1 +0,0 @@
|
|||||||
module.exports = {};
|
|
||||||
@ -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(
|
|
||||||
<DatabaseProvider>
|
|
||||||
<Builder id={resumeId} />
|
|
||||||
</DatabaseProvider>,
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(container).toBeTruthy();
|
|
||||||
//expect(container).toBeInTheDocument();
|
|
||||||
});
|
|
||||||
@ -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 = (
|
|
||||||
<UserProvider>
|
|
||||||
<DatabaseProvider>
|
|
||||||
<ResumeProvider>
|
|
||||||
<StorageProvider>
|
|
||||||
<Builder id={resume.id} />
|
|
||||||
</StorageProvider>
|
|
||||||
</ResumeProvider>
|
|
||||||
</DatabaseProvider>
|
|
||||||
</UserProvider>
|
|
||||||
);
|
|
||||||
let container = null;
|
|
||||||
|
|
||||||
act(() => {
|
|
||||||
container = render(element);
|
|
||||||
});
|
|
||||||
|
|
||||||
await firebaseMock.auth().signInAnonymously();
|
|
||||||
|
|
||||||
expect(container).toBeTruthy();
|
|
||||||
});
|
|
||||||
91
src/pages/app/__tests__/builder.test.js
Normal file
91
src/pages/app/__tests__/builder.test.js
Normal file
@ -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(
|
||||||
|
<UserProvider>
|
||||||
|
<DatabaseProvider>
|
||||||
|
<ResumeProvider>
|
||||||
|
<StorageProvider>
|
||||||
|
<Builder id={resume.id} />
|
||||||
|
</StorageProvider>
|
||||||
|
</ResumeProvider>
|
||||||
|
</DatabaseProvider>
|
||||||
|
</UserProvider>,
|
||||||
|
);
|
||||||
|
|
||||||
|
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(
|
||||||
|
<UserProvider>
|
||||||
|
<DatabaseProvider>
|
||||||
|
<ResumeProvider>
|
||||||
|
<StorageProvider>
|
||||||
|
<Builder id={resume.id} />
|
||||||
|
</StorageProvider>
|
||||||
|
</ResumeProvider>
|
||||||
|
</DatabaseProvider>
|
||||||
|
</UserProvider>,
|
||||||
|
);
|
||||||
|
|
||||||
|
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();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user