1
+ /* eslint-disable import/no-extraneous-dependencies */
1
2
// const Tree = require('./tree');
3
+ import React from 'react' ;
4
+ import { render } from 'react-dom' ;
5
+
6
+ const linkFiberRequire = require ( '../linkFiber' ) ;
7
+
2
8
let linkFiber ;
3
- let ReactDOM ;
4
- let React ;
5
9
let mode ;
6
10
let snapShot ;
11
+ let component ;
7
12
8
13
describe ( 'unit test for linkFiber' , ( ) => {
9
14
beforeEach ( ( ) => {
@@ -13,9 +18,7 @@ describe('unit test for linkFiber', () => {
13
18
paused : false ,
14
19
locked : false ,
15
20
} ;
16
- React = require ( 'react' ) ;
17
- ReactDOM = require ( 'react-dom' ) ;
18
- linkFiber = require ( '../linkFiber' ) ( snapShot , mode ) ;
21
+ linkFiber = linkFiberRequire ( snapShot , mode ) ;
19
22
20
23
class App extends React . Component {
21
24
constructor ( props ) {
@@ -29,8 +32,10 @@ describe('unit test for linkFiber', () => {
29
32
}
30
33
31
34
const container = document . createElement ( 'div' ) ;
32
- ReactDOM . render ( < App /> , container ) ;
35
+ render ( < App /> , container ) ;
33
36
linkFiber ( container ) ;
37
+ // eslint-disable-next-line prefer-destructuring
38
+ component = snapShot . tree . children [ 0 ] . component ;
34
39
} ) ;
35
40
36
41
test ( 'linkFiber should mutate the snapshot tree property' , ( ) => {
@@ -42,9 +47,12 @@ describe('unit test for linkFiber', () => {
42
47
} ) ;
43
48
44
49
test ( 'linkFiber should modify the setState of the stateful component' , ( ) => {
45
- console . log ( snapShot . tree . children [ 0 ] . component . setState ) ;
46
- // snapShot.tree.children[0].component.setState({ foo: 'josh' });
47
- // expect(snapShot.tree.children[0].component.setState).toBeInstanceOf(newSetState);
48
- // expect(snapShot.tree.children[0].component.state.foo).toBe('josh');
50
+ expect ( snapShot . tree . children [ 0 ] . component . setState . name ) . toBe ( 'newSetState' ) ;
49
51
} ) ;
52
+
53
+ // test('newSetState should still setState correctly', () => {
54
+ // component.setState({ foo: 'barf' });
55
+ // expect(component.state).not.toEqual({ foo: 'bar' });
56
+ // expect(component.state).toEqual({ foo: 'barf' });
57
+ // });
50
58
} ) ;
0 commit comments