expression-language
Version:
Javascript implementation of symfony/expression-language
27 lines (26 loc) • 1.39 kB
JavaScript
;
var _ConstantNode = _interopRequireDefault(require("../Node/ConstantNode"));
var _ParsedExpression = _interopRequireDefault(require("../ParsedExpression"));
var _index = require("../index");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
test('serialize ParsedExpression', () => {
let expression = new _ParsedExpression.default('25', new _ConstantNode.default(25));
let serialized = JSON.stringify(expression);
let unserialized = _ParsedExpression.default.fromJSON(serialized);
expect(unserialized.expression).toEqual(expression.expression);
expect(unserialized.nodes.name).toEqual(expression.nodes.name);
expect(unserialized.nodes.attributes).toMatchObject(expression.nodes.attributes);
});
test('serialize more complex ParsedExpression', () => {
let expressionString = "25 + 30";
let parser = new _index.Parser();
let nodes = parser.parse((0, _index.tokenize)(expressionString));
let expression = new _ParsedExpression.default(expressionString, nodes);
let serialized = JSON.stringify(expression);
let unserialized = _ParsedExpression.default.fromJSON(serialized);
expect(unserialized.expression).toEqual(expressionString);
expect(unserialized.nodes.length).toEqual(expression.nodes.length);
for (let i = 0; i < unserialized.nodes.length; i++) {
expect(unserialized.nodes[i]).toEqual(nodes[i]);
}
});