From fe17c01f5a2d43ea2a2551b715484f87060f645c Mon Sep 17 00:00:00 2001 From: TeamworkGuy2 Date: Fri, 27 May 2016 00:24:05 +0000 Subject: [PATCH] 0.12.4 - works with latest ts-promises lib version. Use mocha and chai for tests. --- CHANGELOG.md | 9 ++- db-collections/in-mem-collections.d.ts | 2 +- package.json | 15 +++-- qunit-tests.js | 23 ------- qunit-tests.ts | 29 --------- sync/SyncDataCollection.js | 2 +- sync/SyncDataCollection.ts | 2 +- test/LokiDbImplTest.js | 77 +++++++++++----------- test/LokiDbImplTest.ts | 88 ++++++++++++++------------ 9 files changed, 107 insertions(+), 140 deletions(-) delete mode 100644 qunit-tests.js delete mode 100644 qunit-tests.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 2af7253..980a469 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,14 @@ This project does its best to adhere to [Semantic Versioning](http://semver.org/ -------- -### [0.12.3](N/A) - 2016-05-26 +### [0.12.4](https://github.com/TeamworkGuy2/lokijs-collections/commit/2013d7e8a34139d5585742766464ec980a1835d9) - 2016-05-27 +#### Changed +* work with latest version of ts-promises library +* use mocha and chai for tests instead of qunit + + +-------- +### [0.12.3](https://github.com/TeamworkGuy2/lokijs-collections/commit/2013d7e8a34139d5585742766464ec980a1835d9) - 2016-05-26 #### Changed * Changed to work with latest version of ts-mortar and new ts-typed-promises library diff --git a/db-collections/in-mem-collections.d.ts b/db-collections/in-mem-collections.d.ts index 43bb882..7929b75 100644 --- a/db-collections/in-mem-collections.d.ts +++ b/db-collections/in-mem-collections.d.ts @@ -1,7 +1,7 @@ /// /// /// -/// +/// /// /// /// diff --git a/package.json b/package.json index 14c3abe..443d976 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,21 @@ { "name": "lokijs-collections", - "version": "0.12.3", + "version": "0.12.4", "description": "Strongly typed TypeScript collections for [LokiJS] (https://github.com/techfort/LokiJS), including key constraints (i.e. primary keys, non-null fields, max length strings), and collection change trackers.", "dependencies": { "lokijs": "~1.2.0", "q": "~1.4.1", "ts-code-generator": "~0.15.0", - "ts-mortar": "~0.7.0", - "ts-promise-tasks": "~0.1.0" + "ts-mortar": "~0.7.2", + "ts-promises": "~0.1.0" }, "devDependencies": { - "gulp-util": "~3.0.7", "lokijs": "git://github.com/techfort/LokiJS.git#daeceff0ac3e25e977e9298a2e6da5996683aa59 -g", - "qunit": "~0.9.1", - "typescript": "~1.8.10" + "chai": "^3.5.0", + "mocha": "~2.5.0", + "typescript": "~1.8.9" + }, + "scripts": { + "test": "mocha -u tdd" } } diff --git a/qunit-tests.js b/qunit-tests.js deleted file mode 100644 index f66d239..0000000 --- a/qunit-tests.js +++ /dev/null @@ -1,23 +0,0 @@ -/// -/// -/// -var gutil = require("gulp-util"); -var testRunner = require("qunit"); -function callback() { - //gutil.log("done a test: " + JSON.stringify(arguments)); -} -testRunner.setup({ - log: { - errors: true, - tests: true, - summary: true, - globalSummary: true, - coverage: true, - globalCoverage: true, - testing: true - } -}); -testRunner.run({ - code: "./db-collections/LokiDbImpl", - tests: "./test/LokiDbImplTest.js" -}, callback); diff --git a/qunit-tests.ts b/qunit-tests.ts deleted file mode 100644 index cda2630..0000000 --- a/qunit-tests.ts +++ /dev/null @@ -1,29 +0,0 @@ -/// -/// -/// -var gutil = require("gulp-util"); -var testRunner = require("qunit"); - - -function callback() { - //gutil.log("done a test: " + JSON.stringify(arguments)); -} - - -testRunner.setup({ - log: { - errors: true, - tests: true, - summary: true, - globalSummary: true, - coverage: true, - globalCoverage: true, - testing: true - } -}); - - -testRunner.run({ - code: "./db-collections/LokiDbImpl", - tests: "./test/LokiDbImplTest.js" -}, callback); diff --git a/sync/SyncDataCollection.js b/sync/SyncDataCollection.js index 53cc9f8..d811b3d 100644 --- a/sync/SyncDataCollection.js +++ b/sync/SyncDataCollection.js @@ -1,6 +1,6 @@ "use strict"; var Arrays = require("../../ts-mortar/utils/Arrays"); -var Defer = require("../../ts-typed-promises/promises/Defer"); +var Defer = require("../../ts-promises/Defer"); /** Combines functionality for two operations in one class: * - Sync a local data collection to a remote data collection (refered to as 'syncing up'). * - Sync a remote data collection to a local data collection (refered to as 'syncing down'). diff --git a/sync/SyncDataCollection.ts b/sync/SyncDataCollection.ts index e620763..6115ed8 100644 --- a/sync/SyncDataCollection.ts +++ b/sync/SyncDataCollection.ts @@ -1,5 +1,5 @@ import Arrays = require("../../ts-mortar/utils/Arrays"); -import Defer = require("../../ts-typed-promises/promises/Defer"); +import Defer = require("../../ts-promises/Defer"); /** Combines functionality for two operations in one class: * - Sync a local data collection to a remote data collection (refered to as 'syncing up'). diff --git a/test/LokiDbImplTest.js b/test/LokiDbImplTest.js index e60d3aa..8db82fe 100644 --- a/test/LokiDbImplTest.js +++ b/test/LokiDbImplTest.js @@ -1,4 +1,7 @@ "use strict"; +/// +/// +var chai = require("chai"); var Objects = require("../../ts-mortar/utils/Objects"); var DtoPropertyConverter = require("../../ts-code-generator/code-types/DtoPropertyConverter"); var TypeConverter = require("../../ts-code-generator/code-types/TypeConverter"); @@ -6,6 +9,7 @@ var LokiDbImpl = require("../db-collections/LokiDbImpl"); var DataCollection = require("../db-collections/DataCollection"); var ModelDefinitionsSet = require("../data-models/ModelDefinitionsSet"); var DummyDataPersister = require("./DummyDataPersister"); +var as = chai.assert; var global; var now = new Date(); var dataTypes = null; @@ -51,41 +55,42 @@ var bItem2 = { timestamp: null, }; var dataModelsMap = dataModels; -QUnit.module("LokiDbImpl", {}); -QUnit.test("new LokiDbImpl", function LokiDbImplTest(sr) { - var persister; - var dbInst = new LokiDbImpl("lokijs-collections-test", { readAllow: true, writeAllow: true }, { compressLocalStores: false }, "for-in-if", "collection_meta_data", ModelDefinitionsSet.fromCollectionModels(dataModelsMap, dataTypes), function createPersister(dbInst) { - persister = new DummyDataPersister(function () { return dbInst.getCollections(); }, LokiDbImpl.cloneForInIf, null); - return persister; +suite("LokiDbImpl", function LokiDbImplTest() { + test("new LokiDbImpl()", function newLokiDbImplTest() { + var persister; + var dbInst = new LokiDbImpl("lokijs-collections-test", { readAllow: true, writeAllow: true }, { compressLocalStores: false }, "for-in-if", "collection_meta_data", ModelDefinitionsSet.fromCollectionModels(dataModelsMap, dataTypes), function createPersister(dbInst) { + persister = new DummyDataPersister(function () { return dbInst.getCollections(); }, LokiDbImpl.cloneForInIf, null); + return persister; + }); + dbInst.initializeDb({}); + var modelA = dbInst.getModelDefinitions().getDataModel("coll_a"); + var modelFuncsA = dbInst.getModelDefinitions().getDataModelFuncs("coll_a"); + var modelB = dbInst.getModelDefinitions().getDataModel("coll_b"); + var modelFuncsB = dbInst.getModelDefinitions().getDataModelFuncs("coll_b"); + global = { + dbInst: dbInst, + collA: new DataCollection("coll_a", modelA, modelFuncsA, dbInst), + collB: new DataCollection("coll_b", modelB, modelFuncsB, dbInst) + }; + as.deepEqual(global.dbInst.getCollections().map(function (c) { return c.name; }), ["coll_a", "coll_b"]); + }); + test("add/remove", function addRemoveTest() { + var collA = global.collA; + var collB = global.collB; + var now = new Date(); + var aItem1Add = collA.add(aItem1); + var aItem2Add = collA.add(aItem2); + as.deepEqual(Objects.cloneDeep(aItem1), aItem1); + as.equal(collA.data().length, 2); + collA.removeWhere({ id: aItem1Add.id }); + as.equal(collA.data().length, 1); + collA.remove(aItem2Add); + as.equal(collA.data().length, 0); + collB.addAll([bItem1, bItem2]); + var _a = collB.data(), bItem1Add = _a[0], bItem2Add = _a[1]; + as.deepEqual(Objects.cloneDeep(bItem1), bItem1); + as.equal(collB.data().length, 2); + collB.clearCollection(); + as.equal(collB.data().length, 0); }); - dbInst.initializeDb({}); - var modelA = dbInst.getModelDefinitions().getDataModel("coll_a"); - var modelFuncsA = dbInst.getModelDefinitions().getDataModelFuncs("coll_a"); - var modelB = dbInst.getModelDefinitions().getDataModel("coll_b"); - var modelFuncsB = dbInst.getModelDefinitions().getDataModelFuncs("coll_b"); - global = { - dbInst: dbInst, - collA: new DataCollection("coll_a", modelA, modelFuncsA, dbInst), - collB: new DataCollection("coll_b", modelB, modelFuncsB, dbInst) - }; - sr.deepEqual(global.dbInst.getCollections().map(function (c) { return c.name; }), ["coll_a", "coll_b"]); -}); -QUnit.test("add/remove", function addRemoveTest(sr) { - var collA = global.collA; - var collB = global.collB; - var now = new Date(); - var aItem1Add = collA.add(aItem1); - var aItem2Add = collA.add(aItem2); - sr.deepEqual(Objects.cloneDeep(aItem1), aItem1); - sr.equal(collA.data().length, 2); - collA.removeWhere({ id: aItem1Add.id }); - sr.equal(collA.data().length, 1); - collA.remove(aItem2Add); - sr.equal(collA.data().length, 0); - collB.addAll([bItem1, bItem2]); - var _a = collB.data(), bItem1Add = _a[0], bItem2Add = _a[1]; - sr.deepEqual(Objects.cloneDeep(bItem1), bItem1); - sr.equal(collB.data().length, 2); - collB.clearCollection(); - sr.equal(collB.data().length, 0); }); diff --git a/test/LokiDbImplTest.ts b/test/LokiDbImplTest.ts index f9085e2..d5f444c 100644 --- a/test/LokiDbImplTest.ts +++ b/test/LokiDbImplTest.ts @@ -1,4 +1,6 @@ -"use strict"; +/// +/// +import chai = require("chai"); import Objects = require("../../ts-mortar/utils/Objects"); import DtoPropertyConverter = require("../../ts-code-generator/code-types/DtoPropertyConverter"); import TypeConverter = require("../../ts-code-generator/code-types/TypeConverter"); @@ -7,6 +9,8 @@ import DataCollection = require("../db-collections/DataCollection"); import ModelDefinitionsSet = require("../data-models/ModelDefinitionsSet"); import DummyDataPersister = require("./DummyDataPersister"); +var as = chai.assert; + interface MdA { id: number; name: string; @@ -91,60 +95,60 @@ var dataModelsMap = >>dataModels; -QUnit.module("LokiDbImpl", { -}); +suite("LokiDbImpl", function LokiDbImplTest() { + test("new LokiDbImpl()", function newLokiDbImplTest() { + var persister: DummyDataPersister; + var dbInst = new LokiDbImpl("lokijs-collections-test", { readAllow: true, writeAllow: true }, { compressLocalStores: false }, "for-in-if", + "collection_meta_data", ModelDefinitionsSet.fromCollectionModels(dataModelsMap, dataTypes), + function createPersister(dbInst: InMemDb) { + persister = new DummyDataPersister(() => dbInst.getCollections(), LokiDbImpl.cloneForInIf, null); + return persister; + } + ); + dbInst.initializeDb({}); -QUnit.test("new LokiDbImpl", function LokiDbImplTest(sr) { - var persister: DummyDataPersister; - var dbInst = new LokiDbImpl("lokijs-collections-test", { readAllow: true, writeAllow: true }, { compressLocalStores: false }, "for-in-if", - "collection_meta_data", ModelDefinitionsSet.fromCollectionModels(dataModelsMap, dataTypes), - function createPersister(dbInst: InMemDb) { - persister = new DummyDataPersister(() => dbInst.getCollections(), LokiDbImpl.cloneForInIf, null); - return persister; - } - ); - dbInst.initializeDb({}); + var modelA = dbInst.getModelDefinitions().getDataModel("coll_a"); + var modelFuncsA = dbInst.getModelDefinitions().getDataModelFuncs("coll_a"); + var modelB = dbInst.getModelDefinitions().getDataModel("coll_b"); + var modelFuncsB = dbInst.getModelDefinitions().getDataModelFuncs("coll_b"); - var modelA = dbInst.getModelDefinitions().getDataModel("coll_a"); - var modelFuncsA = dbInst.getModelDefinitions().getDataModelFuncs("coll_a"); - var modelB = dbInst.getModelDefinitions().getDataModel("coll_b"); - var modelFuncsB = dbInst.getModelDefinitions().getDataModelFuncs("coll_b"); + global = { + dbInst: dbInst, + collA: new DataCollection("coll_a", modelA, modelFuncsA, dbInst), + collB: new DataCollection("coll_b", modelB, modelFuncsB, dbInst) + }; - global = { - dbInst: dbInst, - collA: new DataCollection("coll_a", modelA, modelFuncsA, dbInst), - collB: new DataCollection("coll_b", modelB, modelFuncsB, dbInst) - }; + as.deepEqual(global.dbInst.getCollections().map((c) => c.name), ["coll_a", "coll_b"]); + }); - sr.deepEqual(global.dbInst.getCollections().map((c) => c.name), ["coll_a", "coll_b"]); -}); + test("add/remove", function addRemoveTest() { + var collA = global.collA; + var collB = global.collB; + var now = new Date(); -QUnit.test("add/remove", function addRemoveTest(sr) { - var collA = global.collA; - var collB = global.collB; - var now = new Date(); + var aItem1Add = collA.add(aItem1); + var aItem2Add = collA.add(aItem2); - var aItem1Add = collA.add(aItem1); - var aItem2Add = collA.add(aItem2); + as.deepEqual(Objects.cloneDeep(aItem1), aItem1); + as.equal(collA.data().length, 2); - sr.deepEqual(Objects.cloneDeep(aItem1), aItem1); - sr.equal(collA.data().length, 2); + collA.removeWhere({ id: aItem1Add.id }); + as.equal(collA.data().length, 1); - collA.removeWhere({ id: aItem1Add.id }); - sr.equal(collA.data().length, 1); + collA.remove(aItem2Add); + as.equal(collA.data().length, 0); - collA.remove(aItem2Add); - sr.equal(collA.data().length, 0); + collB.addAll([bItem1, bItem2]); + var [bItem1Add, bItem2Add] = collB.data(); - collB.addAll([bItem1, bItem2]); - var [bItem1Add, bItem2Add] = collB.data(); + as.deepEqual(Objects.cloneDeep(bItem1), bItem1); + as.equal(collB.data().length, 2); - sr.deepEqual(Objects.cloneDeep(bItem1), bItem1); - sr.equal(collB.data().length, 2); + collB.clearCollection(); + as.equal(collB.data().length, 0); + }); - collB.clearCollection(); - sr.equal(collB.data().length, 0); }); \ No newline at end of file