@plone/volto
Version:
Volto
86 lines (79 loc) • 1.94 kB
JSX
import { render } from '@testing-library/react';
import configureStore from 'redux-mock-store';
import { Provider } from 'react-intl-redux';
import { MemoryRouter, Route } from 'react-router-dom';
import { CookiesProvider } from 'react-cookie';
import Controlpanel from './Controlpanel';
const mockStore = configureStore();
vi.mock('../Form/Form', () => ({
default: vi.fn(({ requestError }) => (
<div id="form">
{requestError ? `requestError: ${requestError}` : 'Form rendered'}
</div>
)),
}));
vi.mock('../../Toolbar/Toolbar', () => ({
default: vi.fn(() => <div id="Portal">Toolbar Component</div>),
}));
const store = mockStore({
controlpanels: {
controlpanel: {
'@id': 'http://localhost:8080/Plone/@controlpanels/date-and-time',
title: 'Date and Time',
schema: {
fieldsets: [],
properties: [],
},
data: {},
},
update: {
loading: false,
loaded: true,
error: { response: { body: { message: null } } },
},
},
intl: {
locale: 'en',
messages: {},
},
actions: {
actions: {},
},
userSession: {
token: null,
},
content: {
data: {},
unlock: {
loading: false,
loaded: true,
},
get: {
loading: false,
loaded: true,
},
},
types: {
types: [],
get: {
loading: false,
loaded: true,
},
},
});
describe('Controlpanel', () => {
it('renders a controlpanel component', () => {
store.dispatch = vi.fn(() => Promise.resolve());
const { container } = render(
<Provider store={store}>
<CookiesProvider>
<MemoryRouter initialEntries={['/controlpanel/date-and-time']}>
<Route path={'/controlpanel/:id'} component={Controlpanel} />
<div id="toolbar"></div>
</MemoryRouter>
</CookiesProvider>
</Provider>,
);
expect(container).toMatchSnapshot();
});
});