lik/test/test.js

121 lines
12 KiB
JavaScript

"use strict";
require("typings-test");
const events = require("events");
const lodash = require("lodash");
const should = require("should");
const lik = require("../dist/index");
describe('lik', function () {
describe('Stringmap', function () {
let testStringmap;
let testString1 = 'testString1';
let testString2 = 'testString2';
let testString3 = 'testString3';
let testString4 = 'testString4';
let testString5 = 'testString5';
let testString6 = 'testString6';
it('new lik.Objectmap() -> should create an instance of Stringmap', function () {
testStringmap = new lik.Stringmap();
should(testStringmap).be.instanceof(lik.Stringmap);
});
it('lik.Stringmap.checkString -> should return false for an string not in Stringmap', function () {
should(testStringmap.checkString(testString1)).be.false();
});
it('lik.Stringmap.addString -> should add an string to Stringmap', function () {
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();
});
it('lik.Stringmap.addStringArray -> should add an array of strings', function () {
testStringmap.addStringArray([testString4, testString5, testString6]);
should(testStringmap.checkMinimatch('*String4')).be.true();
});
it('lik.Stringmap.removeString -> should remove a string from Stringmap', function () {
testStringmap.removeString(testString2);
should(testStringmap.checkString(testString2)).be.false();
});
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();
});
it('lik.Stringmap.checkIsEmpty() -> should register a function to trigger when empty', function () {
testStringmap.registerUntilTrue(() => { return testStringmap.checkIsEmpty(); }, () => { console.log('Stringmap now is empty'); });
});
it('lik.Stringmap.empty() -> should remove wipe and then notify', function () {
testStringmap.wipe();
});
});
describe('Objectmap', function () {
let testObjectmap;
let testObject1 = {
propOne: 'hello',
propTwo: 'hello2'
};
let testObject2 = {
propOne: 'hello',
propTwo: 'hello2'
};
it('new lik.Objectmap() -> should correctly instantiate an Objectmap', function () {
testObjectmap = new lik.Objectmap();
should(testObjectmap).be.instanceof(lik.Objectmap);
});
it('lik.Objectmap.add() -> should correctly add an object to Objectmap', function () {
testObjectmap.add(testObject1);
should(testObjectmap.checkForObject(testObject1)).be.true;
should(testObjectmap.checkForObject(testObject2)).be.false;
});
it('lik.Objectmap.remove() -> should correctly remove an object to Objectmap', function () {
testObjectmap.add(testObject2);
testObjectmap.remove(testObject1);
should(testObjectmap.checkForObject(testObject1)).be.false;
should(testObjectmap.checkForObject(testObject2)).be.true;
});
it('Objectmap.forEach -> should correctly run a function forEach map object', function () {
testObjectmap.forEach(itemArg => {
should(itemArg).have.ownProperty('propOne');
});
});
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();
});
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();
});
});
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');
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFFaEMsaUNBQWdDO0FBQ2hDLGlDQUFnQztBQUVoQyxxQ0FBcUM7QUFDckMsUUFBUSxDQUFDLEtBQUssRUFBQztJQUNYLFFBQVEsQ0FBQyxXQUFXLEVBQUM7UUFDakIsSUFBSSxhQUE0QixDQUFBO1FBQ2hDLElBQUksV0FBVyxHQUFHLGFBQWEsQ0FBQTtRQUMvQixJQUFJLFdBQVcsR0FBRyxhQUFhLENBQUE7UUFDL0IsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFBO1FBQy9CLElBQUksV0FBVyxHQUFHLGFBQWEsQ0FBQTtRQUMvQixJQUFJLFdBQVcsR0FBRyxhQUFhLENBQUE7UUFDL0IsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFBO1FBQy9CLEVBQUUsQ0FBQywrREFBK0QsRUFBQztZQUMvRCxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDbkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RELENBQUMsQ0FBQyxDQUFBO1FBQ0YsRUFBRSxDQUFDLGlGQUFpRixFQUFDO1lBQ2pGLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQzdELENBQUMsQ0FBQyxDQUFBO1FBQ0YsRUFBRSxDQUFDLDhEQUE4RCxFQUFDO1lBQzlELGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDcEMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNwQyxhQUFhLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3BDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFD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