rest-api-starter
Version:
Rest API starter kit.
54 lines (41 loc) • 1.83 kB
JavaScript
/**
* Created by svinci on 1/13/17.
*/
;
const mocha = require('mocha');
const chai = require('chai');
const describe = mocha.describe;
const it = mocha.it;
const expect = chai.expect;
const localStore = require('../app/local-store');
const Promise = require('bluebird');
describe('LocalStore', () => {
it('an error should be thrown if domain wasn\'t created before operating on the store', (done) => {
// Apparently, process.domain is not isolated between tests... so I need to destroy it before running a test that relies on it not being created on the first place.
localStore.destroy();
try {
localStore.putValue('some-key', 'some-value');
done('localStore was able to store a value although no store was created');
} catch (putError) {
try {
localStore.getValue('some-key');
done('localStore was able to retrieve a value although no store was created');
} catch (getError) {
done();
}
}
});
it('a store should be created and store values across promises', (done) => {
localStore.create(() => {
localStore.putValue('some-key', 'some-value');
const firstPromise = new Promise((resolve) => resolve())
.then(() => expect(localStore.getValue('some-key')).to.equal('some-value'));
const secondPromise = new Promise((resolve, reject) => reject())
.catch(() => expect(localStore.getValue('some-key')).to.equal('some-value'));
Promise.all([firstPromise, secondPromise])
.then(() => expect(localStore.getValue('some-key')).to.equal('some-value'))
.then(() => done())
.catch((err) => done(err));
});
});
});