UNPKG

ddb-table

Version:

Strongly typed library for querying and modeling DynamoDB documents.

42 lines (41 loc) 5.83 kB
"use strict"; require("mocha"); var _chai = require("chai"); var _ExpressionAttributeNames = _interopRequireDefault(require("./ExpressionAttributeNames")); var _ProjectionExpression = _interopRequireDefault(require("./ProjectionExpression")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('ProjectionExpression', () => { describe('init -> serialize()', () => { function assetSerialize(test, expected = test.trim().replace(/\s+/g, ' ')) { it(test, () => { const names = new _ExpressionAttributeNames.default(); const exp = new _ProjectionExpression.default(names, test); _chai.assert.equal(exp.serialize(), expected); }); } assetSerialize('#foo'); assetSerialize('#foo, #bar'); assetSerialize(' #foo , #bar ', '#foo, #bar'); assetSerialize(' foo, #hello, #testme '); }); describe('.add', () => { it('Basic use case', () => { const names = new _ExpressionAttributeNames.default(); const exp = new _ProjectionExpression.default(names); exp.add({ name: 1, description: 0, price: { amount: 1 } }); _chai.assert.equal(exp.serialize(), '#name, #price.#amount'); _chai.assert.deepEqual(names.serialize(), { '#name': 'name', '#price': 'price', '#amount': 'amount' }); }); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX2NoYWkiLCJfRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Qcm9qZWN0aW9uRXhwcmVzc2lvbiIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZGVzY3JpYmUiLCJhc3NldFNlcmlhbGl6ZSIsInRlc3QiLCJleHBlY3RlZCIsInRyaW0iLCJyZXBsYWNlIiwiaXQiLCJuYW1lcyIsIkV4cHJlc3Npb25BdHRyaWJ1dGVOYW1lcyIsImV4cCIsIlByb2plY3Rpb25FeHByZXNzaW9uIiwiYXNzZXJ0IiwiZXF1YWwiLCJzZXJpYWxpemUiLCJhZGQiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJwcmljZSIsImFtb3VudCIsImRlZXBFcXVhbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHByZXNzaW9ucy9Qcm9qZWN0aW9uRXhwcmVzc2lvbi50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnbW9jaGEnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnY2hhaSc7XG5pbXBvcnQgRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzIGZyb20gJy4vRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzJztcbmltcG9ydCBQcm9qZWN0aW9uRXhwcmVzc2lvbiBmcm9tICcuL1Byb2plY3Rpb25FeHByZXNzaW9uJztcblxuZGVzY3JpYmUoJ1Byb2plY3Rpb25FeHByZXNzaW9uJywgKCkgPT4ge1xuICBkZXNjcmliZSgnaW5pdCAtPiBzZXJpYWxpemUoKScsICgpID0+IHtcbiAgICBmdW5jdGlvbiBhc3NldFNlcmlhbGl6ZShcbiAgICAgIHRlc3Q6IHN0cmluZyxcbiAgICAgIGV4cGVjdGVkOiBzdHJpbmcgPSB0ZXN0LnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csICcgJyksXG4gICAgKTogdm9pZCB7XG4gICAgICBpdCh0ZXN0LCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5hbWVzID0gbmV3IEV4cHJlc3Npb25BdHRyaWJ1dGVOYW1lcygpO1xuICAgICAgICBjb25zdCBleHAgPSBuZXcgUHJvamVjdGlvbkV4cHJlc3Npb24obmFtZXMsIHRlc3QpO1xuXG4gICAgICAgIGFzc2VydC5lcXVhbChleHAuc2VyaWFsaXplKCksIGV4cGVjdGVkKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzc2V0U2VyaWFsaXplKCcjZm9vJyk7XG4gICAgYXNzZXRTZXJpYWxpemUoJyNmb28sICNiYXInKTtcbiAgICBhc3NldFNlcmlhbGl6ZSgnICNmb28gICwgICNiYXIgJywgJyNmb28sICNiYXInKTtcbiAgICBhc3NldFNlcmlhbGl6ZSgnIGZvbywgICNoZWxsbywgI3Rlc3RtZSAnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJy5hZGQnLCAoKSA9PiB7XG4gICAgaXQoJ0Jhc2ljIHVzZSBjYXNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgbmFtZXMgPSBuZXcgRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzKCk7XG4gICAgICBjb25zdCBleHAgPSBuZXcgUHJvamVjdGlvbkV4cHJlc3Npb248XG4gICAgICAgIHtcbiAgICAgICAgICBza3U6IHN0cmluZztcbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgICAgICBwcmljZToge1xuICAgICAgICAgICAgYW1vdW50OiBudW1iZXI7XG4gICAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcgfCAnRVVSJztcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICB7IHNrdTogc3RyaW5nIH1cbiAgICAgID4obmFtZXMpO1xuXG4gICAgICBleHAuYWRkKHtcbiAgICAgICAgbmFtZTogMSxcbiAgICAgICAgZGVzY3JpcHRpb246IDAsXG4gICAgICAgIHByaWNlOiB7XG4gICAgICAgICAgYW1vdW50OiAxLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGFzc2VydC5lcXVhbChleHAuc2VyaWFsaXplKCksICcjbmFtZSwgI3ByaWNlLiNhbW91bnQnKTtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwobmFtZXMuc2VyaWFsaXplKCksIHtcbiAgICAgICAgJyNuYW1lJzogJ25hbWUnLFxuICAgICAgICAnI3ByaWNlJzogJ3ByaWNlJyxcbiAgICAgICAgJyNhbW91bnQnOiAnYW1vdW50JyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUseUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLHFCQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFBMEQsU0FBQUcsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFMURHLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNO0VBQ3JDQSxRQUFRLENBQUMscUJBQXFCLEVBQUUsTUFBTTtJQUNwQyxTQUFTQyxjQUFjQSxDQUNyQkMsSUFBWSxFQUNaQyxRQUFnQixHQUFHRCxJQUFJLENBQUNFLElBQUksRUFBRSxDQUFDQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUM3QztNQUNOQyxFQUFFLENBQUNKLElBQUksRUFBRSxNQUFNO1FBQ2IsTUFBTUssS0FBSyxHQUFHLElBQUlDLGlDQUF3QixFQUFFO1FBQzVDLE1BQU1DLEdBQUcsR0FBRyxJQUFJQyw2QkFBb0IsQ0FBQ0gsS0FBSyxFQUFFTCxJQUFJLENBQUM7UUFFakRTLFlBQU0sQ0FBQ0MsS0FBSyxDQUFDSCxHQUFHLENBQUNJLFNBQVMsRUFBRSxFQUFFVixRQUFRLENBQUM7TUFDekMsQ0FBQyxDQUFDO0lBQ0o7SUFFQUYsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUN0QkEsY0FBYyxDQUFDLFlBQVksQ0FBQztJQUM1QkEsY0FBYyxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQztJQUMvQ0EsY0FBYyxDQUFDLHlCQUF5QixDQUFDO0VBQzNDLENBQUMsQ0FBQztFQUVGRCxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU07SUFDckJNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNO01BQ3pCLE1BQU1DLEtBQUssR0FBRyxJQUFJQyxpQ0FBd0IsRUFBRTtNQUM1QyxNQUFNQyxHQUFHLEdBQUcsSUFBSUMsNkJBQW9CLENBV2xDSCxLQUFLLENBQUM7TUFFUkUsR0FBRyxDQUFDSyxHQUFHLENBQUM7UUFDTkMsSUFBSSxFQUFFLENBQUM7UUFDUEMsV0FBVyxFQUFFLENBQUM7UUFDZEMsS0FBSyxFQUFFO1VBQ0xDLE1BQU0sRUFBRTtRQUNWO01BQ0YsQ0FBQyxDQUFDO01BRUZQLFlBQU0sQ0FBQ0MsS0FBSyxDQUFDSCxHQUFHLENBQUNJLFNBQVMsRUFBRSxFQUFFLHVCQUF1QixDQUFDO01BQ3RERixZQUFNLENBQUNRLFNBQVMsQ0FBQ1osS0FBSyxDQUFDTSxTQUFTLEVBQUUsRUFBRTtRQUNsQyxPQUFPLEVBQUUsTUFBTTtRQUNmLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLFNBQVMsRUFBRTtNQUNiLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9