forked from alibaba/lowcode-engine
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.test.ts
More file actions
47 lines (35 loc) · 1.07 KB
/
script.test.ts
File metadata and controls
47 lines (35 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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();
});
});