dynamodb-data-types
Version:
A utility to help represent Amazon DynamoDB Data Types.
52 lines (38 loc) • 2.01 kB
JavaScript
var attr = require('../..').AttributeValue;
var attrUpdate = require('../..').AttributeValueUpdate;
var errs = require('../..').errs;
var _ = require('lodash');
var util = require('./util');
var d1 = {
alphabets: ['c', 'a', 'b'],
learn: {
alphabets: ['y', 'z', 'x']
}
};
var d1_wrap = {"alphabets":{"SS":["c","a","b"]},"learn":{"M":{"alphabets":{"SS":["y","z","x"]}}}};
var d1_wrap_explicit = {"alphabets":{"L":[{"S":"c"},{"S":"a"},{"S":"b"}]},"learn":{"M":{"alphabets":{"L":[{"S":"y"},{"S":"z"},{"S":"x"}]}}}};
var d1_put = {"alphabets":{"Action":"PUT","Value":{"SS":["c","a","b"]}},"learn":{"Action":"PUT","Value":{"M":{"alphabets":{"SS":["y","z","x"]}}}}};
var d1_add = {"alphabets":{"Action":"ADD","Value":{"SS":["c","a","b"]}},"learn":{"Action":"ADD","Value":{"M":{"alphabets":{"SS":["y","z","x"]}}}}};
var d1_put_explicit = {"alphabets":{"Action":"PUT","Value":{"L":[{"S":"c"},{"S":"a"},{"S":"b"}]}},"learn":{"Action":"PUT","Value":{"M":{"alphabets":{"L":[{"S":"y"},{"S":"z"},{"S":"x"}]}}}}};
var d1_add_explicit = {"alphabets":{"Action":"ADD","Value":{"L":[{"S":"c"},{"S":"a"},{"S":"b"}]}},"learn":{"Action":"ADD","Value":{"M":{"alphabets":{"L":[{"S":"y"},{"S":"z"},{"S":"x"}]}}}}};
var opts = {
types: {alphabets: 'L'}
};
describe('Wrap with explicit types in options', function() {
it('wrap', function() {
expect(_.isEqual(attr.wrap(d1), d1_wrap)).toBe(true);
expect(_.isEqual(attr.wrap(d1, opts), d1_wrap_explicit)).toBe(true);
});
});
describe('Update with explicit types in options', function() {
it ('put', function(){
expect(util.areEqual(attrUpdate.put(d1), d1_put)).toBe(true);
expect(util.areEqual(attrUpdate.put(d1, opts), d1_put_explicit)).toBe(true);
});
it ('add', function(){
expect(util.areEqual(attrUpdate.add(d1), d1_add)).toBe(true);
expect(util.areEqual(attrUpdate.add(d1, opts), d1_add_explicit)).toBe(true);
});
});
// TODO: How can we test preserveArrays() ? Once this function is called, other
// tests would fail.