-
Notifications
You must be signed in to change notification settings - Fork 283
/
Copy pathChannelListMessenger.test.js
43 lines (38 loc) · 1.48 KB
/
ChannelListMessenger.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import React from 'react';
import { cleanup } from '@testing-library/react';
import '@testing-library/jest-dom';
import renderer from 'react-test-renderer';
import { ChannelListMessenger } from '../ChannelListMessenger';
import { TranslationProvider } from '../../../context';
import { mockTranslationContext } from '../../../mock-builders';
// Weird hack to avoid big warnings
// Maybe better to find a better solution for it.
console.warn = () => null;
const Component = ({ error = false, loading = false }) => (
<TranslationProvider value={mockTranslationContext}>
<ChannelListMessenger
error={error}
loading={loading}
LoadingErrorIndicator={() => <div>Loading Error Indicator</div>}
LoadingIndicator={() => <div>Loading Indicator</div>}
>
<div>children 1</div>
<div>children 2</div>
</ChannelListMessenger>
</TranslationProvider>
);
describe('ChannelListMessenger', () => {
afterEach(cleanup);
it('by default, children should be rendered', () => {
const tree = renderer.create(<Component />).toJSON();
expect(tree).toMatchSnapshot();
});
it('when `error` prop is true, `LoadingErrorIndicator` should be rendered', () => {
const tree = renderer.create(<Component error={true} />).toJSON();
expect(tree).toMatchSnapshot();
});
it('when `loading` prop is true, `LoadingIndicator` should be rendered', () => {
const tree = renderer.create(<Component loading={true} />).toJSON();
expect(tree).toMatchSnapshot();
});
});