UNPKG

dynoga

Version:

**Dynoga** is a light library for use DynamoDB with javascript objects

143 lines (126 loc) 4.55 kB
Assert = require "assert" Dynoga = require "../lib/dynoga" # Configuration db = new Dynoga endpoint: "http://localhost:8000" accessKeyId: process.env.METIDIA_ACCESS_KEY_ID secretAccessKey: process.env.METIDIA_SECRET_ACCESS_KEY region: "eu-west-1" describe "dynoga", () -> beforeEach (done) -> # Delete table db.dynamo.deleteTable TableName: "dynoga-test" (deleteErr, data) -> # Create table db.dynamo.createTable TableName: "dynoga-test" AttributeDefinitions: [ { AttributeName: "userID" AttributeType: "S" },{ AttributeName: "id" AttributeType: "S" } ] KeySchema: [ { AttributeName: "userID" KeyType: "HASH" }, { AttributeName: "id" KeyType: "RANGE" } ] ProvisionedThroughput: ReadCapacityUnits: 10 WriteCapacityUnits: 10 done describe "create", () -> it "should create a new insert in bdd", (done) -> input = id: "1" userID: "test" age: 50 sexualSlaves: ["poney", "barby", "Mr slave", "bibou"] db.create "dynoga-test", input, (err, data) -> if err then console.log err Assert.deepEqual data, input do done it "should generate an id", (done) -> db.create "dynoga-test", {userID: "test"}, (err, data) -> if err then console.log err Assert.equal typeof data.id, "string" do done it "should ignore empty string", (done) -> input = id: "1" userID: "test" age: 20 optional: "" db.create "dynoga-test", input, (err, data) -> if err then console.log err delete input.optional Assert.deepEqual data, input do done describe "read", () -> it "should return same object as saved", (done) -> input = id: "1" userID: "test" age: 50 sexualSlaves: ["poney", "barby", "Mr slave", "bibou"] db.create "dynoga-test", input, (err, createData) -> db.read "dynoga-test", {id: "1", userID: "test"}, (err, readData) -> if err then console.log err delete input._createTimeStamp Assert.deepEqual readData, input do done it "should return the collection", (done) -> expected = [ {id: "2", userID: "test"} {id: "1", userID: "test"} {id: "3", userID: "test"} {id: "4", userID: "test"} {id: "5", userID: "test"} ] db.create "dynoga-test", {id: "2", userID: "test"}, (err, data) -> db.create "dynoga-test", {id: "1", userID: "test"}, (err, data) -> db.create "dynoga-test", {id: "3", userID: "test"}, (err, data) -> db.create "dynoga-test", {id: "4", userID: "test"}, (err, data) -> db.create "dynoga-test", {id: "5", userID: "test"}, (err, data) -> db.read "dynoga-test", {userID: "test"}, (err, collection) -> Assert.deepEqual collection, expected do done describe "update", () -> it "should return the updated object", (done) -> input = id: "1" userID: "test" age: 50 sexualSlaves: ["poney", "barby", "Mr slave", "bibou"] expected = id: "1" userID: "test" age: 40 sexualSlaves: ["poney", "barby", "Mr slave", "bibou"] db.create "dynoga-test", input, (err, createData) -> db.update "dynoga-test", {id: "1", userID: "test", age: 40}, (err, updatedata) -> if err then console.log err Assert.deepEqual updatedata, expected do done describe "delete", () -> it "should return deleted object and delete it", (done) -> input = id: "1" userID: "test" age: 50 sexualSlaves: ["poney", "barby", "Mr slave", "bibou"] db.create "dynoga-test", input, (err, createData) -> db.delete "dynoga-test", {id: "1", userID: "test"}, (err, deleteData) -> delete input._createTimeStamp Assert.deepEqual deleteData, input db.read "dynoga-test", {id: "1", userID: "test"}, (err, readData) -> Assert.strictEqual readData, undefined do done