@ordojs/core
Version:
Core compiler and runtime for OrdoJS framework
61 lines (49 loc) • 1.5 kB
text/typescript
/**
* @fileoverview Tests for OrdoJS Compiler
*/
import { describe, expect, it } from 'vitest';
import { OrdoJSCompiler } from './index.js';
describe('OrdoJSCompiler', () => {
it('should compile a simple component', () => {
const compiler = new OrdoJSCompiler({
target: 'es2022',
optimize: false,
sourceMaps: false,
minify: false
});
const source = `
component SimpleComponent {
markup {
<div>Hello, World!</div>
}
}
`;
const result = compiler.compile(source);
// Verify compilation was successful
expect(result.success).toBe(true);
expect(result.errors).toHaveLength(0);
// Verify the output contains expected elements
expect(result.output).toContain('function SimpleComponent(props = {})');
expect(result.output).toContain('document.createElement("div")');
expect(result.output).toContain('Hello, World!');
});
it('should handle compilation errors gracefully', () => {
const compiler = new OrdoJSCompiler({
target: 'es2022',
optimize: false,
sourceMaps: false,
minify: false
});
// Invalid component (missing closing brace)
const source = `
component InvalidComponent {
markup {
<div>Missing closing brace</div>
}
`;
const result = compiler.compile(source);
// Verify compilation failed
expect(result.success).toBe(false);
expect(result.errors.length).toBeGreaterThan(0);
});
});