UNPKG

@incdevco/framework

Version:
67 lines (46 loc) 1.71 kB
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'); }); }); });