@qualifyze/airtable-formulator
Version:
Airtable Formula Manipulator
119 lines • 3.96 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const globals_1 = require("@jest/globals");
const enclosed_expression_1 = require("../enclosed-expression");
(0, globals_1.describe)("EnclosedExpression", () => {
(0, globals_1.describe)("isEnclosedExpressionNode()", () => {
(0, globals_1.it)("should return true for a valid EnclosedExpressionNode", () => {
const node = {
type: "enclosedExpression",
value: "(1)",
start: 1,
end: 2,
members: [
{
type: "number",
value: "1",
start: 1,
end: 2,
},
],
opener: {
type: "openParenthesis",
value: "(",
start: 0,
end: 1,
},
closer: {
type: "closeParenthesis",
value: ")",
start: 2,
end: 3,
},
expression: {
type: "number",
value: "1",
start: 1,
end: 2,
},
};
(0, globals_1.expect)((0, enclosed_expression_1.isEnclosedExpressionNode)(node)).toBe(true);
});
});
(0, globals_1.describe)("replaceEnclosedExpressions()", () => {
(0, globals_1.it)("should replace enclosed expression groups with enclosedExpression nodes", () => {
const nodes = [
{
type: "group",
opener: {
type: "openParenthesis",
start: 1,
end: 2,
value: "(",
},
closer: {
type: "closeParenthesis",
start: 3,
end: 4,
value: ")",
},
value: "0",
start: 2,
end: 3,
members: [
{
type: "number",
start: 2,
end: 3,
value: "0",
},
],
},
{
type: "operator",
start: 5,
end: 6,
value: "*",
},
{
type: "group",
opener: {
type: "openParenthesis",
start: 7,
end: 8,
value: "(",
},
closer: {
type: "closeParenthesis",
start: 9,
end: 10,
value: ")",
},
value: "0",
start: 8,
end: 9,
members: [
{
type: "number",
start: 8,
end: 9,
value: "0",
},
],
},
];
(0, globals_1.expect)((0, enclosed_expression_1.reduceEnclosedExpressions)(nodes)).toMatchObject([
{
type: "enclosedExpression",
},
{
type: "operator",
},
{
type: "enclosedExpression",
},
]);
});
});
});
//# sourceMappingURL=enclosed-expression.test.js.map