Skip to content

Commit f7d55fe

Browse files
committed
Merge branch '19' of github.com:/reasonml/reason-react into replace-testing-libraries
* '19' of github.com:/reasonml/reason-react: Add deprecations on ReactDOMTestUtils Add uri comment back on action Update src/React.re Update src/React.re Update src/React.re Snapshot with lower {}
2 parents b39168f + f5f5579 commit f7d55fe

File tree

6 files changed

+198
-28
lines changed

6 files changed

+198
-28
lines changed

src/React.re

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -887,14 +887,16 @@ external useDebugValue: ('value, ~format: 'value => string=?, unit) => unit =
887887

888888
module Experimental = {
889889
/* This module is used to bind to APIs for future versions of React. There is no guarantee of backwards compatibility or stability. */
890+
/* https://react.dev/reference/react/use */
890891
[@mel.module "react"] external usePromise: Js.Promise.t('a) => 'a = "use";
891892
[@mel.module "react"] external useContext: Context.t('a) => 'a = "use";
893+
/* https://react.dev/reference/react/useTransition */
892894
[@mel.module "react"]
893895
external useTransitionAsync:
894896
unit => (bool, callbackAsync(callbackAsync(unit, unit), unit)) =
895897
"useTransition";
896898

897-
/* https://es.react.dev/reference/react/useOptimistic */
899+
/* https://react.dev/reference/react/useOptimistic */
898900
[@mel.module "react"]
899901
external useOptimistic:
900902
('state, ('state, 'optimisticValue) => 'state) =>

src/ReactDOM.re

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ type domProps = {
652652
[@mel.optional]
653653
acceptCharset: option(string),
654654
[@mel.optional]
655-
action: option(string),
655+
action: option(string), /* uri */
656656
[@mel.optional]
657657
allowFullScreen: option(bool),
658658
[@mel.optional]

src/ReactDOMTestUtils.re

Lines changed: 91 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ let undefined: undefined = Js.Undefined.empty;
55
[@mel.module "react"]
66
external reactAct: ((. unit) => undefined) => unit = "act";
77

8+
[@deprecated "use React.act instead"]
89
let act: (unit => unit) => unit =
910
func => {
1011
let reactFunc =
@@ -19,6 +20,7 @@ let act: (unit => unit) => unit =
1920
external reactActAsync: ((. unit) => Js.Promise.t('a)) => Js.Promise.t(unit) =
2021
"act";
2122

23+
[@deprecated "use React.actAsync instead"]
2224
let actAsync = func => {
2325
let reactFunc =
2426
(.) => {
@@ -27,35 +29,73 @@ let actAsync = func => {
2729
reactActAsync(reactFunc);
2830
};
2931

32+
[@deprecated
33+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
34+
]
3035
[@mel.module "react-dom/test-utils"]
3136
external isElement: 'element => bool = "isElement";
3237

38+
[@deprecated
39+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
40+
]
3341
[@mel.module "react-dom/test-utils"]
3442
external isElementOfType: ('element, React.component('props)) => bool =
3543
"isElementOfType";
3644

45+
[@deprecated
46+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
47+
]
3748
[@mel.module "react-dom/test-utils"]
3849
external isDOMComponent: 'element => bool = "isDOMComponent";
3950

51+
[@deprecated
52+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
53+
]
4054
[@mel.module "react-dom/test-utils"]
4155
external isCompositeComponent: 'element => bool = "isCompositeComponent";
4256

57+
[@deprecated
58+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
59+
]
4360
[@mel.module "react-dom/test-utils"]
4461
external isCompositeComponentWithType:
4562
('element, React.component('props)) => bool =
4663
"isCompositeComponentWithType";
4764

4865
module Simulate = {
49-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
66+
[@deprecated
67+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
68+
]
69+
[@mel.module "react-dom/test-utils"]
70+
[@mel.scope "Simulate"]
5071
external click: Dom.element => unit = "click";
51-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
72+
73+
[@deprecated
74+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
75+
]
76+
[@mel.module "react-dom/test-utils"]
77+
[@mel.scope "Simulate"]
5278
external clickWithEvent: (Dom.element, 'event) => unit = "click";
53-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
79+
[@deprecated
80+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
81+
]
82+
[@mel.module "react-dom/test-utils"]
83+
[@mel.scope "Simulate"]
5484
external change: Dom.element => unit = "change";
55-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
85+
86+
[@deprecated
87+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
88+
]
89+
[@mel.module "react-dom/test-utils"]
90+
[@mel.scope "Simulate"]
5691
external blur: Dom.element => unit = "blur";
92+
5793
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
5894
external changeWithEvent: (Dom.element, 'event) => unit = "change";
95+
96+
[@deprecated
97+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
98+
]
5999
let changeWithValue = (element, value) => {
60100
let event = {
61101
"target": {
@@ -64,6 +104,10 @@ module Simulate = {
64104
};
65105
changeWithEvent(element, event);
66106
};
107+
108+
[@deprecated
109+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
110+
]
67111
let changeWithChecked = (element, value) => {
68112
let event = {
69113
"target": {
@@ -72,11 +116,23 @@ module Simulate = {
72116
};
73117
changeWithEvent(element, event);
74118
};
75-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
119+
[@deprecated
120+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
121+
]
122+
[@mel.module "react-dom/test-utils"]
123+
[@mel.scope "Simulate"]
76124
external canPlay: Dom.element => unit = "canPlay";
77-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
125+
[@deprecated
126+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
127+
]
128+
[@mel.module "react-dom/test-utils"]
129+
[@mel.scope "Simulate"]
78130
external timeUpdate: Dom.element => unit = "timeUpdate";
79-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
131+
[@deprecated
132+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
133+
]
134+
[@mel.module "react-dom/test-utils"]
135+
[@mel.scope "Simulate"]
80136
external ended: Dom.element => unit = "ended";
81137
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
82138
external focus: Dom.element => unit = "focus";
@@ -101,7 +157,9 @@ external body: Dom.document => option(Dom.element) = "body";
101157
[@mel.send]
102158
external createElement: (Dom.document, string) => Dom.element =
103159
"createElement";
160+
104161
[@mel.send] external remove: Dom.element => unit = "remove";
162+
105163
[@mel.send]
106164
external appendChild: (Dom.element, Dom.element) => Dom.element =
107165
"appendChild";
@@ -111,38 +169,63 @@ let querySelectorAll = (element, string) => {
111169
};
112170

113171
module DOM = {
114-
[@mel.return nullable] [@mel.get]
172+
[@deprecated
173+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
174+
]
175+
[@mel.return nullable]
176+
[@mel.get]
115177
external value: Dom.element => option(string) = "value";
116178

179+
[@deprecated
180+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
181+
]
117182
let findBySelector = (element, selector) =>
118183
querySelector(element, selector);
119184

185+
[@deprecated
186+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
187+
]
120188
let findByAllSelector = (element, selector) =>
121189
querySelectorAll(element, selector);
122190

191+
[@deprecated
192+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
193+
]
123194
let findBySelectorAndTextContent = (element, selector, content) =>
124195
querySelectorAll(element, selector)
125196
|> Array.find_opt(node => node->textContent === content);
126197

198+
[@deprecated
199+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
200+
]
127201
let findBySelectorAndPartialTextContent = (element, selector, content) =>
128202
querySelectorAll(element, selector)
129203
|> Array.find_opt(node =>
130204
Js.String.includes(~search=content, node->textContent)
131205
);
132206
};
133207

208+
[@deprecated
209+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
210+
]
134211
let prepareContainer = (container: ref(option(Dom.element)), ()) => {
135212
let containerElement = document->createElement("div");
136213
let _: option(_) =
137214
Option.map(body => body->appendChild(containerElement), document->body);
138215
container := Some(containerElement);
139216
};
140217

218+
[@deprecated
219+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
220+
]
141221
let cleanupContainer = (container: ref(option(Dom.element)), ()) => {
142222
let _: option(_) = Option.map(remove, container^);
143223
container := None;
144224
};
145225

226+
[@deprecated
227+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
228+
]
146229
let getContainer = container => {
147230
container.contents->Option.get;
148231
};

src/ReactDOMTestUtils.rei

Lines changed: 101 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,145 @@
1-
let act: (unit => unit) => unit;
1+
let act: [@deprecated "use React.act instead"] ((unit => unit) => unit);
22

3-
let actAsync: (unit => Js.Promise.t('a)) => Js.Promise.t(unit);
3+
let actAsync:
4+
[@deprecated "use React.actAsync instead"] (
5+
(unit => Js.Promise.t('a)) => Js.Promise.t(unit)
6+
);
47

58
[@mel.module "react-dom/test-utils"]
9+
[@deprecated
10+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
11+
]
612
external isElement: 'element => bool = "isElement";
713

814
[@mel.module "react-dom/test-utils"]
15+
[@deprecated
16+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
17+
]
918
external isElementOfType: ('element, React.component('props)) => bool =
1019
"isElementOfType";
1120

1221
[@mel.module "react-dom/test-utils"]
22+
[@deprecated
23+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
24+
]
1325
external isDOMComponent: 'element => bool = "isDOMComponent";
1426

1527
[@mel.module "react-dom/test-utils"]
28+
[@deprecated
29+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
30+
]
1631
external isCompositeComponent: 'element => bool = "isCompositeComponent";
1732

33+
[@deprecated
34+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
35+
]
1836
[@mel.module "react-dom/test-utils"]
1937
external isCompositeComponentWithType:
2038
('element, React.component('props)) => bool =
2139
"isCompositeComponentWithType";
2240

2341
module Simulate: {
24-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
42+
[@deprecated
43+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
44+
]
45+
[@mel.module "react-dom/test-utils"]
46+
[@mel.scope "Simulate"]
2547
external click: Dom.element => unit = "click";
26-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
48+
[@deprecated
49+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
50+
]
51+
[@mel.module "react-dom/test-utils"]
52+
[@mel.scope "Simulate"]
2753
external clickWithEvent: (Dom.element, 'event) => unit = "click";
28-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
54+
[@deprecated
55+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
56+
]
57+
[@mel.module "react-dom/test-utils"]
58+
[@mel.scope "Simulate"]
2959
external change: Dom.element => unit = "change";
30-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
60+
[@deprecated
61+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
62+
]
63+
[@mel.module "react-dom/test-utils"]
64+
[@mel.scope "Simulate"]
3165
external blur: Dom.element => unit = "blur";
32-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
66+
[@deprecated
67+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
68+
]
69+
[@mel.module "react-dom/test-utils"]
70+
[@mel.scope "Simulate"]
3371
external changeWithEvent: (Dom.element, 'event) => unit = "change";
3472
let changeWithValue: (Dom.element, string) => unit;
3573
let changeWithChecked: (Dom.element, bool) => unit;
36-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
74+
[@deprecated
75+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
76+
]
77+
[@mel.module "react-dom/test-utils"]
78+
[@mel.scope "Simulate"]
3779
external canPlay: Dom.element => unit = "canPlay";
38-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
80+
[@deprecated
81+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
82+
]
83+
[@mel.module "react-dom/test-utils"]
84+
[@mel.scope "Simulate"]
3985
external timeUpdate: Dom.element => unit = "timeUpdate";
40-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
86+
[@deprecated
87+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
88+
]
89+
[@mel.module "react-dom/test-utils"]
90+
[@mel.scope "Simulate"]
4191
external ended: Dom.element => unit = "ended";
42-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
92+
[@deprecated
93+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
94+
]
95+
[@mel.module "react-dom/test-utils"]
96+
[@mel.scope "Simulate"]
4397
external focus: Dom.element => unit = "focus";
4498
};
4599

46100
module DOM: {
47-
[@mel.return nullable] [@mel.get]
101+
[@deprecated
102+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
103+
]
104+
[@mel.return nullable]
105+
[@mel.get]
48106
external value: Dom.element => option(string) = "value";
49107

50-
let findBySelector: (Dom.element, string) => option(Dom.element);
51-
let findByAllSelector: (Dom.element, string) => array(Dom.element);
108+
let findBySelector:
109+
[@deprecated
110+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
111+
] (
112+
(Dom.element, string) => option(Dom.element)
113+
);
114+
let findByAllSelector:
115+
[@deprecated
116+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
117+
] (
118+
(Dom.element, string) => array(Dom.element)
119+
);
52120
let findBySelectorAndTextContent:
53-
(Dom.element, string, string) => option(Dom.element);
121+
[@deprecated
122+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
123+
] (
124+
(Dom.element, string, string) => option(Dom.element)
125+
);
54126
let findBySelectorAndPartialTextContent:
55-
(Dom.element, string, string) => option(Dom.element);
127+
[@deprecated
128+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
129+
] (
130+
(Dom.element, string, string) => option(Dom.element)
131+
);
56132
};
57133

134+
[@deprecated
135+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
136+
]
58137
let prepareContainer: (Stdlib.ref(option(Dom.element)), unit) => unit;
138+
[@deprecated
139+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
140+
]
59141
let cleanupContainer: (Stdlib.ref(option(Dom.element)), unit) => unit;
142+
[@deprecated
143+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
144+
]
60145
let getContainer: Stdlib.ref(option(Dom.element)) => Dom.element;

0 commit comments

Comments
 (0)