68 lines
1.7 KiB
Handlebars
Raw Normal View History

2021-07-21 20:08:17 +02:00
/**
*
2022-07-29 13:45:20 +02:00
* Tests for {{ name }}
2021-07-21 20:08:17 +02:00
*
*/
import React from 'react';
import { render {{~#if useRedux}} as tlRender {{~/if}} } from '@testing-library/react';
import { ThemeProvider, lightTheme } from '@strapi/design-system';
2021-07-21 20:08:17 +02:00
{{#if useRedux}}
import { Provider } from 'react-redux';
import { createStore, combineReducers } from 'redux';
import { initialState } from '../reducer';
import reducers from '../../../reducers';
2021-07-21 20:08:17 +02:00
{{/if}}
{{#if useI18n}}
import { IntlProvider } from 'react-intl';
{{/if}}
2022-07-29 13:45:20 +02:00
import {{ name }} from '../index';
2021-07-21 20:08:17 +02:00
{{#if useRedux}}
const rootReducer = combineReducers(reducers);
const render = (
ui,
{
preloadedState = initialState,
2022-07-30 09:16:19 +02:00
store = createStore(rootReducer, { '{{ plugin }}_{{ camelCase name }}': preloadedState }),
2021-07-21 20:08:17 +02:00
...renderOptions
} = {},
) => {
// eslint-disable-next-line react/prop-types
2021-07-21 20:08:17 +02:00
const Wrapper = ({ children }) => (
<Provider store={store}>{children}</Provider>
);
return tlRender(ui, { wrapper: Wrapper, ...renderOptions });
};
{{/if}}
{{#if useI18n}}
const messages = {
2022-07-29 13:45:20 +02:00
'{{ plugin }}.component.name': '{{titleCase name}}',
2021-07-21 20:08:17 +02:00
};
{{/if}}
2022-07-29 13:45:20 +02:00
describe('<{{ name }} />', () => {
2021-07-21 20:08:17 +02:00
it('renders and matches the snapshot', () => {
const {
container: { firstChild },
} = render(
{{#if useI18n}}
<ThemeProvider theme={lightTheme}>
<IntlProvider locale="en" messages={messages} defaultLocale="en">
2022-07-29 13:45:20 +02:00
<{{ name }} />
</IntlProvider>
</ThemeProvider>
2021-07-21 20:08:17 +02:00
{{else}}
<ThemeProvider theme={lightTheme}>
2022-07-29 13:45:20 +02:00
<{{ name }} />
</ThemeProvider>
2021-07-21 20:08:17 +02:00
{{/if}}
);
expect(firstChild).toMatchInlineSnapshot();
});
});