@@ -15,29 +15,44 @@ configure({ adapter: new Adapter() });
1515describe ( 'AST Unit Tests' , ( ) => {
1616 describe ( 'astParser' , ( ) => {
1717 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> )' ;
1919
2020 const expectedObject = {
2121 _useState : 'testCount' ,
2222 _useState2 : 'setTestCount' ,
2323 } ;
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 ( ) ;
4156 } ) ;
4257 } ) ;
4358} ) ;
0 commit comments