@plone/volto
Version:
Volto
79 lines (72 loc) • 1.83 kB
JSX
import React from 'react';
import renderer from 'react-test-renderer';
import configureStore from 'redux-mock-store';
import { Provider } from 'react-intl-redux';
import Comments from './Comments';
const mockStore = configureStore();
jest.mock('moment', () =>
jest.fn(() => ({
format: jest.fn(() => 'Sunday, April 23, 2017 3:38 AM'),
fromNow: jest.fn(() => 'a few seconds ago'),
})),
);
jest.mock('@plone/volto/helpers/Loadable/Loadable');
jest.mock('@plone/volto/components/manage/Form');
beforeAll(
async () =>
await require('@plone/volto/helpers/Loadable/Loadable').__setLoadables(),
);
describe('Comments', () => {
it('renders a comments component', () => {
const store = mockStore({
comments: {
items: [
{
'@id': 'someurl',
comment_id: '1614094601171408',
author_name: 'admin',
creation_date: '2017-11-06T19:36:01',
text: { data: 'Some comment' },
is_deletable: true,
is_editable: true,
can_reply: true,
},
],
permissions: {
view_comments: true,
can_reply: true,
},
add: {
loading: false,
loaded: true,
},
delete: {
loading: false,
loaded: true,
},
update: {
loading: false,
loaded: true,
},
},
intl: {
locale: 'en',
messages: {},
},
content: {
data: {},
create: {
loading: false,
loaded: true,
},
},
});
const component = renderer.create(
<Provider store={store}>
<Comments pathname="/blog" />
</Provider>,
);
const json = component.toJSON();
expect(json).toMatchSnapshot();
});
});