@riturajgc/upload-manager-service
Version:
Upload manager service for bitnudge
72 lines (59 loc) • 2.92 kB
JavaScript
const { expect } = require('chai');
const sinon = require('sinon');
var fsMock = {
readFileAsync: function () {
return "check"
},
statAsync:function(){
return {size:"1234"};
}
};
const rewire = require('rewire');
const functionsStub = rewire("./../../src/lib/storage/Storage.js");
const { Storage } = require('./../../index.js');
const App = new Storage(1);
App.setMongoose({ dbURL: 'mongodb://localhost/bitnudge-upload-document-test-string' });
const utils = require('./../../src/functions/utils.js');
describe.only('Adapter', () => {
describe('save', () => {
it('case-1: should exist save', async () => {
expect(App.adapter.save).to.be.exist;
});
it('case-2: should save the data if all the required input parameter is correct', async () => {
functionsStub.__set__("fs", fsMock);
const createHashStub = sinon.stub(utils,"createHash").resolves({
status:true,
data:"123456789"
});
const createThumbnailStub = sinon.stub(utils,"createThumbnail").resolves({
status:true,
data:"check"
});
const UploadManagerData = sinon.stub(App.adapter.type.model,'create').resolves({
n:1
});
const isValid = sinon.stub(utils,"isValidImage").returns({status:true});
const result = await App.adapter.save({ userId:"5b4c424d669a91104ad6eb7e", filePath:"check", fileName:"check", device:"web",
isThumbnailRequired: true ,thumbnailSize: 10, creationFrom: "form" });
createHashStub.restore();
createThumbnailStub.restore();
UploadManagerData.restore();
isValid.restore();
expect(result.status).equal(true);
expect(createHashStub.calledOnce).to.be.true;
expect(createThumbnailStub.calledOnce).to.be.true;
expect(UploadManagerData.calledOnce).to.be.true;
expect(isValid.calledOnce).to.be.true;
});
it('case-3: should return false if required paramter is not given', async () => {
const result = await App.adapter.save({ userId: null, filePath: null, fileName: null, device: null, isThumbnailRequired: null, thumbnailSize: null, creationFrom: null });
expect(result.status).to.be.false;
});
it('case-4: should return false if required parameter it not given', async () => {
const result = await App.adapter.save({ userId:"5b4c424d669a91104ad6eb7e", filePath:"check", fileName:"check", device:"web",
isThumbnailRequired: true ,thumbnailSize: 10, creationFrom: "form" });
expect(result.status).to.be.false;
expect(result.message.toString()).equal("There is some problem, please try after some time")
});
})
});