Skip to content

Commit c955237

Browse files
committed
Add tests and syntax fix
1 parent 5f5e845 commit c955237

File tree

2 files changed

+74
-12
lines changed

2 files changed

+74
-12
lines changed

bin/helpers/archiver.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ const fs = require("fs");
33

44
const archiver = require("archiver"),
55
Constants = require('../helpers/constants'),
6-
logger = require("./logger").winstonLogger;
6+
logger = require("./logger").winstonLogger,
7+
utils = require('../helpers/utils');
78

89
const archiveSpecs = (runSettings, filePath, excludeFiles) => {
910
return new Promise(function (resolve, reject) {
@@ -37,18 +38,8 @@ const archiveSpecs = (runSettings, filePath, excludeFiles) => {
3738

3839
archive.pipe(output);
3940

40-
let ignoreFiles = Constants.filesToIgnoreWhileUploading;
41-
42-
// exclude files asked by the user
43-
// args will take precedence over config file
44-
if (!Utils.isUndefined(excludeFiles)) {
45-
ignoreFiles = ignoreFile.concat(Utils.fixCommaSeparatedString(excludeFiles).split(','));
46-
} else if (!Utils.isUndefined(runSettings.exclude)) {
47-
ignoreFiles = ignoreFile.concat(excludeFiles);
48-
}
49-
5041
Constants.allowedFileTypes.forEach(fileType => {
51-
archive.glob(`**/*.${fileType}`, { cwd: cypressFolderPath, matchBase: true, ignore: ignoreFiles });
42+
archive.glob(`**/*.${fileType}`, { cwd: cypressFolderPath, matchBase: true, ignore: getFilesToIgnore(runSettings, excludeFiles) });
5243
});
5344

5445
let packageJSON = {};
@@ -70,4 +61,18 @@ const archiveSpecs = (runSettings, filePath, excludeFiles) => {
7061
});
7162
}
7263

64+
const getFilesToIgnore = (runSettings, excludeFiles) => {
65+
let ignoreFiles = Constants.filesToIgnoreWhileUploading;
66+
67+
// exclude files asked by the user
68+
// args will take precedence over config file
69+
if (!utils.isUndefined(excludeFiles)) {
70+
ignoreFiles = ignoreFiles.concat(utils.fixCommaSeparatedString(excludeFiles).split(','));
71+
} else if (!utils.isUndefined(runSettings.exclude) && runSettings.exclude.length) {
72+
ignoreFiles = ignoreFiles.concat(runSettings.exclude);
73+
}
74+
75+
return ignoreFiles;
76+
}
77+
7378
exports.archive = archiveSpecs

test/unit/bin/helpers/archiver.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
const chai = require("chai"),
2+
rewire = require("rewire"),
3+
chaiAsPromised = require("chai-as-promised");
4+
5+
const utils = require("../../../../bin/helpers/utils"),
6+
Constants = require("../../../../bin/helpers/constants"),
7+
logger = require("../../../../bin/helpers/logger").winstonLogger;
8+
9+
chai.use(chaiAsPromised);
10+
logger.transports["console.info"].silent = true;
11+
12+
const archiver = rewire("../../../../bin/helpers/archiver");
13+
14+
_getFilesToIgnore = archiver.__get__("getFilesToIgnore");
15+
16+
describe("archiver.js", () => {
17+
18+
describe("getFilesToIgnore", () => {
19+
it("no args, no exclude in runSettings", () => {
20+
chai.expect(_getFilesToIgnore({}, undefined)).to.be.eql(Constants.filesToIgnoreWhileUploading);
21+
});
22+
23+
it("args passed, no exclude in runSettings", () => {
24+
let excludeFiles = "file1.js, file2.json";
25+
let argsToArray = utils.fixCommaSeparatedString(excludeFiles).split(',');
26+
chai.expect(_getFilesToIgnore({}, excludeFiles)).to.be.eql(Constants.filesToIgnoreWhileUploading.concat(argsToArray));
27+
28+
excludeFiles = "file1.js,file2.json";
29+
argsToArray = utils.fixCommaSeparatedString(excludeFiles).split(',');
30+
chai.expect(_getFilesToIgnore({}, excludeFiles)).to.be.eql(Constants.filesToIgnoreWhileUploading.concat(argsToArray));
31+
32+
excludeFiles = " file1.js , file2.json ";
33+
argsToArray = utils.fixCommaSeparatedString(excludeFiles).split(',');
34+
chai.expect(_getFilesToIgnore({}, excludeFiles)).to.be.eql(Constants.filesToIgnoreWhileUploading.concat(argsToArray));
35+
});
36+
37+
it("args passed, exclude added in runSettings", () => {
38+
// args preceed over config file
39+
let excludeFiles = "file1.js, file2.json ";
40+
let argsToArray = utils.fixCommaSeparatedString(excludeFiles).split(',');
41+
42+
let runSettings = { exclude: [] };
43+
chai.expect(_getFilesToIgnore(runSettings, excludeFiles)).to.be.eql(Constants.filesToIgnoreWhileUploading.concat(argsToArray));
44+
45+
runSettings = { exclude: ["sample1.js", "sample2.json"] };
46+
chai.expect(_getFilesToIgnore(runSettings, excludeFiles)).to.be.eql(Constants.filesToIgnoreWhileUploading.concat(argsToArray));
47+
});
48+
49+
it("no args, exclude added in runSettings", () => {
50+
let runSettings = { exclude: [] };
51+
chai.expect(_getFilesToIgnore(runSettings, undefined)).to.be.eql(Constants.filesToIgnoreWhileUploading);
52+
53+
runSettings = { exclude: ["sample1.js", "sample2.json"] };
54+
chai.expect(_getFilesToIgnore(runSettings, undefined)).to.be.eql(Constants.filesToIgnoreWhileUploading.concat(runSettings.exclude));
55+
});
56+
});
57+
});

0 commit comments

Comments
 (0)