@eplata/memory-storage-data
Version:
Modulo que nos permitirá obtener data en memoria
89 lines (61 loc) • 3 kB
JavaScript
const chai = require('chai');
const proxyquire = require('proxyquire').noCallThru();
const sinon = require('sinon');
const faker = require('faker');
const chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
const expect = chai.expect;
describe('Memory StorageDataModule::CRUD - Pruebas unitarias de la funcionalidad removeData.', () => {
describe('Case Success - remove fields success', () => {
const keyDataMock = faker.random.word();
const dataMock = { test: faker.random.word() };
const isObjectMock = sinon.stub().returns(true);
const getDataMock = sinon.stub().resolves(JSON.stringify({}));
const saveDataMock = sinon.stub().resolves(dataMock);
const existsMock = sinon.stub().resolves();
const infoMock = sinon.spy();
const errorMock = sinon.spy();
const removeDataFunciton = proxyquire('./../../src/memory-storage/object/remove-data.js', {
'../../helpers': { isObject: isObjectMock },
'../../db-queries': { exists: existsMock, getData: getDataMock, updateData: saveDataMock },
'../../libs/logger': { info: infoMock, error: errorMock }
});
const responsePromise = removeDataFunciton(keyDataMock, ['a']);
it(`Should solve successful.`, () => {
expect(responsePromise).be.fulfilled;
});
it(`should called db.getData() once.`, () => {
expect(getDataMock.calledOnce).to.be.true;
});
it(`should called saveData() once.`, () => {
expect(saveDataMock.calledOnce).to.be.true;
});
it(`should not called logger.error() never.`, () => {
expect(errorMock.calledOnce).to.be.false;
});
});
describe('Case Exception - id not exists', () => {
const keyDataMock = faker.random.word();
const dataMock = { test: faker.random.word() };
const isObjectMock = sinon.stub().returns(true);
const getDataMock = sinon.stub().resolves(JSON.stringify({}));
const saveDataMock = sinon.stub().resolves(dataMock);
const existsMock = sinon.stub().rejects();
const infoMock = sinon.spy();
const errorMock = sinon.spy();
const removeDataFunciton = proxyquire('./../../src/memory-storage/object/remove-data.js', {
'../../helpers': { isObject: isObjectMock },
'../../db-queries': { exists: existsMock, getData: getDataMock, updateData: saveDataMock },
'../../libs/logger': { info: infoMock, error: errorMock }
});
const responsePromise = removeDataFunciton(keyDataMock, ['a']);
it('Promise should NOT be resolved', async () => {
expect(responsePromise).to.eventually
.be.rejectedWith();
});
it(`should Not called db.saveData() never.`, () => {
expect(saveDataMock.called).to.be.false;
});
responsePromise.catch(err => err);
});
});