lik/test/test.js

121 lines
12 KiB
JavaScript
Raw Normal View History

2016-07-21 22:16:45 +00:00
"use strict";
require("typings-test");
2016-09-22 10:00:33 +00:00
const events = require("events");
2016-09-29 20:05:20 +00:00
const lodash = require("lodash");
const should = require("should");
2016-09-22 10:00:33 +00:00
const lik = require("../dist/index");
describe('lik', function () {
describe('Stringmap', function () {
2016-07-21 22:16:45 +00:00
let testStringmap;
let testString1 = 'testString1';
let testString2 = 'testString2';
let testString3 = 'testString3';
2016-09-22 10:00:33 +00:00
let testString4 = 'testString4';
let testString5 = 'testString5';
let testString6 = 'testString6';
2016-09-29 20:05:20 +00:00
it('new lik.Objectmap() -> should create an instance of Stringmap', function () {
2016-07-21 22:16:45 +00:00
testStringmap = new lik.Stringmap();
should(testStringmap).be.instanceof(lik.Stringmap);
2016-07-21 22:16:45 +00:00
});
2016-09-29 20:05:20 +00:00
it('lik.Stringmap.checkString -> should return false for an string not in Stringmap', function () {
should(testStringmap.checkString(testString1)).be.false();
2016-07-21 22:16:45 +00:00
});
2016-09-29 20:05:20 +00:00
it('lik.Stringmap.addString -> should add an string to Stringmap', function () {
2016-07-21 22:16:45 +00:00
testStringmap.addString(testString1);
testStringmap.addString(testString2);
testStringmap.addString(testString3);
should(testStringmap.checkString(testString1)).be.true();
should(testStringmap.checkString(testString2)).be.true();
should(testStringmap.checkString(testString3)).be.true();
should(testStringmap.checkMinimatch('*String1')).be.true();
should(testStringmap.checkMinimatch('*String2')).be.true();
should(testStringmap.checkMinimatch('*String4')).be.false();
2016-07-21 22:16:45 +00:00
});
2016-09-29 20:05:20 +00:00
it('lik.Stringmap.addStringArray -> should add an array of strings', function () {
2016-09-22 10:00:33 +00:00
testStringmap.addStringArray([testString4, testString5, testString6]);
should(testStringmap.checkMinimatch('*String4')).be.true();
});
2016-09-29 20:05:20 +00:00
it('lik.Stringmap.removeString -> should remove a string from Stringmap', function () {
2016-07-21 22:16:45 +00:00
testStringmap.removeString(testString2);
should(testStringmap.checkString(testString2)).be.false();
2016-07-21 22:16:45 +00:00
});
2016-09-29 20:05:20 +00:00
it('lik.Stringmap.getStringArray() -> should return a copy of stringArray', function () {
let clonedArray = testStringmap.getStringArray();
should(clonedArray[0] === 'testString1').be.true();
should(clonedArray[0] === testString1).be.true();
});
2016-09-29 20:05:20 +00:00
it('lik.Stringmap.checkIsEmpty() -> should register a function to trigger when empty', function () {
testStringmap.registerUntilTrue(() => { return testStringmap.checkIsEmpty(); }, () => { console.log('Stringmap now is empty'); });
});
2016-09-29 20:05:20 +00:00
it('lik.Stringmap.empty() -> should remove wipe and then notify', function () {
testStringmap.wipe();
});
2016-07-21 22:16:45 +00:00
});
describe('Objectmap', function () {
2016-07-30 22:54:46 +00:00
let testObjectmap;
let testObject1 = {
propOne: 'hello',
propTwo: 'hello2'
2016-07-30 22:54:46 +00:00
};
let testObject2 = {
propOne: 'hello',
propTwo: 'hello2'
2016-07-30 22:54:46 +00:00
};
2016-09-29 20:05:20 +00:00
it('new lik.Objectmap() -> should correctly instantiate an Objectmap', function () {
2016-07-30 22:54:46 +00:00
testObjectmap = new lik.Objectmap();
should(testObjectmap).be.instanceof(lik.Objectmap);
2016-07-30 22:54:46 +00:00
});
2016-09-29 20:05:20 +00:00
it('lik.Objectmap.add() -> should correctly add an object to Objectmap', function () {
2016-07-30 22:54:46 +00:00
testObjectmap.add(testObject1);
should(testObjectmap.checkForObject(testObject1)).be.true;
should(testObjectmap.checkForObject(testObject2)).be.false;
2016-07-30 22:54:46 +00:00
});
2016-09-29 20:05:20 +00:00
it('lik.Objectmap.remove() -> should correctly remove an object to Objectmap', function () {
2016-07-30 22:54:46 +00:00
testObjectmap.add(testObject2);
testObjectmap.remove(testObject1);
should(testObjectmap.checkForObject(testObject1)).be.false;
should(testObjectmap.checkForObject(testObject2)).be.true;
2016-07-30 22:54:46 +00:00
});
2016-09-29 20:05:20 +00:00
it('Objectmap.forEach -> should correctly run a function forEach map object', function () {
2016-07-31 12:36:28 +00:00
testObjectmap.forEach(itemArg => {
should(itemArg).have.ownProperty('propOne');
2016-07-31 12:36:28 +00:00
});
});
2016-09-29 20:05:20 +00:00
it('lik.Objectmap.find() -> should correctly find an object', function () {
let myObject = { propOne: 'helloThere', propTwo: 'helloAnyway' };
testObjectmap.add(myObject);
let referenceObject = testObjectmap.find((itemArg) => { return (itemArg.propOne === 'helloThere'); });
should(myObject === referenceObject).be.true();
});
2016-09-29 20:05:20 +00:00
it('lik.Objectmap.getArray() -> should return a cloned array', function () {
let myObject = { propOne: 'test1', propTwo: 'wow, how awesome' };
testObjectmap.add(myObject);
let clonedArray = testObjectmap.getArray();
should(lodash.isEqual(clonedArray[clonedArray.length - 1], myObject)).be.true();
});
2016-07-30 22:54:46 +00:00
});
2016-09-22 10:00:33 +00:00
describe('Observablemap', function () {
let testObservablemap;
let testObservable1;
let testObservable2;
let testObservable3;
let testEmitter;
it('should create an instance', function () {
testObservablemap = new lik.Observablemap();
should(testObservablemap).be.instanceof(lik.Observablemap);
});
it('should accept a new emitter', function (done) {
testEmitter = new events.EventEmitter();
testObservable1 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event1');
testObservable1.subscribe(x => {
done();
});
testObservable2 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event1');
testObservable3 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event2');
should(testObservable1 === testObservable2).be.true();
should(testObservable1 === testObservable3).be.false();
testEmitter.emit('event1');
});
});
2016-07-21 22:16:45 +00:00
});
2016-09-29 20:05:20 +00:00
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFFaEMsaUNBQWdDO0FBQ2hDLGlDQUFnQztBQUVoQyxxQ0FBcUM7QUFDckMsUUFBUSxDQUFDLEtBQUssRUFBQztJQUNYLFFBQVEsQ0FBQyxXQUFXLEVBQUM7UUFDakIsSUFBSSxhQUE0QixDQUFBO1FBQ2hDLElBQUksV0FBVyxHQUFHLGFBQWEsQ0FBQTtRQUMvQixJQUFJLFdBQVcsR0FBRyxhQUFhLENBQUE7UUFDL0IsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFBO1FBQy9CLElBQUksV0FBVyxHQUFHLGFBQWEsQ0FBQTtRQUMvQixJQUFJLFdBQVcsR0FBRyxhQUFhLENBQUE7UUFDL0IsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFBO1FBQy9CLEVBQUUsQ0FBQywrREFBK0QsRUFBQztZQUMvRCxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDbkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RELENBQUMsQ0FBQyxDQUFBO1FBQ0YsRUFBRSxDQUFDLGlGQUFpRixFQUFDO1lBQ2pGLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQzdELENBQUMsQ0FBQyxDQUFBO1FBQ0YsRUFBRSxDQUFDLDhEQUE4RCxFQUFDO1lBQzlELGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDcEMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNwQyxhQUFhLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3BDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFD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