UNPKG

@riturajgc/upload-manager-service

Version:

Upload manager service for bitnudge

72 lines (59 loc) 2.92 kB
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") }); }) });