Attempt to test Builder, using Firebase mock

This commit is contained in:
gianantoniopini
2020-12-10 17:03:56 +01:00
parent e3d1f0305a
commit b992bc4b73
6 changed files with 79 additions and 24 deletions

View File

@ -0,0 +1,14 @@
import demoResume from '../src/data/demoState.json';
module.exports = {
database: jest.fn().mockReturnValue({
ref: jest.fn().mockReturnValue({
once: jest.fn().mockResolvedValue({
val: jest.fn().mockReturnValue(demoResume),
}),
}),
}),
auth: jest.fn().mockReturnValue({
onAuthStateChanged: jest.fn(),
}),
};

View File

@ -1,4 +1,4 @@
import { createContext, memo, useState } from 'react'; import React, { createContext, memo, useState } from 'react';
const defaultState = { const defaultState = {
__resumes: [], __resumes: [],
@ -15,7 +15,7 @@ const defaultState = {
const DatabaseContext = createContext(defaultState); const DatabaseContext = createContext(defaultState);
const DatabaseProvider = ({ children }) => { const DatabaseProvider = ({ children }) => {
const [__resumes] = useState([]); const [__resumes] = useState([{ id: 'ab1c2d' }]);
const [isUpdating] = useState(false); const [isUpdating] = useState(false);

View File

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

View File

@ -0,0 +1,32 @@
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 } 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 }];
// The call below does not seem to work, therefore the "resumes" array initial value is currently set directly in the mock.
//DatabaseProvider.__resumes = resumes;
const container = render(
<DatabaseProvider>
<Builder id={resumeId} />
</DatabaseProvider>,
);
expect(container).toBeTruthy();
//expect(container).toBeInTheDocument();
});

View File

@ -0,0 +1,30 @@
import React from 'react';
import { render, cleanup } from '@testing-library/react';
import { UserProvider } from '../../../contexts/UserContext';
import { DatabaseProvider } 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 container = render(
<UserProvider>
<DatabaseProvider>
<ResumeProvider>
<StorageProvider>
<Builder id={resumeId} />
</StorageProvider>
</ResumeProvider>
</DatabaseProvider>
</UserProvider>,
);
expect(container).toBeTruthy();
//expect(container).toBeInTheDocument();
});

View File

@ -1,22 +0,0 @@
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.Provider.__resumes = resumes;
const { container } = render(<Builder id={resumeId} />);
expect(container).toBeTruthy();
expect(container).toBeInTheDocument();
});