mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-28 07:17:04 +02:00
33 lines
953 B
TypeScript
33 lines
953 B
TypeScript
import type { ExpressionEvaluatorClass } from '../src/index';
|
|
import { Tournament } from '../src/index';
|
|
import type { ExpressionTestEvaluation } from './ExpressionFixtures/base';
|
|
import { baseFixtures } from './ExpressionFixtures/base';
|
|
|
|
export const testExpressionsWithEvaluator = (Evaluator: ExpressionEvaluatorClass) => {
|
|
const tourn = new Tournament(() => {}, undefined, Evaluator);
|
|
const builtins = {
|
|
String,
|
|
parseFloat,
|
|
parseInt,
|
|
};
|
|
for (const t of baseFixtures) {
|
|
if (!t.tests.some((test) => test.type === 'evaluation')) {
|
|
continue;
|
|
}
|
|
test(t.expression, () => {
|
|
for (const test of t.tests.filter(
|
|
(test_): test_ is ExpressionTestEvaluation => test_.type === 'evaluation',
|
|
)) {
|
|
expect(
|
|
tourn.execute(t.expression.slice(1), {
|
|
...builtins,
|
|
$runIndex: 0,
|
|
$json: test.input[0],
|
|
$item: (i: number) => ({ $json: test.input[i] }),
|
|
}),
|
|
).toStrictEqual(test.output);
|
|
}
|
|
});
|
|
}
|
|
};
|