@@ -15,29 +15,44 @@ configure({ adapter: new Adapter() });
15
15
describe ( 'AST Unit Tests' , ( ) => {
16
16
describe ( 'astParser' , ( ) => {
17
17
it . skip ( 'Should return object with one getter/setter for a single useState instance' , ( ) => {
18
- const singleUseState = 'const singleUseStateTest = () => { const [testCount, setTestCount] = useState(0); return ( <div> <p> You clicked this {testCount} times </p> <button onClick={() => setTestCount(testCount + 1)}>+1</button> <button onClick={() => setTestCount(testCount - 1)}>-1</button> <hr /> </div> ) } ' ;
18
+ const useState = 'const singleUseStateTest = () => { const [testCount, setTestCount] = useState(0); return ( <div> <p> You clicked this {testCount} times </p> <button onClick={() => setTestCount(testCount + 1)}>+1</button> <button onClick={() => setTestCount(testCount - 1)}>-1</button> <hr /> </div> )' ;
19
19
20
20
const expectedObject = {
21
21
_useState : 'testCount' ,
22
22
_useState2 : 'setTestCount' ,
23
23
} ;
24
- expect ( astParser ( singleUseState ) ) . toEqual ( expectedObject ) ;
25
-
26
- // TEST 2: Should take in multiple function definitions
27
- it . skip ( 'Should return object with two getters/setters for a single useState instance' , ( ) => {
28
- const singleUseState = 'const singleUseStateTest = () => { const [testCount, setTestCount] = useState(0); const [age, setAge] = useState(20); return ( <div> <p> You clicked this {testCount} times </p> <button onClick={() => setTestCount(testCount + 1)}>+1</button> <button onClick={() => setTestCount(testCount - 1)}>-1</button> <p> You are {age} years old! </p> <button onClick={() => setAge(age + 1)}>Get Older</button> <hr /> </div>) }' ;
29
-
30
- const expectedObject = {
31
- _useState : 'testCount' ,
32
- _useState2 : 'setTestCount' ,
33
- _useState3 : 'age' ,
34
- _useState4 : 'setAge'
35
- } ;
36
- expect ( astParser ( singleUseState ) ) . toEqual ( expectedObject ) ;
37
- // with hooks and return an object with all 4 properties
38
- // TEST 3: Should ignore any non-hook definitions
39
- // Test 4: Should return an empty object if no hooks found
40
- // Test 5: Should throw an error if input is invalid javascript
24
+ expect ( astParser ( useState ) ) . toEqual ( expectedObject ) ;
25
+ } ) ;
26
+
27
+ it . skip ( 'Should output the right number of properties when taking in multiple function definitions' , ( ) => {
28
+ const useState = 'const singleUseStateTest = () => { const [testCount, setTestCount] = useState(0); const [age, setAge] = useState(20); return ( <div> <p> You clicked this {testCount} times </p> <button onClick={() => setTestCount(testCount + 1)}>+1</button> <button onClick={() => setTestCount(testCount - 1)}>-1</button> <p> You are {age} years old! </p> <button onClick={() => setAge(age + 1)}>Get Older</button> <hr /> </div>)' ;
29
+
30
+ const expectedObject = {
31
+ _useState : 'testCount' ,
32
+ _useState2 : 'setTestCount' ,
33
+ _useState3 : 'age' ,
34
+ _useState4 : 'setAge' ,
35
+ } ;
36
+ expect ( astParser ( useState ) ) . toEqual ( expectedObject ) ;
37
+ expect ( Object . keys ( astParser ( useState ) ) ) . toHaveLength ( 4 ) ;
38
+ } ) ;
39
+
40
+ it . skip ( 'Should ignore any non-hook definitions' , ( ) => {
41
+ const useState = 'const singleUseStateTest = () => { const [testCount, setTestCount] = useState(0); const age = 20; return ( <div> <p> You clicked this {testCount} times </p> <button onClick={() => setTestCount(testCount + 1)}>+1</button> <button onClick={() => setTestCount(testCount - 1)}>-1</button> <p> You are {age} years old! </p> <button onClick={age => age + 1}>Get Older</button> <hr /> </div>)' ;
42
+
43
+ expect ( Object . keys ( astParser ( useState ) ) ) . toHaveLength ( 2 ) ;
44
+ } ) ;
45
+
46
+ it . skip ( 'Should return an empty object if no hooks found' , ( ) => {
47
+ const useState = 'const singleUseStateTest = () => { const age = 20; return ( <div> <p> You are {age} years old! </p> <button onClick={age => age + 1}>Get Older</button> <hr /> </div>)' ;
48
+
49
+ expect ( astParser ( useState ) ) . toBe ( { } ) ;
50
+ } ) ;
51
+
52
+ it . skip ( 'Should throw an error if input is invalid javascript' , ( ) => {
53
+ const useState = 'const singleUseStateTest = () => { age: 20; return ( <div> <p> You are {age} years old! </p> <button onClick={age + 1}>Get Older</button></div>) }' ;
54
+
55
+ expect ( astParser ( useState ) ) . toThrow ( ) ;
41
56
} ) ;
42
57
} ) ;
43
58
} ) ;
0 commit comments