-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathreact_fragment_test.dart
84 lines (70 loc) · 1.78 KB
/
react_fragment_test.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
@TestOn('browser')
@JS()
library react_test_utils_test;
import 'dart:html';
import 'package:js/js.dart';
import 'package:react/react.dart' as react;
import 'package:react/react_dom.dart' as react_dom;
import 'package:test/test.dart';
main() {
group('Fragment', () {
test('renders nothing but its children', () {
var wrappingDivRef;
react_dom.render(
react.div({
'ref': (ref) {
wrappingDivRef = ref;
}
}, [
react.Fragment({}, [
react.div({}),
react.div({}),
react.div({}),
react.div({}),
])
]),
Element.div(),
);
expect(wrappingDivRef.children, hasLength(4));
});
test('passes the key properly onto the fragment', () {
var callCount = 0;
final mountElement = Element.div();
react_dom.render(
react.Fragment({
'key': 1
}, [
FragmentTestDummy({
'onComponentDidMount': () {
callCount++;
}
})
]),
mountElement);
expect(callCount, 1);
react_dom.render(
react.Fragment({
'key': 2
}, [
FragmentTestDummy({
'onComponentDidMount': () {
callCount++;
}
})
]),
mountElement);
expect(callCount, 2, reason: 'Dummy should have been remounted as a result of Fragment key changing');
});
});
}
class _FragmentTestDummy extends react.Component2 {
@override
componentDidMount() {
props['onComponentDidMount']();
}
@override
render() {
return react.button(props, 'hi');
}
}
final FragmentTestDummy = react.registerComponent2(() => _FragmentTestDummy());