* initial port leafs progress leafs progress leafs progress all ast with binary expressions are passing abstractSyntaxTree replaced in all js-test clippy lexer? trying to make tests happy clean up comments etc remove unused lexer is needed though re-org rust files remove old ast * fmt Signed-off-by: Jess Frazelle <github@jessfraz.com> * rearrange test fns Signed-off-by: Jess Frazelle <github@jessfraz.com> * start of returning results Signed-off-by: Jess Frazelle <github@jessfraz.com> * make tests compile again Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * more errors Signed-off-by: Jess Frazelle <github@jessfraz.com> * more errors Signed-off-by: Jess Frazelle <github@jessfraz.com> * replace more panics Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup more unwraps Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup more unwraps Signed-off-by: Jess Frazelle <github@jessfraz.com> * less unwraps Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix clippy Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixups Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * deps Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix tests Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix some tests Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix some tests Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix more tests Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> * passing Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * up[date Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: Jess Frazelle <github@jessfraz.com>
31 lines
999 B
TypeScript
31 lines
999 B
TypeScript
import { getNodePathFromSourceRange, getNodeFromPath } from './queryAst'
|
|
import { parser_wasm } from './abstractSyntaxTree'
|
|
import { initPromise } from './rust'
|
|
|
|
beforeAll(() => initPromise)
|
|
|
|
describe('testing getNodePathFromSourceRange', () => {
|
|
it('test it gets the right path for a `lineTo` CallExpression within a SketchExpression', () => {
|
|
const code = `
|
|
const myVar = 5
|
|
const sk3 = startSketchAt([0, 0])
|
|
|> lineTo([1, 2], %)
|
|
|> lineTo({ to: [3, 4], tag: 'yo' }, %)
|
|
|> close(%)
|
|
`
|
|
const subStr = "lineTo({ to: [3, 4], tag: 'yo' }, %)"
|
|
const lineToSubstringIndex = code.indexOf(subStr)
|
|
const sourceRange: [number, number] = [
|
|
lineToSubstringIndex,
|
|
lineToSubstringIndex + subStr.length,
|
|
]
|
|
|
|
const ast = parser_wasm(code)
|
|
const nodePath = getNodePathFromSourceRange(ast, sourceRange)
|
|
const { node } = getNodeFromPath<any>(ast, nodePath)
|
|
|
|
expect([node.start, node.end]).toEqual(sourceRange)
|
|
expect(node.type).toBe('CallExpression')
|
|
})
|
|
})
|