UNPKG

dynamite

Version:

promise-based DynamoDB client

60 lines (52 loc) 1.84 kB
// Copyright 2013 The Obvious Corporation. var utils = require('./utils/testUtils.js') var nodeunitq = require('nodeunitq') var builder = new nodeunitq.Builder(exports) var onError = console.error.bind(console) var initialData = [{"userId": "userA", "column": "@", "age": "29"}] // basic setup for the tests, creating record userA with range key @ exports.setUp = function (done) { this.db = utils.getMockDatabase() this.client = utils.getMockDatabaseClient() utils.ensureLocalDynamo() utils.createTable(this.db, "user", "userId", "column") .thenBound(utils.initTable, null, {db: this.db, tableName: "user", data: initialData}) .fail(onError) .fin(done) } exports.tearDown = function (done) { utils.deleteTable(this.db, "user") .fin(done) } // check that an item exists builder.add(function testItemExists(test) { return this.client.getItem('user') .setHashKey('userId', 'userA') .setRangeKey('column', '@') .execute() .then(function (data) { test.equal(data.result.age, 29, 'Age should match the provided age') }) }) // check that only selected attributes are returned builder.add(function testSelectedAttributes(test) { return this.client.getItem('user') .setHashKey('userId', 'userA') .setRangeKey('column', '@') .selectAttributes(['userId', 'column']) .execute() .then(function (data) { test.equal(data.result.column, '@', 'Column should be defined') test.equal(data.result.age, undefined, 'Age should be undefined') }) }) // check that an item doesn't exist builder.add(function testItemDoesNotExist(test) { return this.client.getItem('user') .setHashKey('userId', 'userB') .setRangeKey('column', '@') .execute() .then(function (data) { test.equal(data.result, undefined, 'Record should not exist') }) })