mirror of
https://github.com/bendtherules/not-a-js-engine.git
synced 2026-08-18 13:52:36 +00:00
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { Evaluate } from '../src/evaluate';
|
|
import {
|
|
CompletionRecord,
|
|
ValueString,
|
|
} from '../src/internal-types/CompletionRecord';
|
|
|
|
import { ParseScript } from '../src/parse';
|
|
|
|
describe('evaluate literals', () => {
|
|
it('for 123', () => {
|
|
const node = ParseScript(`123`);
|
|
const returnVal = Evaluate(node);
|
|
|
|
expect(returnVal).toBeInstanceOf(CompletionRecord);
|
|
expect(returnVal[ValueString]?.value).toBe(123);
|
|
});
|
|
|
|
it('for "abc"', () => {
|
|
const node = ParseScript(`'abc'`);
|
|
const returnVal = Evaluate(node);
|
|
|
|
expect(returnVal).toBeInstanceOf(CompletionRecord);
|
|
expect(returnVal[ValueString]?.value).toBe('abc');
|
|
});
|
|
|
|
it('for 10+20', () => {
|
|
const node = ParseScript(`10 + 20`);
|
|
const returnVal = Evaluate(node);
|
|
|
|
expect(returnVal).toBeInstanceOf(CompletionRecord);
|
|
expect(returnVal[ValueString]?.value).toBe(30);
|
|
});
|
|
|
|
it('for 10+20+30', () => {
|
|
const node = ParseScript(`10 + 20 + 30`);
|
|
const returnVal = Evaluate(node);
|
|
|
|
expect(returnVal).toBeInstanceOf(CompletionRecord);
|
|
expect(returnVal[ValueString]?.value).toBe(60);
|
|
});
|
|
|
|
it('for "ab"+"cd"', () => {
|
|
const node = ParseScript(`"ab"+"cd"`);
|
|
const returnVal = Evaluate(node);
|
|
|
|
expect(returnVal).toBeInstanceOf(CompletionRecord);
|
|
expect(returnVal[ValueString]?.value).toBe('abcd');
|
|
});
|
|
});
|