ADD unzip support

This commit is contained in:
RecuencoJones
2020-03-21 11:34:19 +01:00
parent ea4cba1c34
commit 7e5607f443
6 changed files with 86 additions and 4 deletions

View File

@@ -0,0 +1,50 @@
const { EventEmitter } = require('events');
const unzipper = require('unzipper');
const unzip = require('../../src/assets/unzip');
jest.mock('unzipper', () => ({
Extract: jest.fn()
}));
describe('unzip()', () => {
let unzipEvents, pipe, onSuccess, onError;
beforeEach(() => {
unzipEvents = new EventEmitter();
pipe = jest.fn();
onSuccess = jest.fn();
onError = jest.fn();
pipe.mockReturnValueOnce({ pipe });
unzipper.Extract.mockReturnValueOnce(unzipEvents);
});
it('should download resource and unzip to given binPath', () => {
unzip({ opts: { binPath: './bin', binName: 'command' }, req: { pipe }, onSuccess, onError });
expect(unzipper.Extract).toHaveBeenCalledWith({ path: './bin' });
});
it('should call onSuccess on unzip close', () => {
unzip({ opts: { binPath: './bin', binName: 'command' }, req: { pipe }, onSuccess, onError });
unzipEvents.emit('close');
expect(onSuccess).toHaveBeenCalled();
});
it('should call onError with error on unzip error', () => {
const error = new Error();
unzip({ opts: { binPath: './bin', binName: 'command' }, req: { pipe }, onSuccess, onError });
unzipEvents.emit('error', error);
expect(onError).toHaveBeenCalledWith(error);
});
});