@schukai/monster
Version:
Monster is a simple library for creating fast, robust and lightweight websites.
110 lines (76 loc) • 2.64 kB
JavaScript
import {expect} from "chai"
import {Processing} from "../../../source/util/processing.mjs";
describe('Processing', function () {
describe('run instance', function () {
it('should run many function', function (done) {
let counter = 0;
let t = +new Date();
const desiredDelay = 200;
this.timeout(desiredDelay+100);
// delay 12
new Processing((v) => {
counter++;
return v;
}, (v) => {
counter++
return v;
}, function (v) {
counter++
return v;
}, desiredDelay,function (v) {
counter++
return v;
}).run('test').then((v) => {
try {
expect(counter).to.be.equal(4);
expect(v === 'test').to.be.true;
// check delay
expect(+new Date() > t + desiredDelay+1).to.be.true;
} catch (e) {
return done(e);
}
done();
})
});
it('should run one function', function (done) {
let counter = 0;
new Processing((value) => {
counter++
return value;
}).run('test').then((v) => {
try {
expect(v === 'test').to.be.true;
} catch (e) {
return done(e);
}
done()
}).catch(e => done(e));
});
it('should run no function', function (done) {
let counter = 0;
new Processing().run('test').then((v) => {
try {
expect(v === 'test').to.be.true;
} catch (e) {
return done(e);
}
done()
}).catch(e => done(e));
});
});
describe('create new instance', function () {
it('should return a Processing object', function () {
expect(new Processing()).to.be.a('object');
});
it('should return a Processing object', function () {
expect(new Processing(function () {
})).to.be.a('object');
});
it('should throw TypeError', function () {
expect(() => new Processing(true)).to.throw(TypeError);
});
it('should throw TypeError', function () {
expect(() => new Processing("test")).to.throw(TypeError);
});
});
});