Skip to content

Commit 7b80e50

Browse files
committed
added AST unit test logic within gitignore file until we can figure out how to properly test it
1 parent f9416d3 commit 7b80e50

File tree

2 files changed

+34
-18
lines changed

2 files changed

+34
-18
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ src/extension/build.zip
99
src/extension/build.crx
1010
src/extension/build/key.pem
1111
bower_components
12+
astParser.test.js

package/__tests__/astParser.test.js

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,44 @@ configure({ adapter: new Adapter() });
1515
describe('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

Comments
 (0)