Skip to content

Commit

Permalink
0.12.4 - works with latest ts-promises lib version. Use mocha and cha…
Browse files Browse the repository at this point in the history
…i for tests.
  • Loading branch information
TeamworkGuy2 committed May 27, 2016
1 parent 2013d7e commit fe17c01
Show file tree
Hide file tree
Showing 9 changed files with 107 additions and 140 deletions.
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion db-collections/in-mem-collections.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/// <reference path="../../definitions/lib/lokijs.d.ts" />
/// <reference path="../../definitions/lib/Q.d.ts" />
/// <reference path="../../ts-mortar/events/events.d.ts" />
/// <reference path="../../ts-typed-promises/promises/ts-promises.d.ts" />
/// <reference path="../../ts-promises/ts-promises.d.ts" />
/// <reference path="../../ts-code-generator/code-types/ast-types.d.ts" />
/// <reference path="../../ts-code-generator/code-types/code-types.d.ts" />
/// <reference path="../../ts-code-generator/code-types/model-types.d.ts" />
Expand Down
15 changes: 9 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
23 changes: 0 additions & 23 deletions qunit-tests.js

This file was deleted.

29 changes: 0 additions & 29 deletions qunit-tests.ts

This file was deleted.

2 changes: 1 addition & 1 deletion sync/SyncDataCollection.js
Original file line number Diff line number Diff line change
@@ -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').
Expand Down
2 changes: 1 addition & 1 deletion sync/SyncDataCollection.ts
Original file line number Diff line number Diff line change
@@ -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').
Expand Down
77 changes: 41 additions & 36 deletions test/LokiDbImplTest.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
"use strict";
/// <reference path="../../definitions/lib/chai.d.ts" />
/// <reference path="../../definitions/lib/mocha.d.ts" />
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");
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;
Expand Down Expand Up @@ -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);
});
88 changes: 46 additions & 42 deletions test/LokiDbImplTest.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
"use strict";
/// <reference path="../../definitions/lib/chai.d.ts" />
/// <reference path="../../definitions/lib/mocha.d.ts" />
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");
Expand All @@ -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;
Expand Down Expand Up @@ -91,60 +95,60 @@ var dataModelsMap = <StringMap<DtoModel & DtoFuncs<any>>><any>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<MdA, MdAOpt>("coll_a", modelA, modelFuncsA, dbInst),
collB: new DataCollection<MdB, MdBOpt>("coll_b", modelB, modelFuncsB, dbInst)
};

global = {
dbInst: dbInst,
collA: new DataCollection<MdA, MdAOpt>("coll_a", modelA, modelFuncsA, dbInst),
collB: new DataCollection<MdB, MdBOpt>("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);
});

0 comments on commit fe17c01

Please sign in to comment.