@instructure/ui-react-utils 10.16.0 → 10.16.1-pr-snapshot-1744893671793
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/CHANGELOG.md +8 -0
- package/es/DeterministicIdContext/DeterministicIdContextProvider.js +6 -4
- package/es/DeterministicIdContext/withDeterministicId.js +6 -4
- package/es/__new-tests__/DeterministicIdContext.test.js +36 -24
- package/es/__new-tests__/callRenderProp.test.js +30 -13
- package/es/__new-tests__/deprecated.test.js +30 -17
- package/es/__new-tests__/experimental.test.js +10 -7
- package/es/__new-tests__/hack.test.js +7 -4
- package/es/__new-tests__/safeCloneElement.test.js +7 -7
- package/es/ensureSingleChild.js +6 -2
- package/es/safeCloneElement.js +3 -3
- package/lib/DeterministicIdContext/DeterministicIdContextProvider.js +5 -5
- package/lib/DeterministicIdContext/withDeterministicId.js +6 -5
- package/lib/__new-tests__/DeterministicIdContext.test.js +36 -25
- package/lib/__new-tests__/callRenderProp.test.js +30 -13
- package/lib/__new-tests__/deprecated.test.js +30 -18
- package/lib/__new-tests__/experimental.test.js +10 -8
- package/lib/__new-tests__/hack.test.js +7 -5
- package/lib/__new-tests__/safeCloneElement.test.js +10 -11
- package/lib/ensureSingleChild.js +7 -5
- package/lib/safeCloneElement.js +3 -4
- package/package.json +7 -7
- package/src/DeterministicIdContext/DeterministicIdContextProvider.tsx +1 -1
- package/src/DeterministicIdContext/withDeterministicId.tsx +2 -2
- package/src/__new-tests__/DeterministicIdContext.test.tsx +3 -3
- package/src/__new-tests__/callRenderProp.test.tsx +3 -3
- package/src/__new-tests__/deprecated.test.tsx +1 -1
- package/src/__new-tests__/experimental.test.tsx +1 -1
- package/src/__new-tests__/hack.test.tsx +1 -1
- package/src/__new-tests__/safeCloneElement.test.tsx +1 -1
- package/src/ensureSingleChild.tsx +1 -1
- package/src/safeCloneElement.ts +5 -4
- package/tsconfig.build.tsbuildinfo +1 -1
- package/types/DeterministicIdContext/DeterministicIdContextProvider.d.ts +1 -2
- package/types/DeterministicIdContext/DeterministicIdContextProvider.d.ts.map +1 -1
- package/types/DeterministicIdContext/withDeterministicId.d.ts +2 -2
- package/types/DeterministicIdContext/withDeterministicId.d.ts.map +1 -1
- package/types/ensureSingleChild.d.ts +2 -2
- package/types/ensureSingleChild.d.ts.map +1 -1
- package/types/getElementType.d.ts +1 -1
- package/types/safeCloneElement.d.ts.map +1 -1
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.DeterministicIdContextProvider = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
7
|
var _DeterministicIdContext = require("./DeterministicIdContext");
|
|
8
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
10
9
|
/*
|
|
11
10
|
* The MIT License (MIT)
|
|
12
11
|
*
|
|
@@ -47,8 +46,9 @@ const DeterministicIdContextProvider = ({
|
|
|
47
46
|
children,
|
|
48
47
|
instanceCounterMap = _DeterministicIdContext.defaultDeterministicIDMap
|
|
49
48
|
}) => {
|
|
50
|
-
return
|
|
51
|
-
value: instanceCounterMap
|
|
52
|
-
|
|
49
|
+
return (0, _jsxRuntime.jsx)(_DeterministicIdContext.DeterministicIdContext.Provider, {
|
|
50
|
+
value: instanceCounterMap,
|
|
51
|
+
children: children
|
|
52
|
+
});
|
|
53
53
|
};
|
|
54
54
|
exports.DeterministicIdContextProvider = DeterministicIdContextProvider;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.withDeterministicId = exports.default = void 0;
|
|
9
|
-
var _react =
|
|
8
|
+
var _react = require("react");
|
|
10
9
|
var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
|
|
11
10
|
var _DeterministicIdContext = require("./DeterministicIdContext");
|
|
12
11
|
var _decorator = require("@instructure/ui-decorator/lib/decorator.js");
|
|
13
12
|
var _generateId = require("@instructure/ui-utils/lib/generateId.js");
|
|
14
13
|
var _console = require("@instructure/console");
|
|
14
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
15
15
|
/*
|
|
16
16
|
* The MIT License (MIT)
|
|
17
17
|
*
|
|
@@ -52,10 +52,11 @@ const withDeterministicId = exports.withDeterministicId = (0, _decorator.decorat
|
|
|
52
52
|
if (props.deterministicId) {
|
|
53
53
|
(0, _console.warn)(false, `Manually passing the "deterministicId" property is not allowed on the ${componentName} component.\n`, props.deterministicId);
|
|
54
54
|
}
|
|
55
|
-
return
|
|
55
|
+
return (0, _jsxRuntime.jsx)(ComposedComponent, {
|
|
56
56
|
ref: ref,
|
|
57
|
-
deterministicId: deterministicId
|
|
58
|
-
|
|
57
|
+
deterministicId: deterministicId,
|
|
58
|
+
...props
|
|
59
|
+
});
|
|
59
60
|
});
|
|
60
61
|
(0, _hoistNonReactStatics.default)(WithDeterministicId, ComposedComponent);
|
|
61
62
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var _react = _interopRequireDefault(require("react"));
|
|
3
|
+
var _react = require("react");
|
|
5
4
|
var _react2 = require("@testing-library/react");
|
|
6
5
|
require("@testing-library/jest-dom");
|
|
7
6
|
var _DeterministicIdContext = require("../DeterministicIdContext");
|
|
7
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
8
8
|
var _dec, _class, _TestComponent, _div, _WrapperComponent2, _div2, _div3, _div4;
|
|
9
9
|
/*
|
|
10
10
|
* The MIT License (MIT)
|
|
@@ -29,17 +29,20 @@ var _dec, _class, _TestComponent, _div, _WrapperComponent2, _div2, _div3, _div4;
|
|
|
29
29
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
30
30
|
* SOFTWARE.
|
|
31
31
|
*/
|
|
32
|
-
let TestComponent = (_dec = (0, _DeterministicIdContext.withDeterministicId)(), _dec(_class = (_TestComponent = class TestComponent extends _react.
|
|
32
|
+
let TestComponent = (_dec = (0, _DeterministicIdContext.withDeterministicId)(), _dec(_class = (_TestComponent = class TestComponent extends _react.Component {
|
|
33
33
|
render() {
|
|
34
|
-
return
|
|
34
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
35
35
|
"data-testid": "test-component",
|
|
36
|
-
id: this.props.deterministicId()
|
|
37
|
-
|
|
36
|
+
id: this.props.deterministicId(),
|
|
37
|
+
children: this.props.children
|
|
38
|
+
});
|
|
38
39
|
}
|
|
39
40
|
}, _TestComponent.displayName = "TestComponent", _TestComponent)) || _class);
|
|
40
|
-
class WrapperComponent extends _react.
|
|
41
|
+
class WrapperComponent extends _react.Component {
|
|
41
42
|
render() {
|
|
42
|
-
return _div || (_div =
|
|
43
|
+
return _div || (_div = (0, _jsxRuntime.jsx)("div", {
|
|
44
|
+
children: (0, _jsxRuntime.jsx)(TestComponent, {})
|
|
45
|
+
}));
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
48
|
WrapperComponent.displayName = "WrapperComponent";
|
|
@@ -49,22 +52,26 @@ const uniqueIds = el => {
|
|
|
49
52
|
};
|
|
50
53
|
describe('DeterministicIdContext', () => {
|
|
51
54
|
it('can be found and tested with ReactTestUtils', () => {
|
|
52
|
-
(0, _react2.render)(_WrapperComponent2 || (_WrapperComponent2 =
|
|
55
|
+
(0, _react2.render)(_WrapperComponent2 || (_WrapperComponent2 = (0, _jsxRuntime.jsx)(WrapperComponent, {})));
|
|
53
56
|
const testComponent = _react2.screen.getByTestId('test-component');
|
|
54
57
|
expect(testComponent).toBeInTheDocument();
|
|
55
58
|
expect(testComponent.id).toBeDefined();
|
|
56
59
|
});
|
|
57
60
|
it('should generate unique ids without Provider wrapper', () => {
|
|
58
|
-
(0, _react2.render)(_div2 || (_div2 =
|
|
59
|
-
"data-testid": "test-components"
|
|
60
|
-
|
|
61
|
+
(0, _react2.render)(_div2 || (_div2 = (0, _jsxRuntime.jsxs)("div", {
|
|
62
|
+
"data-testid": "test-components",
|
|
63
|
+
children: [(0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {})]
|
|
64
|
+
})));
|
|
61
65
|
const el = _react2.screen.getByTestId('test-components');
|
|
62
66
|
expect(uniqueIds(el)).toBe(true);
|
|
63
67
|
});
|
|
64
68
|
it('should generate unique ids when components are rendered both out and inside of provider', () => {
|
|
65
|
-
(0, _react2.render)(_div3 || (_div3 =
|
|
66
|
-
"data-testid": "test-components"
|
|
67
|
-
|
|
69
|
+
(0, _react2.render)(_div3 || (_div3 = (0, _jsxRuntime.jsxs)("div", {
|
|
70
|
+
"data-testid": "test-components",
|
|
71
|
+
children: [(0, _jsxRuntime.jsxs)(_DeterministicIdContext.DeterministicIdContextProvider, {
|
|
72
|
+
children: [(0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {})]
|
|
73
|
+
}), (0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {})]
|
|
74
|
+
})));
|
|
68
75
|
const el = _react2.screen.getByTestId('test-components');
|
|
69
76
|
expect(uniqueIds(el)).toBe(true);
|
|
70
77
|
});
|
|
@@ -72,17 +79,20 @@ describe('DeterministicIdContext', () => {
|
|
|
72
79
|
const Wrapper = ({
|
|
73
80
|
children
|
|
74
81
|
}) => {
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
|
|
82
|
+
return (0, _jsxRuntime.jsx)(_DeterministicIdContext.DeterministicIdContextProvider, {
|
|
83
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
84
|
+
"data-testid": "wrapper",
|
|
85
|
+
children: children
|
|
86
|
+
})
|
|
87
|
+
});
|
|
78
88
|
};
|
|
79
89
|
const children = [];
|
|
80
90
|
for (let i = 0; i < 10; i++) {
|
|
81
|
-
children.push(
|
|
82
|
-
key: i
|
|
83
|
-
}));
|
|
91
|
+
children.push((0, _jsxRuntime.jsx)(TestComponent, {}, i));
|
|
84
92
|
}
|
|
85
|
-
(0, _react2.render)(
|
|
93
|
+
(0, _react2.render)((0, _jsxRuntime.jsx)(Wrapper, {
|
|
94
|
+
children: children
|
|
95
|
+
}));
|
|
86
96
|
const el = _react2.screen.getByTestId('wrapper');
|
|
87
97
|
expect(uniqueIds(el)).toBe(true);
|
|
88
98
|
});
|
|
@@ -90,9 +100,10 @@ describe('DeterministicIdContext', () => {
|
|
|
90
100
|
const instUIInstanceCounter = '__INSTUI_GLOBAL_INSTANCE_COUNTER__';
|
|
91
101
|
const counterValue = 345;
|
|
92
102
|
globalThis[instUIInstanceCounter].set('TestComponent', counterValue);
|
|
93
|
-
(0, _react2.render)(_div4 || (_div4 =
|
|
94
|
-
"data-testid": "test-components"
|
|
95
|
-
|
|
103
|
+
(0, _react2.render)(_div4 || (_div4 = (0, _jsxRuntime.jsxs)("div", {
|
|
104
|
+
"data-testid": "test-components",
|
|
105
|
+
children: [(0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {}), (0, _jsxRuntime.jsx)(TestComponent, {})]
|
|
106
|
+
})));
|
|
96
107
|
const instanceCounter = globalThis[instUIInstanceCounter];
|
|
97
108
|
expect(instanceCounter.get('TestComponent')).toBe(counterValue + 5);
|
|
98
109
|
});
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var _react =
|
|
4
|
+
var _react = require("react");
|
|
5
5
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
6
6
|
var _react2 = require("@testing-library/react");
|
|
7
7
|
require("@testing-library/jest-dom");
|
|
8
8
|
var _callRenderProp = require("../callRenderProp");
|
|
9
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
9
10
|
var _div, _div2;
|
|
10
11
|
/*
|
|
11
12
|
* The MIT License (MIT)
|
|
@@ -46,18 +47,22 @@ describe('callRenderProp', () => {
|
|
|
46
47
|
expect((0, _callRenderProp.callRenderProp)(false)).toEqual(false);
|
|
47
48
|
});
|
|
48
49
|
it('JSX literals', () => {
|
|
49
|
-
const Foo = () => _div || (_div =
|
|
50
|
-
|
|
50
|
+
const Foo = () => _div || (_div = (0, _jsxRuntime.jsx)("div", {
|
|
51
|
+
children: "hello"
|
|
52
|
+
}));
|
|
53
|
+
expect((0, _callRenderProp.callRenderProp)((0, _jsxRuntime.jsx)(Foo, {}))).toStrictEqual((0, _jsxRuntime.jsx)(Foo, {}));
|
|
51
54
|
});
|
|
52
55
|
it('React classes', () => {
|
|
53
|
-
class Foo extends _react.
|
|
56
|
+
class Foo extends _react.Component {
|
|
54
57
|
render() {
|
|
55
|
-
return _div2 || (_div2 =
|
|
58
|
+
return _div2 || (_div2 = (0, _jsxRuntime.jsx)("div", {
|
|
59
|
+
children: "hello"
|
|
60
|
+
}));
|
|
56
61
|
}
|
|
57
62
|
}
|
|
58
63
|
Foo.displayName = "Foo";
|
|
59
64
|
const Result = (0, _callRenderProp.callRenderProp)(Foo);
|
|
60
|
-
expect(Result).toStrictEqual(
|
|
65
|
+
expect(Result).toStrictEqual((0, _jsxRuntime.jsx)(Foo, {}));
|
|
61
66
|
const _render = (0, _react2.render)(Result),
|
|
62
67
|
getByText = _render.getByText;
|
|
63
68
|
expect(getByText('hello')).toBeInTheDocument();
|
|
@@ -67,7 +72,9 @@ describe('callRenderProp', () => {
|
|
|
67
72
|
return 'some text';
|
|
68
73
|
};
|
|
69
74
|
const result = (0, _callRenderProp.callRenderProp)(Baz);
|
|
70
|
-
const _render2 = (0, _react2.render)(
|
|
75
|
+
const _render2 = (0, _react2.render)((0, _jsxRuntime.jsx)("div", {
|
|
76
|
+
children: result
|
|
77
|
+
})),
|
|
71
78
|
getByText = _render2.getByText;
|
|
72
79
|
expect(getByText('some text')).toBeInTheDocument();
|
|
73
80
|
});
|
|
@@ -83,7 +90,9 @@ describe('callRenderProp', () => {
|
|
|
83
90
|
// if it was a real untranspiled fat arrow function.
|
|
84
91
|
if (Baz.prototype) Baz.prototype = void 0;
|
|
85
92
|
const result = (0, _callRenderProp.callRenderProp)(Baz);
|
|
86
|
-
const _render3 = (0, _react2.render)(
|
|
93
|
+
const _render3 = (0, _react2.render)((0, _jsxRuntime.jsx)("div", {
|
|
94
|
+
children: result
|
|
95
|
+
})),
|
|
87
96
|
getByText = _render3.getByText;
|
|
88
97
|
expect(getByText('some text')).toBeInTheDocument();
|
|
89
98
|
});
|
|
@@ -91,18 +100,24 @@ describe('callRenderProp', () => {
|
|
|
91
100
|
it('should pass props correctly to functions', () => {
|
|
92
101
|
const someFunc = ({
|
|
93
102
|
shape
|
|
94
|
-
}) =>
|
|
103
|
+
}) => (0, _jsxRuntime.jsx)("div", {
|
|
104
|
+
children: shape
|
|
105
|
+
});
|
|
95
106
|
const result = (0, _callRenderProp.callRenderProp)(someFunc, {
|
|
96
107
|
shape: 'rectangle'
|
|
97
108
|
});
|
|
98
|
-
const _render4 = (0, _react2.render)(
|
|
109
|
+
const _render4 = (0, _react2.render)((0, _jsxRuntime.jsx)("div", {
|
|
110
|
+
children: result
|
|
111
|
+
})),
|
|
99
112
|
getByText = _render4.getByText;
|
|
100
113
|
expect(getByText('rectangle')).toBeInTheDocument();
|
|
101
114
|
});
|
|
102
115
|
it('should pass props correctly to React classes', () => {
|
|
103
|
-
class Foo extends _react.
|
|
116
|
+
class Foo extends _react.Component {
|
|
104
117
|
render() {
|
|
105
|
-
return
|
|
118
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
119
|
+
children: this.props.shape
|
|
120
|
+
});
|
|
106
121
|
}
|
|
107
122
|
}
|
|
108
123
|
Foo.displayName = "Foo";
|
|
@@ -115,7 +130,9 @@ describe('callRenderProp', () => {
|
|
|
115
130
|
const result = (0, _callRenderProp.callRenderProp)(Foo, {
|
|
116
131
|
shape: 'rectangle'
|
|
117
132
|
});
|
|
118
|
-
const _render5 = (0, _react2.render)(
|
|
133
|
+
const _render5 = (0, _react2.render)((0, _jsxRuntime.jsx)("div", {
|
|
134
|
+
children: result
|
|
135
|
+
})),
|
|
119
136
|
getByText = _render5.getByText;
|
|
120
137
|
expect(getByText('rectangle')).toBeInTheDocument();
|
|
121
138
|
});
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var
|
|
5
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
4
|
+
var _react = require("react");
|
|
6
5
|
var _vitest = require("vitest");
|
|
7
6
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
7
|
var _react2 = require("@testing-library/react");
|
|
9
8
|
require("@testing-library/jest-dom");
|
|
10
9
|
var _deprecated = require("../deprecated");
|
|
10
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
11
11
|
/*
|
|
12
12
|
* The MIT License (MIT)
|
|
13
13
|
*
|
|
@@ -34,7 +34,9 @@ var _deprecated = require("../deprecated");
|
|
|
34
34
|
|
|
35
35
|
class TestComponent extends _react.Component {
|
|
36
36
|
render() {
|
|
37
|
-
return
|
|
37
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
38
|
+
children: [this.props.qux, " ", this.props.bar]
|
|
39
|
+
});
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
TestComponent.displayName = "TestComponent";
|
|
@@ -55,7 +57,7 @@ describe('@deprecated', () => {
|
|
|
55
57
|
})(TestComponent);
|
|
56
58
|
it('should warn when suggesting new prop when using old prop', () => {
|
|
57
59
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
58
|
-
(0, _react2.render)(_DeprecatedComponent || (_DeprecatedComponent =
|
|
60
|
+
(0, _react2.render)(_DeprecatedComponent || (_DeprecatedComponent = (0, _jsxRuntime.jsx)(DeprecatedComponent, {
|
|
59
61
|
foo: "Jane"
|
|
60
62
|
})));
|
|
61
63
|
const expectedWarningMessage = 'Warning: [TestComponent] `foo` is deprecated and will be removed in version 2.1.0. Use `bar` instead. ';
|
|
@@ -64,7 +66,7 @@ describe('@deprecated', () => {
|
|
|
64
66
|
});
|
|
65
67
|
it('should warn when using old prop with no new prop', () => {
|
|
66
68
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
67
|
-
(0, _react2.render)(_DeprecatedComponent2 || (_DeprecatedComponent2 =
|
|
69
|
+
(0, _react2.render)(_DeprecatedComponent2 || (_DeprecatedComponent2 = (0, _jsxRuntime.jsx)(DeprecatedComponent, {
|
|
68
70
|
baz: "Goodbye"
|
|
69
71
|
})));
|
|
70
72
|
const expectedWarningMessage = 'Warning: [TestComponent] `baz` is deprecated and will be removed in version 2.1.0.';
|
|
@@ -73,7 +75,7 @@ describe('@deprecated', () => {
|
|
|
73
75
|
});
|
|
74
76
|
it('should not output a warning using new prop', () => {
|
|
75
77
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
76
|
-
(0, _react2.render)(_DeprecatedComponent3 || (_DeprecatedComponent3 =
|
|
78
|
+
(0, _react2.render)(_DeprecatedComponent3 || (_DeprecatedComponent3 = (0, _jsxRuntime.jsx)(DeprecatedComponent, {
|
|
77
79
|
bar: "Jane"
|
|
78
80
|
})));
|
|
79
81
|
expect(consoleWarningSpy).not.toHaveBeenCalled();
|
|
@@ -85,7 +87,7 @@ describe('@deprecated', () => {
|
|
|
85
87
|
const DeprecatedComponent = (0, _deprecated.deprecated)('3.4.0')(TestComponent);
|
|
86
88
|
it('should warn that the entire component is deprecated if no old props are supplied', () => {
|
|
87
89
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
88
|
-
(0, _react2.render)(_DeprecatedComponent4 || (_DeprecatedComponent4 =
|
|
90
|
+
(0, _react2.render)(_DeprecatedComponent4 || (_DeprecatedComponent4 = (0, _jsxRuntime.jsx)(DeprecatedComponent, {})));
|
|
89
91
|
const expectedWarningMessage = 'Warning: [TestComponent] is deprecated and will be removed in version 3.4.0.';
|
|
90
92
|
expect(consoleWarningSpy).toHaveBeenCalledWith(expect.stringContaining(expectedWarningMessage), expect.any(String));
|
|
91
93
|
consoleWarningSpy.mockRestore();
|
|
@@ -97,7 +99,7 @@ describe('@deprecated', () => {
|
|
|
97
99
|
it('should warn that the component is deprecated and output a warning that the package changed', () => {
|
|
98
100
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
99
101
|
const expectedWarningMessage = 'Warning: [TestComponent] is deprecated and will be removed in version 5.0.0. It has been moved from @instructure/ui-forms to @instructure/ui-number-input.';
|
|
100
|
-
(0, _react2.render)(_DeprecatedComponent5 || (_DeprecatedComponent5 =
|
|
102
|
+
(0, _react2.render)(_DeprecatedComponent5 || (_DeprecatedComponent5 = (0, _jsxRuntime.jsx)(DeprecatedComponent, {})));
|
|
101
103
|
expect(consoleWarningSpy).toHaveBeenCalledWith(expect.stringContaining(expectedWarningMessage), expect.any(String));
|
|
102
104
|
consoleWarningSpy.mockRestore();
|
|
103
105
|
});
|
|
@@ -107,7 +109,9 @@ describe('@deprecated', () => {
|
|
|
107
109
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
108
110
|
class DeprecatedPropValueComponent extends _react.Component {
|
|
109
111
|
render() {
|
|
110
|
-
return
|
|
112
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
113
|
+
children: this.props.color
|
|
114
|
+
});
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
DeprecatedPropValueComponent.displayName = "DeprecatedPropValueComponent";
|
|
@@ -117,7 +121,7 @@ describe('@deprecated', () => {
|
|
|
117
121
|
DeprecatedPropValueComponent.defaultProps = {
|
|
118
122
|
color: 'red'
|
|
119
123
|
};
|
|
120
|
-
(0, _react2.render)(
|
|
124
|
+
(0, _react2.render)((0, _jsxRuntime.jsx)(DeprecatedPropValueComponent, {
|
|
121
125
|
color: "yellow"
|
|
122
126
|
}));
|
|
123
127
|
expect(consoleWarningSpy).not.toHaveBeenCalled();
|
|
@@ -128,7 +132,9 @@ describe('@deprecated', () => {
|
|
|
128
132
|
const color = 'orange';
|
|
129
133
|
class DeprecatedPropValueComponent extends _react.Component {
|
|
130
134
|
render() {
|
|
131
|
-
return
|
|
135
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
136
|
+
children: this.props.color
|
|
137
|
+
});
|
|
132
138
|
}
|
|
133
139
|
}
|
|
134
140
|
DeprecatedPropValueComponent.displayName = "DeprecatedPropValueComponent";
|
|
@@ -138,7 +144,7 @@ describe('@deprecated', () => {
|
|
|
138
144
|
DeprecatedPropValueComponent.defaultProps = {
|
|
139
145
|
color: 'red'
|
|
140
146
|
};
|
|
141
|
-
(0, _react2.render)(
|
|
147
|
+
(0, _react2.render)((0, _jsxRuntime.jsx)(DeprecatedPropValueComponent, {
|
|
142
148
|
color: color
|
|
143
149
|
}));
|
|
144
150
|
const expectedWarningMessage = `The '${color}' value for the \`color\` prop is deprecated.`;
|
|
@@ -151,7 +157,9 @@ describe('@deprecated', () => {
|
|
|
151
157
|
const message = 'It will be removed in v8.0.0.';
|
|
152
158
|
class DeprecatedPropValueComponent extends _react.Component {
|
|
153
159
|
render() {
|
|
154
|
-
return
|
|
160
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
161
|
+
children: this.props.color
|
|
162
|
+
});
|
|
155
163
|
}
|
|
156
164
|
}
|
|
157
165
|
DeprecatedPropValueComponent.displayName = "DeprecatedPropValueComponent";
|
|
@@ -161,7 +169,7 @@ describe('@deprecated', () => {
|
|
|
161
169
|
DeprecatedPropValueComponent.defaultProps = {
|
|
162
170
|
color: 'red'
|
|
163
171
|
};
|
|
164
|
-
(0, _react2.render)(
|
|
172
|
+
(0, _react2.render)((0, _jsxRuntime.jsx)(DeprecatedPropValueComponent, {
|
|
165
173
|
color: color
|
|
166
174
|
}));
|
|
167
175
|
const expectedWarningMessage = `The '${color}' value for the \`color\` prop is deprecated. ${message}`;
|
|
@@ -174,7 +182,9 @@ describe('@deprecated', () => {
|
|
|
174
182
|
const color = 'gold';
|
|
175
183
|
class DeprecatedPropValueComponent extends _react.Component {
|
|
176
184
|
render() {
|
|
177
|
-
return
|
|
185
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
186
|
+
children: this.props.color
|
|
187
|
+
});
|
|
178
188
|
}
|
|
179
189
|
}
|
|
180
190
|
DeprecatedPropValueComponent.displayName = "DeprecatedPropValueComponent";
|
|
@@ -184,7 +194,7 @@ describe('@deprecated', () => {
|
|
|
184
194
|
DeprecatedPropValueComponent.defaultProps = {
|
|
185
195
|
color: 'red'
|
|
186
196
|
};
|
|
187
|
-
(0, _react2.render)(
|
|
197
|
+
(0, _react2.render)((0, _jsxRuntime.jsx)(DeprecatedPropValueComponent, {
|
|
188
198
|
color: color
|
|
189
199
|
}));
|
|
190
200
|
const _messageMock$mock$cal = messageMock.mock.calls[0][0],
|
|
@@ -204,7 +214,9 @@ describe('@deprecated', () => {
|
|
|
204
214
|
const color = 'gold';
|
|
205
215
|
class DeprecatedPropValueComponent extends _react.Component {
|
|
206
216
|
render() {
|
|
207
|
-
return
|
|
217
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
218
|
+
children: this.props.color
|
|
219
|
+
});
|
|
208
220
|
}
|
|
209
221
|
}
|
|
210
222
|
DeprecatedPropValueComponent.displayName = "DeprecatedPropValueComponent";
|
|
@@ -217,7 +229,7 @@ describe('@deprecated', () => {
|
|
|
217
229
|
DeprecatedPropValueComponent.defaultProps = {
|
|
218
230
|
color: 'red'
|
|
219
231
|
};
|
|
220
|
-
(0, _react2.render)(
|
|
232
|
+
(0, _react2.render)((0, _jsxRuntime.jsx)(DeprecatedPropValueComponent, {
|
|
221
233
|
color: color
|
|
222
234
|
}));
|
|
223
235
|
const expectedWarningMessage = `The ${color} value for color has been deprecated. Use the FooBar component with the 'baz' prop set instead.`;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var
|
|
5
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
4
|
+
var _react = require("react");
|
|
6
5
|
var _vitest = require("vitest");
|
|
7
6
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
7
|
var _react2 = require("@testing-library/react");
|
|
9
8
|
require("@testing-library/jest-dom");
|
|
10
9
|
var _experimental = require("../experimental");
|
|
10
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
11
11
|
/*
|
|
12
12
|
* The MIT License (MIT)
|
|
13
13
|
*
|
|
@@ -34,7 +34,9 @@ var _experimental = require("../experimental");
|
|
|
34
34
|
|
|
35
35
|
class TestComponent extends _react.Component {
|
|
36
36
|
render() {
|
|
37
|
-
return
|
|
37
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
38
|
+
children: [this.props.qux, " ", this.props.bar]
|
|
39
|
+
});
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
TestComponent.displayName = "TestComponent";
|
|
@@ -52,7 +54,7 @@ describe('@experimental', () => {
|
|
|
52
54
|
const ExperimentalComponent = (0, _experimental.experimental)(['bar'])(TestComponent);
|
|
53
55
|
it('should warn when using an experimental prop', () => {
|
|
54
56
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
55
|
-
(0, _react2.render)(_ExperimentalComponen || (_ExperimentalComponen =
|
|
57
|
+
(0, _react2.render)(_ExperimentalComponen || (_ExperimentalComponen = (0, _jsxRuntime.jsx)(ExperimentalComponent, {
|
|
56
58
|
bar: "Jane"
|
|
57
59
|
})));
|
|
58
60
|
const expectedWarningMessage = 'Warning: [TestComponent] The `bar` prop is experimental and its API could change significantly in a future release.';
|
|
@@ -61,7 +63,7 @@ describe('@experimental', () => {
|
|
|
61
63
|
});
|
|
62
64
|
it('should not output a warning using a non-experimental prop', () => {
|
|
63
65
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
64
|
-
(0, _react2.render)(_ExperimentalComponen2 || (_ExperimentalComponen2 =
|
|
66
|
+
(0, _react2.render)(_ExperimentalComponen2 || (_ExperimentalComponen2 = (0, _jsxRuntime.jsx)(ExperimentalComponent, {
|
|
65
67
|
qux: "Jane"
|
|
66
68
|
})));
|
|
67
69
|
expect(consoleWarningSpy).not.toHaveBeenCalled();
|
|
@@ -69,7 +71,7 @@ describe('@experimental', () => {
|
|
|
69
71
|
});
|
|
70
72
|
it('should not output a warning for an experimental prop when dangerously ignored', () => {
|
|
71
73
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
72
|
-
(0, _react2.render)(_ExperimentalComponen3 || (_ExperimentalComponen3 =
|
|
74
|
+
(0, _react2.render)(_ExperimentalComponen3 || (_ExperimentalComponen3 = (0, _jsxRuntime.jsx)(ExperimentalComponent, {
|
|
73
75
|
qux: "Jane",
|
|
74
76
|
__dangerouslyIgnoreExperimentalWarnings: true
|
|
75
77
|
})));
|
|
@@ -82,14 +84,14 @@ describe('@experimental', () => {
|
|
|
82
84
|
const ExperimentalComponent = (0, _experimental.experimental)()(TestComponent);
|
|
83
85
|
it('should warn that the entire component is experimental if no props are supplied', () => {
|
|
84
86
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
85
|
-
(0, _react2.render)(_ExperimentalComponen4 || (_ExperimentalComponen4 =
|
|
87
|
+
(0, _react2.render)(_ExperimentalComponen4 || (_ExperimentalComponen4 = (0, _jsxRuntime.jsx)(ExperimentalComponent, {})));
|
|
86
88
|
const expectedWarningMessage = 'Warning: [TestComponent] is experimental and its API could change significantly in a future release.';
|
|
87
89
|
expect(consoleWarningSpy).toHaveBeenCalledWith(expect.stringContaining(expectedWarningMessage), expect.any(String));
|
|
88
90
|
consoleWarningSpy.mockRestore();
|
|
89
91
|
});
|
|
90
92
|
it('should not output a warning for a component when dangerously ignored', () => {
|
|
91
93
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
92
|
-
(0, _react2.render)(_ExperimentalComponen5 || (_ExperimentalComponen5 =
|
|
94
|
+
(0, _react2.render)(_ExperimentalComponen5 || (_ExperimentalComponen5 = (0, _jsxRuntime.jsx)(ExperimentalComponent, {
|
|
93
95
|
__dangerouslyIgnoreExperimentalWarnings: true
|
|
94
96
|
})));
|
|
95
97
|
expect(consoleWarningSpy).not.toHaveBeenCalled();
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var
|
|
5
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
4
|
+
var _react = require("react");
|
|
6
5
|
var _vitest = require("vitest");
|
|
7
6
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
7
|
var _react2 = require("@testing-library/react");
|
|
9
8
|
require("@testing-library/jest-dom");
|
|
10
9
|
var _hack = require("../hack");
|
|
10
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
11
11
|
/*
|
|
12
12
|
* The MIT License (MIT)
|
|
13
13
|
*
|
|
@@ -34,7 +34,9 @@ var _hack = require("../hack");
|
|
|
34
34
|
|
|
35
35
|
class TestComponent extends _react.Component {
|
|
36
36
|
render() {
|
|
37
|
-
return
|
|
37
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
38
|
+
children: [this.props.qux, " ", this.props.bar]
|
|
39
|
+
});
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
TestComponent.displayName = "TestComponent";
|
|
@@ -52,7 +54,7 @@ describe('@hack', () => {
|
|
|
52
54
|
const HackComponent = (0, _hack.hack)(['bar'])(TestComponent);
|
|
53
55
|
it('should warn when using an hack prop', () => {
|
|
54
56
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
55
|
-
(0, _react2.render)(_HackComponent || (_HackComponent =
|
|
57
|
+
(0, _react2.render)(_HackComponent || (_HackComponent = (0, _jsxRuntime.jsx)(HackComponent, {
|
|
56
58
|
bar: "Jane"
|
|
57
59
|
})));
|
|
58
60
|
const expectedWarningMessage = 'Warning: [TestComponent] The `bar` prop is a temporary hack and will be removed in a future release.';
|
|
@@ -61,7 +63,7 @@ describe('@hack', () => {
|
|
|
61
63
|
});
|
|
62
64
|
it('should not output a warning using a non-hack prop', () => {
|
|
63
65
|
const consoleWarningSpy = _vitest.vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
64
|
-
(0, _react2.render)(_HackComponent2 || (_HackComponent2 =
|
|
66
|
+
(0, _react2.render)(_HackComponent2 || (_HackComponent2 = (0, _jsxRuntime.jsx)(HackComponent, {
|
|
65
67
|
qux: "Jane"
|
|
66
68
|
})));
|
|
67
69
|
expect(consoleWarningSpy).not.toHaveBeenCalled();
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var _react = _interopRequireDefault(require("react"));
|
|
5
3
|
var _vitest = require("vitest");
|
|
6
4
|
var _createChainedFunction = require("@instructure/ui-utils/lib/createChainedFunction.js");
|
|
7
|
-
var
|
|
5
|
+
var _react = require("@testing-library/react");
|
|
8
6
|
require("@testing-library/jest-dom");
|
|
9
7
|
var _safeCloneElement = require("../safeCloneElement");
|
|
8
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
10
9
|
/*
|
|
11
10
|
* The MIT License (MIT)
|
|
12
11
|
*
|
|
@@ -42,8 +41,8 @@ describe('safeCloneElement', () => {
|
|
|
42
41
|
it('should preserve refs', () => {
|
|
43
42
|
const origRef = _vitest.vi.fn();
|
|
44
43
|
const cloneRef = _vitest.vi.fn();
|
|
45
|
-
(0,
|
|
46
|
-
element:
|
|
44
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(SafeClone, {
|
|
45
|
+
element: (0, _jsxRuntime.jsx)("div", {
|
|
47
46
|
ref: origRef
|
|
48
47
|
}),
|
|
49
48
|
props: {
|
|
@@ -56,15 +55,15 @@ describe('safeCloneElement', () => {
|
|
|
56
55
|
it('should preserve event handlers', () => {
|
|
57
56
|
const onClickA = _vitest.vi.fn();
|
|
58
57
|
const onClickB = _vitest.vi.fn();
|
|
59
|
-
(0,
|
|
60
|
-
element:
|
|
58
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(SafeClone, {
|
|
59
|
+
element: (0, _jsxRuntime.jsx)("button", {
|
|
61
60
|
onClick: onClickA
|
|
62
61
|
}),
|
|
63
62
|
props: {
|
|
64
63
|
onClick: onClickB
|
|
65
64
|
}
|
|
66
65
|
}));
|
|
67
|
-
const button =
|
|
66
|
+
const button = _react.screen.getByRole('button');
|
|
68
67
|
button.click();
|
|
69
68
|
expect(onClickA).toHaveBeenCalled();
|
|
70
69
|
expect(onClickB).toHaveBeenCalled();
|
|
@@ -73,15 +72,15 @@ describe('safeCloneElement', () => {
|
|
|
73
72
|
const onClickA = _vitest.vi.fn();
|
|
74
73
|
const onClickB = _vitest.vi.fn();
|
|
75
74
|
const onClickC = _vitest.vi.fn();
|
|
76
|
-
(0,
|
|
77
|
-
element:
|
|
75
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(SafeClone, {
|
|
76
|
+
element: (0, _jsxRuntime.jsx)("button", {
|
|
78
77
|
onClick: onClickA
|
|
79
78
|
}),
|
|
80
79
|
props: {
|
|
81
80
|
onClick: (0, _createChainedFunction.createChainedFunction)(onClickB, onClickC)
|
|
82
81
|
}
|
|
83
82
|
}));
|
|
84
|
-
const button =
|
|
83
|
+
const button = _react.screen.getByRole('button');
|
|
85
84
|
button.click();
|
|
86
85
|
expect(onClickA).toHaveBeenCalled();
|
|
87
86
|
expect(onClickB).toHaveBeenCalled();
|