2024-10-30 16:52:17 -04:00
|
|
|
import { err } from 'lib/trap'
|
2024-12-06 13:57:31 +13:00
|
|
|
import { parse, ParseResult } from './wasm'
|
2024-10-30 16:52:17 -04:00
|
|
|
import { enginelessExecutor } from 'lib/testHelpers'
|
2024-12-06 13:57:31 +13:00
|
|
|
import { Node } from 'wasm-lib/kcl/bindings/Node'
|
|
|
|
import { Program } from '../wasm-lib/kcl/bindings/Program'
|
2024-10-30 16:52:17 -04:00
|
|
|
|
|
|
|
it('can execute parsed AST', async () => {
|
|
|
|
const code = `x = 1
|
|
|
|
// A comment.`
|
2024-12-06 13:57:31 +13:00
|
|
|
const result = parse(code)
|
|
|
|
expect(err(result)).toEqual(false)
|
|
|
|
const pResult = result as ParseResult
|
|
|
|
expect(pResult.errors.length).toEqual(0)
|
|
|
|
expect(pResult.program).not.toEqual(null)
|
|
|
|
const execState = await enginelessExecutor(pResult.program as Node<Program>)
|
|
|
|
expect(err(execState)).toEqual(false)
|
2024-10-30 16:52:17 -04:00
|
|
|
expect(execState.memory.get('x')?.value).toEqual(1)
|
|
|
|
})
|