@incdevco/framework
Version:
node.js lambda framework
67 lines (46 loc) • 1.71 kB
JavaScript
let Expect = require('chai').expect;
let Utilities = require('../../../utilities');
let ExpressionNames = require('../expression-names');
let ExpressionValues = require('../expression-values');
let UpdateExpression = require('./index.js');
describe('aws/dynamo-db/update-expression', function () {
describe('render', function () {
it('should render expession correctly', function () {
let expression = new UpdateExpression();
let names = new ExpressionNames();
let values = new ExpressionValues();
let expected = 'SET billing = billing, billing = billing, shipping = shipping, shipping = shipping';
let model = {
billing: {
address: {
street: 'billing_address_street',
city: 'billing_address_city'
}
},
shipping: {
address: {
street: 'shipping_address_street',
city: 'shipping_address_city'
}
}
};
let keys = Utilities.keysDeep(model);
keys.forEach((key) => {
let name = names.name(key);
let value = values.value(values.keyFromName(name), model[key]);
expression.set(name + ' = ' + value);
});
Expect(keys).to.deep.equal([
'billing.address.street',
'billing.address.city',
'shipping.address.street',
'shipping.address.city'
], 'keys');
Expect(names._names).to.deep.equal({
'billing': 'billing',
'shipping': 'shipping'
}, 'names');
Expect(expression.render()).to.equal(expected, 'result');
});
});
});