UNPKG

@ordojs/core

Version:

Core compiler and runtime for OrdoJS framework

51 lines (43 loc) 1.43 kB
/** * @fileoverview Simple Parser Tests - Basic functionality tests */ import { describe, expect, it } from 'vitest'; import { OrdoJSLexer } from './lexer.js'; import { OrdoJSParser } from './parser.js'; describe('OrdoJSParser - Basic Tests', () => { it('should parse minimal component', () => { const source = ` component TestComponent { markup { <div>Hello World</div> } } `; const lexer = new OrdoJSLexer(source, 'test.ordo'); const tokens = lexer.tokenize(); const parser = new OrdoJSParser(tokens, {}, 'test.ordo'); const ast = parser.parse(); expect(ast.component.name).toBe('TestComponent'); expect(ast.component.type).toBe('Component'); expect(ast.component.markupBlock).toBeDefined(); }); it('should parse component with reactive variable', () => { const source = ` component TestComponent { client { let count = 0; } markup { <div>{count}</div> } } `; const lexer = new OrdoJSLexer(source, 'test.ordo'); const tokens = lexer.tokenize(); const parser = new OrdoJSParser(tokens, {}, 'test.ordo'); const ast = parser.parse(); expect(ast.component.clientBlock).toBeDefined(); expect(ast.component.clientBlock!.reactiveVariables).toHaveLength(1); expect(ast.component.clientBlock!.reactiveVariables[0].name).toBe('count'); }); });