@dr.pogodin/react-utils 1.35.0 → 1.35.1
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/build/development/shared/utils/jest/index.js +6 -2
- package/build/development/shared/utils/jest/index.js.map +1 -1
- package/build/production/shared/utils/jest/index.js +1 -1
- package/build/production/shared/utils/jest/index.js.map +1 -1
- package/build/types-code/shared/utils/jest/index.d.ts +2 -1
- package/package.json +10 -10
- package/src/shared/utils/jest/index.tsx +8 -3
|
@@ -108,8 +108,12 @@ function mount(scene) {
|
|
|
108
108
|
return res;
|
|
109
109
|
}
|
|
110
110
|
function snapshot(element) {
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
let res;
|
|
112
|
+
(0, _react.act)(() => {
|
|
113
|
+
res = (0, _react2.render)(element);
|
|
114
|
+
});
|
|
115
|
+
if (res === undefined) throw Error('Render failed');
|
|
116
|
+
expect(res.asFragment().firstChild).toMatchSnapshot();
|
|
113
117
|
return res;
|
|
114
118
|
}
|
|
115
119
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_mockdate","_interopRequireDefault","require","_react","_client","_react2","_global","global","IS_REACT_ACT_ENVIRONMENT","originalProcessVersions","process","versions","mockClientSide","Object","defineProperty","value","unmockClientSide","writable","getMockUuid","seed","x","toString","padStart","slice","mockTimer","time","mockdate","set","Date","now","jest","advanceTimersByTime","mount","scene","root","element","document","createElement","body","appendChild","res","destroy","act","unmount","remove","createRoot","render","snapshot","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_mockdate","_interopRequireDefault","require","_react","_client","_react2","_global","global","IS_REACT_ACT_ENVIRONMENT","originalProcessVersions","process","versions","mockClientSide","Object","defineProperty","value","unmockClientSide","writable","getMockUuid","seed","x","toString","padStart","slice","mockTimer","time","mockdate","set","Date","now","jest","advanceTimersByTime","mount","scene","root","element","document","createElement","body","appendChild","res","destroy","act","unmount","remove","createRoot","render","snapshot","undefined","Error","expect","asFragment","firstChild","toMatchSnapshot"],"sources":["../../../../../src/shared/utils/jest/index.tsx"],"sourcesContent":["/* global jest, document */\n/* eslint-disable import/no-extraneous-dependencies */\n\nimport mockdate from 'mockdate';\nimport { type ReactNode, act } from 'react';\nimport { type Root, createRoot } from 'react-dom/client';\n\nimport { type RenderResult, render } from '@testing-library/react';\n\n/**\n * An alias for [act(..)](https://reactjs.org/docs/test-utils.html#act)\n * from `react`.\n */\nexport { act };\n\nexport { default as getGlobal } from './global';\n\ndeclare global {\n // eslint-disable-next-line no-var, vars-on-top\n var IS_REACT_ACT_ENVIRONMENT: boolean | undefined;\n}\n\nglobal.IS_REACT_ACT_ENVIRONMENT = true;\n\nconst originalProcessVersions = process.versions;\n\n/**\n * Tricks **react-utils** into thinking the test is running within client-side\n * (browser) environment.\n */\nexport function mockClientSide() {\n Object.defineProperty(process, 'versions', { value: null });\n}\n\n/**\n * Reverts the effect of {@link module:JU.mockClientSide mockClientSide(..)}.\n */\nexport function unmockClientSide() {\n Object.defineProperty(process, 'versions', {\n value: originalProcessVersions,\n writable: false,\n });\n}\n\n/**\n * Generates a mock UUID, or better said it determenistically transforms given\n * `seed` number into a UUID-formatted string.\n * @param {number} seed\n * @return {string}\n */\nexport function getMockUuid(seed = 0) {\n const x = seed.toString(16).padStart(32, '0');\n return `${x.slice(0, 8)}-${x.slice(8, 12)}-${x.slice(12, 16)}-${x.slice(16, 20)}-${x.slice(20)}`;\n}\n\n/**\n * Advances mock timers, and mock date by the specified time.\n * @param {number} time Time step [ms].\n * @returns {Promise} Wait for this to \"jump after\" any async code which should\n * be executed because of the mock time movement.\n */\nexport async function mockTimer(time: number) {\n mockdate.set(time + Date.now());\n jest.advanceTimersByTime(time);\n}\n\nexport type MountedSceneT = HTMLElement & {\n destroy: () => void;\n};\n\n/**\n * Mounts `scene` to the DOM, and returns the root scene element.\n * @param scene\n * @return Created container DOM element with destroy() function\n * attached.\n */\nexport function mount(scene: ReactNode): MountedSceneT {\n let root: Root;\n const element = document.createElement('div');\n document.body.appendChild(element);\n\n const res: MountedSceneT = (element as unknown) as MountedSceneT;\n res.destroy = () => {\n // NOTE: As it seems @testing-library may reset this flag to false\n // when it is simulating user events.\n global.IS_REACT_ACT_ENVIRONMENT = true;\n\n act(() => root.unmount());\n res.remove();\n };\n\n // NOTE: As it seems @testing-library may reset this flag to false\n // when it is simulating user events.\n global.IS_REACT_ACT_ENVIRONMENT = true;\n\n act(() => {\n root = createRoot(res);\n root.render(scene);\n });\n return res;\n}\n\nexport function snapshot(element: React.ReactElement) {\n let res: RenderResult | undefined;\n act(() => {\n res = render(element);\n });\n if (res === undefined) throw Error('Render failed');\n\n expect(res.asFragment().firstChild).toMatchSnapshot();\n return res;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,5 +25,5 @@
|
|
|
25
25
|
// when it is simulating user events.
|
|
26
26
|
global.IS_REACT_ACT_ENVIRONMENT=true;(0,_react.act)(()=>root.unmount());res.remove()};// NOTE: As it seems @testing-library may reset this flag to false
|
|
27
27
|
// when it is simulating user events.
|
|
28
|
-
global.IS_REACT_ACT_ENVIRONMENT=true;(0,_react.act)(()=>{root=(0,_client.createRoot)(res);root.render(scene)});return res}function snapshot(element){
|
|
28
|
+
global.IS_REACT_ACT_ENVIRONMENT=true;(0,_react.act)(()=>{root=(0,_client.createRoot)(res);root.render(scene)});return res}function snapshot(element){let res;(0,_react.act)(()=>{res=(0,_react2.render)(element)});if(res===undefined)throw Error("Render failed");expect(res.asFragment().firstChild).toMatchSnapshot();return res}
|
|
29
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_mockdate","_interopRequireDefault","require","_react","_client","_react2","_global","global","IS_REACT_ACT_ENVIRONMENT","originalProcessVersions","process","versions","mockClientSide","Object","defineProperty","value","unmockClientSide","writable","getMockUuid","seed","x","toString","padStart","slice","mockTimer","time","mockdate","set","Date","now","jest","advanceTimersByTime","mount","scene","root","element","document","createElement","body","appendChild","res","destroy","act","unmount","remove","createRoot","render","snapshot","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_mockdate","_interopRequireDefault","require","_react","_client","_react2","_global","global","IS_REACT_ACT_ENVIRONMENT","originalProcessVersions","process","versions","mockClientSide","Object","defineProperty","value","unmockClientSide","writable","getMockUuid","seed","x","toString","padStart","slice","mockTimer","time","mockdate","set","Date","now","jest","advanceTimersByTime","mount","scene","root","element","document","createElement","body","appendChild","res","destroy","act","unmount","remove","createRoot","render","snapshot","undefined","Error","expect","asFragment","firstChild","toMatchSnapshot"],"sources":["../../../../../src/shared/utils/jest/index.tsx"],"sourcesContent":["/* global jest, document */\n/* eslint-disable import/no-extraneous-dependencies */\n\nimport mockdate from 'mockdate';\nimport { type ReactNode, act } from 'react';\nimport { type Root, createRoot } from 'react-dom/client';\n\nimport { type RenderResult, render } from '@testing-library/react';\n\n/**\n * An alias for [act(..)](https://reactjs.org/docs/test-utils.html#act)\n * from `react`.\n */\nexport { act };\n\nexport { default as getGlobal } from './global';\n\ndeclare global {\n // eslint-disable-next-line no-var, vars-on-top\n var IS_REACT_ACT_ENVIRONMENT: boolean | undefined;\n}\n\nglobal.IS_REACT_ACT_ENVIRONMENT = true;\n\nconst originalProcessVersions = process.versions;\n\n/**\n * Tricks **react-utils** into thinking the test is running within client-side\n * (browser) environment.\n */\nexport function mockClientSide() {\n Object.defineProperty(process, 'versions', { value: null });\n}\n\n/**\n * Reverts the effect of {@link module:JU.mockClientSide mockClientSide(..)}.\n */\nexport function unmockClientSide() {\n Object.defineProperty(process, 'versions', {\n value: originalProcessVersions,\n writable: false,\n });\n}\n\n/**\n * Generates a mock UUID, or better said it determenistically transforms given\n * `seed` number into a UUID-formatted string.\n * @param {number} seed\n * @return {string}\n */\nexport function getMockUuid(seed = 0) {\n const x = seed.toString(16).padStart(32, '0');\n return `${x.slice(0, 8)}-${x.slice(8, 12)}-${x.slice(12, 16)}-${x.slice(16, 20)}-${x.slice(20)}`;\n}\n\n/**\n * Advances mock timers, and mock date by the specified time.\n * @param {number} time Time step [ms].\n * @returns {Promise} Wait for this to \"jump after\" any async code which should\n * be executed because of the mock time movement.\n */\nexport async function mockTimer(time: number) {\n mockdate.set(time + Date.now());\n jest.advanceTimersByTime(time);\n}\n\nexport type MountedSceneT = HTMLElement & {\n destroy: () => void;\n};\n\n/**\n * Mounts `scene` to the DOM, and returns the root scene element.\n * @param scene\n * @return Created container DOM element with destroy() function\n * attached.\n */\nexport function mount(scene: ReactNode): MountedSceneT {\n let root: Root;\n const element = document.createElement('div');\n document.body.appendChild(element);\n\n const res: MountedSceneT = (element as unknown) as MountedSceneT;\n res.destroy = () => {\n // NOTE: As it seems @testing-library may reset this flag to false\n // when it is simulating user events.\n global.IS_REACT_ACT_ENVIRONMENT = true;\n\n act(() => root.unmount());\n res.remove();\n };\n\n // NOTE: As it seems @testing-library may reset this flag to false\n // when it is simulating user events.\n global.IS_REACT_ACT_ENVIRONMENT = true;\n\n act(() => {\n root = createRoot(res);\n root.render(scene);\n });\n return res;\n}\n\nexport function snapshot(element: React.ReactElement) {\n let res: RenderResult | undefined;\n act(() => {\n res = render(element);\n });\n if (res === undefined) throw Error('Render failed');\n\n expect(res.asFragment().firstChild).toMatchSnapshot();\n return res;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ReactNode, act } from 'react';
|
|
2
|
+
import { type RenderResult } from '@testing-library/react';
|
|
2
3
|
/**
|
|
3
4
|
* An alias for [act(..)](https://reactjs.org/docs/test-utils.html#act)
|
|
4
5
|
* from `react`.
|
|
@@ -41,4 +42,4 @@ export type MountedSceneT = HTMLElement & {
|
|
|
41
42
|
* attached.
|
|
42
43
|
*/
|
|
43
44
|
export declare function mount(scene: ReactNode): MountedSceneT;
|
|
44
|
-
export declare function snapshot(element: React.ReactElement):
|
|
45
|
+
export declare function snapshot(element: React.ReactElement): RenderResult;
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.35.
|
|
2
|
+
"version": "1.35.1",
|
|
3
3
|
"bin": {
|
|
4
4
|
"react-utils-build": "bin/build.js",
|
|
5
5
|
"react-utils-setup": "bin/setup.js"
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
"react": "^18.3.1",
|
|
37
37
|
"react-dom": "^18.3.1",
|
|
38
38
|
"react-helmet": "^6.1.0",
|
|
39
|
-
"react-router-dom": "^6.23.
|
|
39
|
+
"react-router-dom": "^6.23.1",
|
|
40
40
|
"request-ip": "^3.3.0",
|
|
41
|
-
"rimraf": "^5.0.
|
|
41
|
+
"rimraf": "^5.0.7",
|
|
42
42
|
"serialize-javascript": "^6.0.2",
|
|
43
43
|
"serve-favicon": "^2.5.0",
|
|
44
44
|
"source-map-support": "^0.5.21",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@dr.pogodin/babel-preset-svgr": "^1.8.0",
|
|
62
62
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.13",
|
|
63
63
|
"@testing-library/dom": "^10.1.0",
|
|
64
|
-
"@testing-library/react": "^15.0.
|
|
64
|
+
"@testing-library/react": "^15.0.7",
|
|
65
65
|
"@testing-library/user-event": "^14.5.2",
|
|
66
66
|
"@tsconfig/recommended": "^1.0.6",
|
|
67
67
|
"@tsd/typescript": "^5.4.5",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"@types/morgan": "^1.9.9",
|
|
77
77
|
"@types/node-forge": "^1.3.11",
|
|
78
78
|
"@types/pretty": "^2.0.3",
|
|
79
|
-
"@types/react": "^18.3.
|
|
79
|
+
"@types/react": "^18.3.2",
|
|
80
80
|
"@types/react-dom": "^18.3.0",
|
|
81
81
|
"@types/react-helmet": "^6.1.11",
|
|
82
82
|
"@types/request-ip": "^0.0.41",
|
|
@@ -89,9 +89,9 @@
|
|
|
89
89
|
"babel-jest": "^29.7.0",
|
|
90
90
|
"babel-loader": "^9.1.3",
|
|
91
91
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
92
|
-
"core-js": "^3.37.
|
|
92
|
+
"core-js": "^3.37.1",
|
|
93
93
|
"css-loader": "^7.1.1",
|
|
94
|
-
"css-minimizer-webpack-plugin": "^
|
|
94
|
+
"css-minimizer-webpack-plugin": "^7.0.0",
|
|
95
95
|
"eslint": "^8.57.0",
|
|
96
96
|
"eslint-config-airbnb": "^19.0.4",
|
|
97
97
|
"eslint-config-airbnb-typescript": "^18.0.0",
|
|
@@ -115,16 +115,16 @@
|
|
|
115
115
|
"react-refresh": "^0.14.2",
|
|
116
116
|
"regenerator-runtime": "^0.14.1",
|
|
117
117
|
"resolve-url-loader": "^5.0.0",
|
|
118
|
-
"sass": "^1.
|
|
118
|
+
"sass": "^1.77.1",
|
|
119
119
|
"sass-loader": "^14.2.1",
|
|
120
120
|
"sitemap": "^7.1.1",
|
|
121
121
|
"stylelint": "^16.5.0",
|
|
122
122
|
"stylelint-config-standard-scss": "^13.1.0",
|
|
123
123
|
"supertest": "^7.0.0",
|
|
124
|
-
"tsc-alias": "^1.8.
|
|
124
|
+
"tsc-alias": "^1.8.10",
|
|
125
125
|
"typed-scss-modules": "^8.0.1",
|
|
126
126
|
"typescript": "^5.4.5",
|
|
127
|
-
"typescript-eslint": "^7.
|
|
127
|
+
"typescript-eslint": "^7.9.0",
|
|
128
128
|
"webpack": "^5.91.0",
|
|
129
129
|
"webpack-dev-middleware": "^7.2.1",
|
|
130
130
|
"webpack-hot-middleware": "^2.26.1",
|
|
@@ -5,7 +5,7 @@ import mockdate from 'mockdate';
|
|
|
5
5
|
import { type ReactNode, act } from 'react';
|
|
6
6
|
import { type Root, createRoot } from 'react-dom/client';
|
|
7
7
|
|
|
8
|
-
import { render } from '@testing-library/react';
|
|
8
|
+
import { type RenderResult, render } from '@testing-library/react';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* An alias for [act(..)](https://reactjs.org/docs/test-utils.html#act)
|
|
@@ -101,7 +101,12 @@ export function mount(scene: ReactNode): MountedSceneT {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
export function snapshot(element: React.ReactElement) {
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
let res: RenderResult | undefined;
|
|
105
|
+
act(() => {
|
|
106
|
+
res = render(element);
|
|
107
|
+
});
|
|
108
|
+
if (res === undefined) throw Error('Render failed');
|
|
109
|
+
|
|
110
|
+
expect(res.asFragment().firstChild).toMatchSnapshot();
|
|
106
111
|
return res;
|
|
107
112
|
}
|