@tramvai/test-react 1.85.0 → 1.90.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -105,3 +105,24 @@ describe('test', () => {
105
105
 
106
106
  </details>
107
107
  </p>
108
+
109
+ ## Troubleshooting
110
+
111
+ ### Warning: ReactDOM.render is no longer supported in React 18
112
+
113
+ `@tramvai/test-react` comes with support for react 16 and 17 so if you are using react@18 it will lead to the above warning as this backward-compatibility forces to use legacy render methods.
114
+
115
+ You can manually specify not to use legacy rendering mode by settings option [`legacyRoot`](https://testing-library.com/docs/react-testing-library/api#legacyroot) to `false`
116
+
117
+ ```ts
118
+ /**
119
+ * @jest-environment jsdom
120
+ */
121
+ import { testComponent } from '@tramvai/test-react';
122
+
123
+ describe('test', () => {
124
+ it('component', async () => {
125
+ const { render } = testComponent(<Cmp id={1} />, { legacyRoot: false });
126
+ });
127
+ });
128
+ ```
package/lib/index.es.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { render, act, fireEvent } from '@testing-library/react';
2
2
  export * from '@testing-library/react';
3
- import React from 'react';
3
+ import { jsx } from 'react/jsx-runtime';
4
4
  import { Provider } from '@tramvai/state';
5
5
  import { DIContext } from '@tramvai/react';
6
6
  import { Provider as Provider$1 } from '@tinkoff/router';
@@ -9,13 +9,11 @@ import { waitRaf } from '@tramvai/test-jsdom';
9
9
  import { renderHook, act as act$1 } from '@testing-library/react-hooks';
10
10
 
11
11
  const testComponent = (element, { providers, initialState, store, stores, di, context = createMockContext({ initialState, providers, di, store, stores }), currentRoute, currentUrl, router = createMockRouter({ currentRoute, currentUrl }), renderOptions, } = {}) => {
12
- const Wrapper = ({ children }) => (React.createElement(Provider, { context: context },
13
- React.createElement(DIContext.Provider, { value: context.di },
14
- React.createElement(Provider$1, { router: router }, children))));
15
- const renderResults = render(React.createElement(Wrapper, null, element), renderOptions);
12
+ const Wrapper = ({ children }) => (jsx(Provider, Object.assign({ context: context }, { children: jsx(DIContext.Provider, Object.assign({ value: context.di }, { children: jsx(Provider$1, Object.assign({ router: router }, { children: children }), void 0) }), void 0) }), void 0));
13
+ const renderResults = render(jsx(Wrapper, { children: element }, void 0), renderOptions);
16
14
  return {
17
15
  render: renderResults,
18
- rerender: (el) => renderResults.rerender(React.createElement(Wrapper, null, el)),
16
+ rerender: (el) => renderResults.rerender(jsx(Wrapper, { children: el }, void 0)),
19
17
  act: (callback) => {
20
18
  return act(async () => {
21
19
  await callback();
@@ -38,10 +36,7 @@ const testHook = (hookCallback, { providers, initialState, store, stores, di, co
38
36
  const { result, rerender } = renderHook(hookCallback, {
39
37
  ...renderOptions,
40
38
  wrapper: ({ children }) => {
41
- return (React.createElement(Provider, { context: context },
42
- React.createElement(DIContext.Provider, { value: context.di },
43
- React.createElement(Provider$1, { router: router },
44
- React.createElement(Wrapper, null, children)))));
39
+ return (jsx(Provider, Object.assign({ context: context }, { children: jsx(DIContext.Provider, Object.assign({ value: context.di }, { children: jsx(Provider$1, Object.assign({ router: router }, { children: jsx(Wrapper, { children: children }, void 0) }), void 0) }), void 0) }), void 0));
45
40
  },
46
41
  });
47
42
  return {
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var react = require('@testing-library/react');
6
- var React = require('react');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
7
  var state = require('@tramvai/state');
8
8
  var react$1 = require('@tramvai/react');
9
9
  var router = require('@tinkoff/router');
@@ -11,18 +11,12 @@ var testMocks = require('@tramvai/test-mocks');
11
11
  var testJsdom = require('@tramvai/test-jsdom');
12
12
  var reactHooks = require('@testing-library/react-hooks');
13
13
 
14
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
-
16
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
-
18
14
  const testComponent = (element, { providers, initialState, store, stores, di, context = testMocks.createMockContext({ initialState, providers, di, store, stores }), currentRoute, currentUrl, router: router$1 = testMocks.createMockRouter({ currentRoute, currentUrl }), renderOptions, } = {}) => {
19
- const Wrapper = ({ children }) => (React__default["default"].createElement(state.Provider, { context: context },
20
- React__default["default"].createElement(react$1.DIContext.Provider, { value: context.di },
21
- React__default["default"].createElement(router.Provider, { router: router$1 }, children))));
22
- const renderResults = react.render(React__default["default"].createElement(Wrapper, null, element), renderOptions);
15
+ const Wrapper = ({ children }) => (jsxRuntime.jsx(state.Provider, Object.assign({ context: context }, { children: jsxRuntime.jsx(react$1.DIContext.Provider, Object.assign({ value: context.di }, { children: jsxRuntime.jsx(router.Provider, Object.assign({ router: router$1 }, { children: children }), void 0) }), void 0) }), void 0));
16
+ const renderResults = react.render(jsxRuntime.jsx(Wrapper, { children: element }, void 0), renderOptions);
23
17
  return {
24
18
  render: renderResults,
25
- rerender: (el) => renderResults.rerender(React__default["default"].createElement(Wrapper, null, el)),
19
+ rerender: (el) => renderResults.rerender(jsxRuntime.jsx(Wrapper, { children: el }, void 0)),
26
20
  act: (callback) => {
27
21
  return react.act(async () => {
28
22
  await callback();
@@ -45,10 +39,7 @@ const testHook = (hookCallback, { providers, initialState, store, stores, di, co
45
39
  const { result, rerender } = reactHooks.renderHook(hookCallback, {
46
40
  ...renderOptions,
47
41
  wrapper: ({ children }) => {
48
- return (React__default["default"].createElement(state.Provider, { context: context },
49
- React__default["default"].createElement(react$1.DIContext.Provider, { value: context.di },
50
- React__default["default"].createElement(router.Provider, { router: router$1 },
51
- React__default["default"].createElement(Wrapper, null, children)))));
42
+ return (jsxRuntime.jsx(state.Provider, Object.assign({ context: context }, { children: jsxRuntime.jsx(react$1.DIContext.Provider, Object.assign({ value: context.di }, { children: jsxRuntime.jsx(router.Provider, Object.assign({ router: router$1 }, { children: jsxRuntime.jsx(Wrapper, { children: children }, void 0) }), void 0) }), void 0) }), void 0));
52
43
  },
53
44
  });
54
45
  return {
@@ -13,7 +13,7 @@ declare type Options = OptionsDi & OptionsContext & OptionsRouter & {
13
13
  renderOptions?: RenderOptions;
14
14
  };
15
15
  export declare const testComponent: (element: React.ReactElement, { providers, initialState, store, stores, di, context, currentRoute, currentUrl, router, renderOptions, }?: Options) => {
16
- render: import("@testing-library/react").RenderResult<typeof import("@testing-library/dom/types/queries"), HTMLElement>;
16
+ render: import("@testing-library/react").RenderResult<typeof import("@testing-library/dom/types/queries"), HTMLElement, HTMLElement>;
17
17
  rerender: (el: React.ReactElement) => void;
18
18
  act: (callback: () => Promise<void> | void) => Promise<undefined>;
19
19
  fireEvent: import("@testing-library/react").FireFunction & import("@testing-library/react").FireObject;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/test-react",
3
- "version": "1.85.0",
3
+ "version": "1.90.2",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -18,15 +18,14 @@
18
18
  "build-for-publish": "true"
19
19
  },
20
20
  "dependencies": {
21
- "@testing-library/react": "^11.2.6",
22
- "@testing-library/react-hooks": "^5.1.2",
23
- "@tinkoff/router": "0.1.71",
24
- "@tramvai/react": "1.85.0",
25
- "@tramvai/state": "1.85.0",
26
- "@tramvai/test-jsdom": "1.85.0",
27
- "@tramvai/test-mocks": "1.85.0",
28
- "@tramvai/tokens-common": "1.85.0",
29
- "react-test-renderer": "18.0.0-rc.2",
21
+ "@testing-library/react": "^12.1.4",
22
+ "@testing-library/react-hooks": "^7.0.2",
23
+ "@tinkoff/router": "0.1.72",
24
+ "@tramvai/react": "1.90.2",
25
+ "@tramvai/state": "1.90.2",
26
+ "@tramvai/test-jsdom": "1.90.2",
27
+ "@tramvai/test-mocks": "1.90.2",
28
+ "@tramvai/tokens-common": "1.90.2",
30
29
  "tslib": "^2.0.3"
31
30
  },
32
31
  "peerDependencies": {