test: add testRender()

This adds a testRender() helper function to simplify UI tests. Instead
of mocking the redux store, we use the real thing.
This commit is contained in:
David Lechner
2022-03-09 17:24:46 -06:00
parent d0c84cbb9f
commit 6afee4b6d6
5 changed files with 88 additions and 196 deletions
+3 -20
View File
@@ -1,27 +1,10 @@
// SPDX-License-Identifier: MIT
// Copyright (c) 2021 The Pybricks Authors
// Copyright (c) 2021-2022 The Pybricks Authors
import { I18nContext, I18nManager } from '@shopify/react-i18n';
import { render } from '@testing-library/react';
import { mock } from 'jest-mock-extended';
import React from 'react';
import { Provider } from 'react-redux';
import { Store } from 'redux';
import { RootState } from '../reducers';
import { testRender } from '../../test';
import App from './App';
it.each([false, true])('should render', (darkMode) => {
const store = mock<Store<RootState>>({
getState: () => mock<RootState>({ settings: { darkMode } }),
});
const i18n = new I18nManager({ locale: 'en' });
render(
<Provider store={store}>
<I18nContext.Provider value={i18n}>
<App />
</I18nContext.Provider>
</Provider>,
);
testRender(<App />, { settings: { darkMode } });
});