2018-05-06 22:28:53 +00:00
|
|
|
const test = require("tape");
|
|
|
|
const Record = require("../src/record.js");
|
2018-04-02 04:35:22 +00:00
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
test("Record.js", function(t) {
|
2018-04-02 04:35:22 +00:00
|
|
|
let pets;
|
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.test("setup", function(t) {
|
2018-04-02 04:35:22 +00:00
|
|
|
pets = new Record();
|
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.ok(Record, "Record should exist");
|
|
|
|
t.ok(pets, "new collection should have been created");
|
2018-04-02 04:35:22 +00:00
|
|
|
t.end();
|
|
|
|
});
|
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.test("should add 3 records one-by-one", function(t) {
|
|
|
|
t.ok(pets.add, "add method exists");
|
2018-04-02 04:35:22 +00:00
|
|
|
|
|
|
|
let plato = pets.add({"name": "plato", "type": "dog"});
|
|
|
|
let socrates = pets.add({"id": "1", "name": "socrates", "type": "dog"});
|
|
|
|
let hypatia = pets.add({"name": "hypatia", "type": "cat"});
|
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.equal(plato.name, "plato", "plato should have been added");
|
|
|
|
t.equal(socrates.name, "socrates", "socrates should have been added");
|
|
|
|
t.equal(hypatia.name, "hypatia", "hypatia should have been added");
|
2018-04-02 04:35:22 +00:00
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.ok(plato.id, "platos record id should be auto-generated");
|
|
|
|
t.equal(socrates.id, "1","socrates record id should not be auto-generated");
|
2018-04-02 04:35:22 +00:00
|
|
|
|
|
|
|
t.end();
|
|
|
|
});
|
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.test("should be 3 records", function(t) {
|
|
|
|
t.equal(pets.find().length, 3);
|
2018-04-02 04:35:22 +00:00
|
|
|
t.end();
|
|
|
|
});
|
|
|
|
|
|
|
|
t.test("should find all matching records", function(t) {
|
|
|
|
let dogs = pets.find({"type": "dog"});
|
|
|
|
|
|
|
|
t.equal(dogs.length, 2, "should be 2 dogs in the house");
|
2018-05-06 22:28:53 +00:00
|
|
|
t.equal(pets.find().length, 3, "but should still have 3 pets");
|
2018-04-02 04:35:22 +00:00
|
|
|
|
|
|
|
t.end();
|
|
|
|
});
|
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.test("should be able to remove a record", function() {
|
2018-04-02 04:35:22 +00:00
|
|
|
let hypatia = pets.remove({"name": "hypatia"});
|
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.equal(hypatia[0].name, "hypatia", "hypatia should be removed");
|
2018-04-02 04:35:22 +00:00
|
|
|
|
2018-05-06 22:28:53 +00:00
|
|
|
t.equal(pets.find().length, 2, "yes, hypatia has left the building");
|
2018-04-02 04:35:22 +00:00
|
|
|
|
|
|
|
t.end();
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|