Commit f01a3cb2 authored by aniket-engg's avatar aniket-engg Committed by Aniket

getASTNodeChildren testing done

parent fdf9a021
...@@ -101,6 +101,9 @@ export class AstWalker extends EventEmitter { ...@@ -101,6 +101,9 @@ export class AstWalker extends EventEmitter {
nodes = tempArr nodes = tempArr
} }
// To break object referencing
nodes = [...nodes]
if(ast.nodes && ast.baseContracts?.length) { // for ContractDefinition if(ast.nodes && ast.baseContracts?.length) { // for ContractDefinition
nodes.push(...ast.baseContracts) nodes.push(...ast.baseContracts)
} else if (ast.body && ast.overrides && ast.parameters && ast.returnParameters && ast.modifiers) { // for FunctionDefinition } else if (ast.body && ast.overrides && ast.parameters && ast.returnParameters && ast.modifiers) { // for FunctionDefinition
......
...@@ -57,7 +57,7 @@ tape("New ASTWalker", (t: tape.Test) => { ...@@ -57,7 +57,7 @@ tape("New ASTWalker", (t: tape.Test) => {
t.test("ASTWalker.getASTNodeChildren", (st: tape.Test) => { t.test("ASTWalker.getASTNodeChildren", (st: tape.Test) => {
const latestAST = JSON.parse(JSON.stringify(latestASTNode)) const latestAST = JSON.parse(JSON.stringify(latestASTNode))
st.plan(14); st.plan(26);
st.equal(latestAST.nodeType, 'SourceUnit') st.equal(latestAST.nodeType, 'SourceUnit')
let subNodes1 = astWalker.getASTNodeChildren(latestAST) let subNodes1 = astWalker.getASTNodeChildren(latestAST)
...@@ -81,11 +81,35 @@ tape("New ASTWalker", (t: tape.Test) => { ...@@ -81,11 +81,35 @@ tape("New ASTWalker", (t: tape.Test) => {
st.equal(subNodes2[3].nodeType, 'InheritanceSpecifier') st.equal(subNodes2[3].nodeType, 'InheritanceSpecifier')
let subNodes3 = astWalker.getASTNodeChildren(subNodes2[0]) let subNodes3 = astWalker.getASTNodeChildren(subNodes2[0])
st.equal(subNodes3.length, 1) st.equal(subNodes3.length, 1)
st.equal(subNodes3[0].nodeType, 'ElementaryTypeName') st.equal(subNodes3[0].nodeType, 'ElementaryTypeName')
let subNodes4 = astWalker.getASTNodeChildren(subNodes3[0])
st.equal(subNodes4.length, 0)
subNodes3 = astWalker.getASTNodeChildren(subNodes2[1]) subNodes3 = astWalker.getASTNodeChildren(subNodes2[1])
st.equal(subNodes3.length, 1)
st.equal(subNodes3[0].nodeType, 'Block')
subNodes4 = astWalker.getASTNodeChildren(subNodes3[0])
st.equal(subNodes4.length, 1)
st.equal(subNodes4[0].nodeType, 'ExpressionStatement')
let subNodes5 = astWalker.getASTNodeChildren(subNodes4[0])
st.equal(subNodes5.length, 1)
st.equal(subNodes5[0].nodeType, 'Assignment')
let subNodes6 = astWalker.getASTNodeChildren(subNodes5[0])
st.equal(subNodes6.length, 2)
st.equal(subNodes6[0].nodeType, 'Identifier')
st.equal(subNodes6[1].nodeType, 'Identifier')
let subNodes7 = astWalker.getASTNodeChildren(subNodes6[0])
st.equal(subNodes7.length, 0)
subNodes7 = astWalker.getASTNodeChildren(subNodes6[1])
st.equal(subNodes7.length, 0)
st.end(); st.end();
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment