Skip to content

Commit 7cb8b2e

Browse files
committed
refactor: add specs for buildArtifacts
1 parent dd7ceb2 commit 7cb8b2e

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
const { expect } = require("chai");
2+
const chai = require("chai"),
3+
chaiAsPromised = require("chai-as-promised"),
4+
sinon = require('sinon'),
5+
rewire = require('rewire');
6+
7+
const fs = require('fs'),
8+
path = require('path'),
9+
request = require('request'),
10+
unzipper = require("unzipper"),
11+
decompress = require('decompress');
12+
Constants = require("../../../../bin/helpers/constants"),
13+
logger = require("../../../../bin/helpers/logger").winstonLogger,
14+
testObjects = require("../../support/fixtures/testObjects"),
15+
formatRequest = require("../../../../bin/helpers/utils").formatRequest;
16+
17+
chai.use(chaiAsPromised);
18+
logger.transports["console.info"].silent = true;
19+
20+
describe('unzipFile', () => {
21+
let unzipFile;
22+
let decompressStub;
23+
let createReadStreamStub;
24+
let unzipperStub;
25+
let loggerStub;
26+
let pathJoinStub;
27+
let Constants;
28+
29+
const filePath = '/some/path';
30+
const fileName = 'file.zip';
31+
32+
beforeEach(() => {
33+
const unzipFileModule = rewire('../../../../bin/helpers/buildArtifacts');
34+
35+
decompressStub = sinon.stub();
36+
createReadStreamStub = sinon.stub();
37+
unzipperStub = {
38+
Extract: sinon.stub(),
39+
};
40+
loggerStub = { debug: sinon.stub() };
41+
pathJoinStub = sinon.stub().returns(`${filePath}/${fileName}`);
42+
43+
Constants = {
44+
debugMessages: {
45+
BUILD_ARTIFACTS_UNZIP_FAILURE: 'Unzip failed',
46+
},
47+
};
48+
49+
// Injecting the dependencies
50+
unzipFileModule.__set__('decompress', decompressStub);
51+
unzipFileModule.__set__('fs.createReadStream', createReadStreamStub);
52+
unzipFileModule.__set__('unzipper', unzipperStub);
53+
unzipFileModule.__set__('logger', loggerStub);
54+
unzipFileModule.__set__('path.join', pathJoinStub);
55+
unzipFileModule.__set__('Constants', Constants);
56+
57+
unzipFile = unzipFileModule.__get__('unzipFile');
58+
});
59+
60+
it('should successfully unzip using decompress', async () => {
61+
decompressStub.resolves();
62+
63+
await unzipFile(filePath, fileName);
64+
65+
expect(decompressStub.calledWith(`${filePath}/${fileName}`, filePath)).to.be.true;
66+
});
67+
68+
});

0 commit comments

Comments
 (0)