2023-11-13 13:00:38 +08:00

48 lines
1.1 KiB
TypeScript

import {
evaluate,
evaluateExpression,
newFunction,
} from '../../src/script';
describe('evaluate', () => {
test('should evaluate the given script', () => {
const script = 'console.log("Hello, world!");';
global.console = { log: jest.fn() };
evaluate(script);
expect(global.console.log).toHaveBeenCalledWith('Hello, world!');
});
});
describe('evaluateExpression', () => {
test('should evaluate the given expression', () => {
const expr = 'return 1 + 2';
const result = evaluateExpression(expr);
expect(result).toBe(3);
});
});
describe('newFunction', () => {
test('should create a new function with the given arguments and code', () => {
const args = 'a, b';
const code = 'return a + b';
const result = newFunction(args, code);
expect(result).toBeInstanceOf(Function);
expect(result(1, 2)).toBe(3);
});
test('should return null if an error occurs', () => {
const args = 'a, b';
const code = 'return a +;'; // Invalid code
const result = newFunction(args, code);
expect(result).toBeNull();
});
});