UNPKG

@eplata/memory-storage-data

Version:

Modulo que nos permitirá obtener data en memoria

89 lines (61 loc) • 3 kB
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); }); });