2
2
var test = require ( 'node:test' )
3
3
var assert = require ( 'node:assert' )
4
4
var React = require ( 'react' )
5
- var TestRenderer = require ( 'react-test-renderer' )
5
+ var ReactDOM = require ( 'react-dom' )
6
+ require ( 'min-react-env/install' )
6
7
var Provider = require ( './' ) . Provider
7
8
var useBus = require ( './' ) . useBus
8
9
var useListener = require ( './' ) . useListener
9
10
11
+ var act = React . act || require ( 'react-dom/test-utils' ) . act
12
+
13
+ function createTestRenderer ( ) {
14
+ var div = document . createElement ( 'div' )
15
+ var root
16
+ var reactMajor = parseInt ( ( ReactDOM . version || '16' ) . split ( '.' ) [ 0 ] , 10 )
17
+ if ( reactMajor >= 18 ) {
18
+ var createRoot = require ( 'react-dom/client' ) . createRoot
19
+ root = createRoot ( div )
20
+ } else {
21
+ root = {
22
+ render : function ( element ) {
23
+ ReactDOM . render ( element , div )
24
+ } ,
25
+ unmount : function ( ) {
26
+ ReactDOM . unmountComponentAtNode ( div )
27
+ } ,
28
+ }
29
+ }
30
+
31
+ return root
32
+ }
33
+
10
34
var h = React . createElement
11
35
12
36
test ( 'emits events on context' , function ( ) {
@@ -22,9 +46,9 @@ test('emits events on context', function () {
22
46
return h ( 'div' )
23
47
}
24
48
25
- var renderer
26
- TestRenderer . act ( function ( ) {
27
- renderer = TestRenderer . create (
49
+ var renderer = createTestRenderer ( )
50
+ act ( function ( ) {
51
+ renderer . render (
28
52
h ( Provider , { } ,
29
53
h ( 'div' , { } ,
30
54
h ( Listener ) ,
@@ -54,9 +78,9 @@ test('useListener', function () {
54
78
return h ( 'div' )
55
79
}
56
80
57
- var renderer
58
- TestRenderer . act ( function ( ) {
59
- renderer = TestRenderer . create (
81
+ var renderer = createTestRenderer ( )
82
+ act ( function ( ) {
83
+ renderer . render (
60
84
h ( Provider , { } ,
61
85
h ( 'div' , { } ,
62
86
h ( Listener ) ,
@@ -68,8 +92,8 @@ test('useListener', function () {
68
92
69
93
assert ( onhello . called )
70
94
onhello . called = false
71
- TestRenderer . act ( function ( ) {
72
- renderer . update (
95
+ act ( function ( ) {
96
+ renderer . render (
73
97
h ( Provider , { } ,
74
98
h ( 'div' , { } ,
75
99
h ( Emitter )
0 commit comments