@plone/volto
Version:
Volto
93 lines (86 loc) • 2.12 kB
JSX
import React from 'react';
import configureStore from 'redux-mock-store';
import { Provider } from 'react-intl-redux';
import { MemoryRouter } from 'react-router-dom';
import { waitFor, render, screen } from '@testing-library/react';
import Diff from './Diff';
const mockStore = configureStore();
vi.mock('../Toolbar/Toolbar', () => ({
default: vi.fn(() => <div id="Portal" />),
}));
vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
return await import(
'@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
);
});
beforeAll(async () => {
const { __setLoadables } = await import(
'@plone/volto/helpers/Loadable/Loadable'
);
await __setLoadables();
});
describe('Diff', () => {
it('renders a diff component', async () => {
const store = mockStore({
history: {
entries: [
{
time: '2017-04-19T14:09:36+02:00',
version: 1,
actor: { fullname: 'Web Admin' },
},
{
time: '2017-04-19T14:09:35+02:00',
version: 0,
actor: { fullname: 'Web Admin' },
},
],
},
content: {
data: {
title: 'Blog',
'@type': 'Folder',
},
},
schema: {
schema: {
fieldsets: [
{
fields: ['title'],
},
],
properties: {
title: {
title: 'Title',
type: 'string',
},
},
},
},
diff: {
data: [
{
title: 'My old title',
},
{
title: 'My new title,',
},
],
},
intl: {
locale: 'en',
messages: {},
},
});
const { container } = render(
<Provider store={store}>
<MemoryRouter initialEntries={['/blog?one=0&two=1']}>
<Diff />
<div id="toolbar"></div>
</MemoryRouter>
</Provider>,
);
await waitFor(() => screen.getByTestId('DiffField'));
expect(container).toMatchSnapshot();
});
});