Skip to content

Commit dce5caa

Browse files
authored
Merge pull request #12 from browserstack/CYP_97_bug_in_zipping_directory
[CYP-97] Fix for bug in zipping directory
2 parents 53c2954 + a3c076d commit dce5caa

File tree

3 files changed

+17
-49
lines changed

3 files changed

+17
-49
lines changed

bin/commands/runs.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@ module.exports = function run(args) {
1212
return runCypress(args);
1313
}
1414

15+
function deleteZip() {
16+
fs.unlink(config.fileName, function (err) {
17+
if(err) {
18+
logger.log(Constants.userMessages.ZIP_DELETE_FAILED);
19+
} else {
20+
logger.log(Constants.userMessages.ZIP_DELETED);
21+
}
22+
});
23+
}
24+
1525
function runCypress(args) {
1626
let bsConfigPath = process.cwd() + args.cf;
1727
logger.log(`Reading config from ${args.cf}`);
@@ -30,25 +40,19 @@ function runCypress(args) {
3040
}).catch(function (err) {
3141
// Build creation failed
3242
logger.error(Constants.userMessages.BUILD_FAILED)
33-
}).finally(function() {
34-
// Delete zip file from local storage
35-
fs.unlink(config.fileName, function (err) {
36-
if(err) {
37-
logger.log(Constants.userMessages.ZIP_DELETE_FAILED);
38-
} else {
39-
logger.log(Constants.userMessages.ZIP_DELETED);
40-
}
41-
});
4243
});
4344
}).catch(function (err) {
4445
// Zip Upload failed
4546
logger.error(err)
4647
logger.error(Constants.userMessages.ZIP_UPLOAD_FAILED)
48+
}).finally(function () {
49+
deleteZip();
4750
});
4851
}).catch(function (err) {
4952
// Zipping failed
5053
logger.error(err)
5154
logger.error(Constants.userMessages.FAILED_TO_ZIP)
55+
deleteZip();
5256
});
5357
}).catch(function (err) {
5458
// browerstack.json is not valid

bin/helpers/archiver.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ const archiveSpecs = (runSettings, filePath) => {
3535

3636
archive.pipe(output);
3737

38-
archive.directory(cypressFolderPath, false);
38+
let allowedFileTypes = [ 'js', 'json', 'txt', 'ts' ]
39+
allowedFileTypes.forEach(fileType => {
40+
archive.glob(`**/*.${fileType}`, { cwd: cypressFolderPath, matchBase: true, ignore: 'node_modules/**' });
41+
});
3942

4043
archive.finalize();
4144
});

bin/helpers/capabilityHelper.js

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -70,49 +70,10 @@ const validate = (bsConfig) => {
7070

7171
if(!bsConfig.run_settings.cypress_proj_dir) reject(Constants.validationMessages.EMPTY_SPEC_FILES);
7272

73-
if(invalidFiles(bsConfig.run_settings.cypress_proj_dir)) reject(Constants.validationMessages.INVALID_EXTENSION);
74-
7573
resolve(Constants.validationMessages.VALIDATED);
7674
});
7775
}
7876

79-
const invalidFiles = (testFolder)=> {
80-
var options = {
81-
dot: true
82-
}
83-
files = glob.sync(testFolder + "/**/*", options)
84-
var invalidFiles = []
85-
files.forEach(file => {
86-
if(isHiddenPath(file) || invalidExtension(file)){
87-
invalidFiles.push(file)
88-
}
89-
});
90-
91-
if(invalidFiles.length > 0) {
92-
logger.log("These files are not valid: " + invalidFiles.toString())
93-
return true
94-
} else {
95-
return false
96-
}
97-
}
98-
99-
var isHiddenPath = (path) => {
100-
return (/(^|\/)\.[^\/\.]/g).test(path);
101-
};
102-
103-
var invalidExtension = (file) => {
104-
let ext = file.split('.').pop();
105-
if (isFile(file) && !["js", "json", "txt"].includes(ext)) {
106-
return true;
107-
}
108-
109-
return false;
110-
}
111-
112-
var isFile = (path) => {
113-
return path.split('/').pop().indexOf('.') > -1;
114-
}
115-
11677
module.exports = {
11778
caps,
11879
validate

0 commit comments

Comments
 (0)