UNPKG

forerunnerdb

Version:

A NoSQL document store database for browsers and Node.js.

385 lines (290 loc) 6.87 kB
QUnit.module('Events'); QUnit.asyncTest("Collection.once() :: Register an event listener to fire once", function() { base.dbUp(); base.dataUp(); expect(1); var eventFunc = function (successArr, failed) { strictEqual(successArr.length, 1, "Insert single document"); start(); }; user.once('insert', eventFunc); user.insert({ _id: '2342', name: "hello" }); user.insert({ _id: '2342', name: "hello" }); base.dbDown(); }); QUnit.asyncTest("Collection.on() :: Insert with Success", function() { base.dbUp(); base.dataUp(); expect(1); var eventFunc = function (successArr, failed) { strictEqual(successArr.length, 1, "Insert single document"); start(); }; user.on('insert', eventFunc); user.insert({ _id: '2342', name: "hello" }); user.off('insert', eventFunc); base.dbDown(); }); QUnit.asyncTest("Collection.on() :: Insert with Failed", function() { base.dbUp(); base.dataUp(); expect(1); user.insert({ _id: '2342', name: "hello" }); user.on('insert', function (successArr, failed) { strictEqual(failed.length, 1, "Insert single document with index violation"); start(); }); user.insert({ _id: '2342', name: "hello" }); base.dbDown(); }); QUnit.asyncTest("Collection.on() :: Update with Success", function() { base.dbUp(); base.dataUp(); expect(1); user.insert({ _id: '2342', name: "hello" }); user.on('update', function (updated, failed) { //console.log('Updated'); strictEqual(updated.length, 1, "Update single document"); start(); }); //console.log('Calling update'); user.update({ _id: '2342' }, { name: "hello2" }); base.dbDown(); }); QUnit.asyncTest("Collection.on() :: Update Key Array Data with Success", function() { base.dbUp(); base.dataUp(); expect(1); user.insert({ _id: '2342', name: [{said: "hello"}] }); user.on('update', function (updated, failed) { //console.log('Updated', updated); strictEqual(updated.length, 1, "Update single document"); start(); }); //console.log('Calling update'); user.update({ _id: '2342', 'name': {said: 'hello'} }, { 'name.$': {said: "hello2"} }); base.dbDown(); }); QUnit.asyncTest("Collection.on() :: Remove with Success", function() { base.dbUp(); base.dataUp(); expect(1); user.insert({ _id: '2342', name: "hello" }); user.on('remove', function (removed, failed) { strictEqual(removed.length, 1, "Remove single document"); start(); }); user.remove({ _id: '2342' }); base.dbDown(); }); ForerunnerDB.moduleLoaded('CollectionGroup', function () { QUnit.asyncTest("CollectionGroup.on() :: Insert :: Event fired from collection", function () { base.dbUp(); base.dataUp(); expect(1); var group = db.collectionGroup('testGroup') .addCollection(user); group.on('insert', function (successArr, failed) { strictEqual(successArr.length, 1, "Insert single document"); start(); }); user.insert({ _id: '2342', name: "hello" }); base.dbDown(); }); QUnit.asyncTest("CollectionGroup.on() :: Update :: Event fired from collection", function () { base.dbUp(); base.dataUp(); expect(1); user.insert({ _id: '2342', name: "hello" }); var group = db.collectionGroup('testGroup') .addCollection(user); group.on('update', function (successArr, failArr) { strictEqual(successArr.length, 1, "Update single document"); start(); }); user.update({ _id: '2342' }, { name: "hello2" }); base.dbDown(); }); QUnit.asyncTest("CollectionGroup.on() :: Update With Specific ID Selector :: Event fired from collection", function () { base.dbUp(); base.dataUp(); expect(2); user.insert({ _id: '2342', name: "hello" }); user.insert({ _id: '2343', name: "hello" }); var group = db.collectionGroup('testGroup') .addCollection(user); group.on('update', '2342', function (successArr, failArr) { strictEqual(successArr.length === 1 && successArr[0]._id, '2342', "Update single document"); }); group.on('update', '2343', function (successArr, failArr) { strictEqual(successArr.length === 1 && successArr[0]._id, '2343', "Update single document"); start(); }); user.update({ _id: '2342' }, { name: "hello2" }); user.update({ _id: '2343' }, { name: "hello2" }); base.dbDown(); }); QUnit.asyncTest("CollectionGroup.on() :: Remove :: Event fired from collection", function () { base.dbUp(); base.dataUp(); expect(1); user.insert({ _id: '2342', name: "hello" }); var group = db.collectionGroup('testGroup') .addCollection(user); group.on('remove', function (successArr, failArr) { strictEqual(successArr.length, 1, "Remove single document"); start(); }); user.remove({ _id: '2342' }); base.dbDown(); }); }); ForerunnerDB.moduleLoaded('View, CollectionGroup', function () { QUnit.asyncTest("CollectionGroup.on() :: Insert :: Event fired from view", function () { base.dbUp(); base.dataUp(); base.viewUp(); expect(1); var group = db.collectionGroup('testGroup') .addCollection(userView); group.on('insert', function (successArr, failed) { strictEqual(successArr.length, 1, "Insert single document"); start(); }); user.insert({ _id: '2342', name: "hello" }); base.viewDown(); base.dbDown(); }); QUnit.asyncTest("CollectionGroup.on() :: Update :: Event fired from view", function () { base.dbUp(); base.dataUp(); base.viewUp(); expect(1); user.insert({ _id: '2342', name: "hello" }); var group = db.collectionGroup('testGroup') .addCollection(userView); group.on('update', function (successArr, failArr) { strictEqual(successArr.length, 1, "Update single document"); start(); }); user.update({ _id: '2342' }, { name: "hello2" }); base.viewDown(); base.dbDown(); }); QUnit.asyncTest("CollectionGroup.on() :: Remove :: Event fired from view", function () { base.dbUp(); base.dataUp(); base.viewUp(); expect(1); user.insert({ _id: '2342', name: "hello" }); var group = db.collectionGroup('testGroup') .addCollection(userView); var testFunc = function (successArr, failArr) { strictEqual(successArr.length, 1, "Remove single document"); start(); }; group.on('remove', testFunc); user.remove({ _id: '2342' }); group.off('remove', testFunc); base.viewDown(); base.dbDown(); }); }); ForerunnerDB.moduleLoaded('View', function () { QUnit.asyncTest("View.on() :: Insert", function () { base.dbUp(); base.dataUp(); base.viewUp(); expect(1); db.view('userView').on('insert', function (successArr, failed) { //console.log('insert'); strictEqual(successArr.length, 1, "Insert single document"); start(); }); user.insert({ _id: '2342', name: "hello" }); base.viewDown(); base.dbDown(); }); });