Skip to content

Commit cf696da

Browse files
committed
uncommented the other working tests #11-14
1 parent 92fa73c commit cf696da

File tree

2 files changed

+86
-87
lines changed

2 files changed

+86
-87
lines changed

src/parser.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -290,19 +290,18 @@ export class Parser {
290290
}
291291

292292
// Second check for use of React/Redux hooks
293-
294-
console.log('body:', body);
293+
// console.log('body:', body);
295294
// Checks for components declared using 'const'
296295
const bodyCallee = body.filter((item) => item.type === 'VariableDeclaration');
297-
console.log('bodyCall: ', bodyCallee);
296+
// console.log('bodyCall: ', bodyCallee);
298297

299298
// Checks for components declared using 'export default function'
300299
const exportCallee = body.filter((item) => item.type === 'ExportDefaultDeclaration');
301-
console.log('exprt: ', exportCallee);
300+
// console.log('exprt: ', exportCallee);
302301

303302
// Checks for components declared using 'function'
304303
const functionCallee = body.filter((item) => item.type === 'FunctionDeclaration');
305-
console.log('func: ', functionCallee);
304+
// console.log('func: ', functionCallee);
306305

307306
// Helper function
308307
const calleeHelper = (item) => {

src/test/suite/parser.test.ts

Lines changed: 82 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -6,89 +6,89 @@ describe('Parser Test Suite', () => {
66
let parser, tree, file;
77

88
// TEST 11: PARSER DOESN'T BREAK UPON RECURSIVE COMPONENTS
9-
// describe('It should render the second call of mutually recursive components, but no further', () => {
10-
// beforeAll(() => {
11-
// file = path.join(__dirname, '../../../../src/test/test_cases/tc_11/index.js');
12-
// parser = new Parser(file);
13-
// tree = parser.parse();
14-
// });
15-
16-
// test('Tree should not be undefined', () => {
17-
// expect(tree).toBeDefined();
18-
// });
19-
20-
// test('Tree should have an index component while child App1, grandchild App2, great-grandchild App1', () => {
21-
// expect(tree).toHaveProperty('name', 'index');
22-
// expect(tree.children).toHaveLength(1);
23-
// expect(tree.children[0]).toHaveProperty('name', 'App1');
24-
// expect(tree.children[0].children).toHaveLength(1);
25-
// expect(tree.children[0].children[0]).toHaveProperty('name', 'App2');
26-
// expect(tree.children[0].children[0].children).toHaveLength(1);
27-
// expect(tree.children[0].children[0].children[0]).toHaveProperty('name', 'App1');
28-
// expect(tree.children[0].children[0].children[0].children).toHaveLength(0);
29-
// });
30-
// });
31-
32-
// // TEST 12A: NEXT.JS APPS (pages router)
33-
// describe('It should parse Next.js applications using Pages Router', () => {
34-
// beforeAll(() => {
35-
// file = path.join(__dirname, '../../../../src/test/test_cases/tc_12a/pages/index.js');
36-
// parser = new Parser(file);
37-
// tree = parser.parse();
38-
// });
39-
40-
// test('Root should be named index, children should be named Head and Navbar, children of Navbar should be named Link and Image', () => {
41-
// expect(tree).toHaveProperty('name', 'index');
42-
// expect(tree.children).toHaveLength(2);
43-
// expect(tree.children[0]).toHaveProperty('name', 'Head');
44-
// expect(tree.children[1]).toHaveProperty('name', 'Navbar');
45-
46-
// expect(tree.children[1].children).toHaveLength(2);
47-
// expect(tree.children[1].children[0]).toHaveProperty('name', 'Link');
48-
// expect(tree.children[1].children[1]).toHaveProperty('name', 'Image');
49-
// });
50-
// });
51-
52-
// // TEST 12B: NEXT.JS APPS (app router)
53-
// describe('It should parser Next.js applications using Apps Router', () => {
54-
// beforeAll(() => {
55-
// file = path.join(__dirname, '../../../../src/test/test_cases/tc_12b/app/page.jsx');
56-
// parser = new Parser(file);
57-
// tree = parser.parse();
58-
// });
59-
60-
// test('Root should be named page, it should have one child named Homepage', () => {
61-
// expect(tree).toHaveProperty('name', 'page');
62-
// expect(tree.children).toHaveLength(1);
63-
// expect(tree.children[0]).toHaveProperty('name', 'HomePage');
64-
// });
65-
// });
9+
describe('It should render the second call of mutually recursive components, but no further', () => {
10+
beforeAll(() => {
11+
file = path.join(__dirname, '../../../../src/test/test_cases/tc_11/index.js');
12+
parser = new Parser(file);
13+
tree = parser.parse();
14+
});
15+
16+
test('Tree should not be undefined', () => {
17+
expect(tree).toBeDefined();
18+
});
19+
20+
test('Tree should have an index component while child App1, grandchild App2, great-grandchild App1', () => {
21+
expect(tree).toHaveProperty('name', 'index');
22+
expect(tree.children).toHaveLength(1);
23+
expect(tree.children[0]).toHaveProperty('name', 'App1');
24+
expect(tree.children[0].children).toHaveLength(1);
25+
expect(tree.children[0].children[0]).toHaveProperty('name', 'App2');
26+
expect(tree.children[0].children[0].children).toHaveLength(1);
27+
expect(tree.children[0].children[0].children[0]).toHaveProperty('name', 'App1');
28+
expect(tree.children[0].children[0].children[0].children).toHaveLength(0);
29+
});
30+
});
31+
32+
// TEST 12A: NEXT.JS APPS (PAGES ROUTER)
33+
describe('It should parse Next.js applications using Pages Router', () => {
34+
beforeAll(() => {
35+
file = path.join(__dirname, '../../../../src/test/test_cases/tc_12a/pages/index.js');
36+
parser = new Parser(file);
37+
tree = parser.parse();
38+
});
39+
40+
test('Root should be named index, children should be named Head and Navbar, children of Navbar should be named Link and Image', () => {
41+
expect(tree).toHaveProperty('name', 'index');
42+
expect(tree.children).toHaveLength(2);
43+
expect(tree.children[0]).toHaveProperty('name', 'Head');
44+
expect(tree.children[1]).toHaveProperty('name', 'Navbar');
45+
46+
expect(tree.children[1].children).toHaveLength(2);
47+
expect(tree.children[1].children[0]).toHaveProperty('name', 'Link');
48+
expect(tree.children[1].children[1]).toHaveProperty('name', 'Image');
49+
});
50+
});
51+
52+
// TEST 12B: NEXT.JS APPS (APP ROUTER)
53+
describe('It should parser Next.js applications using Apps Router', () => {
54+
beforeAll(() => {
55+
file = path.join(__dirname, '../../../../src/test/test_cases/tc_12b/app/page.jsx');
56+
parser = new Parser(file);
57+
tree = parser.parse();
58+
});
59+
60+
test('Root should be named page, it should have one child named Homepage', () => {
61+
expect(tree).toHaveProperty('name', 'page');
62+
expect(tree.children).toHaveLength(1);
63+
expect(tree.children[0]).toHaveProperty('name', 'HomePage');
64+
});
65+
});
6666

67-
// // TEST 13: VARIABLE DECLARATION IMPORTS AND REACT.LAZY IMPORTS
68-
// describe('It should parse VariableDeclaration imports including React.lazy imports', () => {
69-
// beforeAll(() => {
70-
// file = path.join(__dirname, '../../../../src/test/test_cases/tc_13/index.js');
71-
// parser = new Parser(file);
72-
// tree = parser.parse();
73-
// });
74-
75-
// test('Root should be named index, it should have one child named App', () => {
76-
// expect(tree).toHaveProperty('name', 'index');
77-
// expect(tree.children).toHaveLength(1);
78-
// expect(tree.children[0]).toHaveProperty('name', 'App');
79-
// });
80-
81-
// test('App should have three children, Component1, Component2 and Component3, all found successfully', () => {
82-
// expect(tree.children[0].children[0]).toHaveProperty('name', 'Component1');
83-
// expect(tree.children[0].children[0]).toHaveProperty('thirdParty', false);
84-
85-
// expect(tree.children[0].children[1]).toHaveProperty('name', 'Component2');
86-
// expect(tree.children[0].children[1]).toHaveProperty('thirdParty', false);
87-
88-
// expect(tree.children[0].children[2]).toHaveProperty('name', 'Component3');
89-
// expect(tree.children[0].children[2]).toHaveProperty('thirdParty', false);
90-
// });
91-
// });
67+
// TEST 13: VARIABLE DECLARATION IMPORTS AND REACT.LAZY IMPORTS
68+
describe('It should parse VariableDeclaration imports including React.lazy imports', () => {
69+
beforeAll(() => {
70+
file = path.join(__dirname, '../../../../src/test/test_cases/tc_13/index.js');
71+
parser = new Parser(file);
72+
tree = parser.parse();
73+
});
74+
75+
test('Root should be named index, it should have one child named App', () => {
76+
expect(tree).toHaveProperty('name', 'index');
77+
expect(tree.children).toHaveLength(1);
78+
expect(tree.children[0]).toHaveProperty('name', 'App');
79+
});
80+
81+
test('App should have three children, Component1, Component2 and Component3, all found successfully', () => {
82+
expect(tree.children[0].children[0]).toHaveProperty('name', 'Component1');
83+
expect(tree.children[0].children[0]).toHaveProperty('thirdParty', false);
84+
85+
expect(tree.children[0].children[1]).toHaveProperty('name', 'Component2');
86+
expect(tree.children[0].children[1]).toHaveProperty('thirdParty', false);
87+
88+
expect(tree.children[0].children[2]).toHaveProperty('name', 'Component3');
89+
expect(tree.children[0].children[2]).toHaveProperty('thirdParty', false);
90+
});
91+
});
9292

9393
// TEST 14: CHECK IF COMPONENT IS A CLIENT COMPONENT USING HOOKS AND DIRECTIVES
9494
describe('It should parse components and determine if the component type', () => {

0 commit comments

Comments
 (0)