Skip to content

Commit 774ecd1

Browse files
authored
[TASK] fix relative paths for Mochawesome context screenshots (#97)
* [TASK] fix relative paths for Mochawesome context screenshots * [TASK] improve relative path generation for cases where report is not in default folder * [TASK] switch to Path.relative * [TASK] add more pessimistic check for undefined options * [TASK] resolveRelativePath should not be public
1 parent 7a04f9c commit 774ecd1

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

Diff for: index.js

+21-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const getDirName = require('path').dirname;
66
const AWS = require('aws-sdk');
77
const path = require('path');
88
const sizeOf = require('image-size');
9+
const Container = require('codeceptjs/lib/container');
910

1011
/**
1112
* Resemble.js helper class for CodeceptJS, this allows screen comparison
@@ -29,6 +30,23 @@ class ResembleHelper extends Helper {
2930
return folderPath;
3031
}
3132

33+
_resolveRelativePath(folderPath) {
34+
let absolutePathOfImage = folderPath;
35+
if (!path.isAbsolute(absolutePathOfImage)) {
36+
absolutePathOfImage = path.resolve(global.codecept_dir, absolutePathOfImage) + "/";
37+
}
38+
let absolutePathOfReportFolder = global.output_dir;
39+
// support mocha
40+
if (Container.mocha() && typeof Container.mocha().options.reporterOptions.reportDir !== 'undefined') {
41+
absolutePathOfReportFolder = Container.mocha().options.reporterOptions.reportDir;
42+
}
43+
// support mocha-multi-reporters
44+
if (Container.mocha() && typeof Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir !== 'undefined') {
45+
absolutePathOfReportFolder = Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir;
46+
}
47+
return path.relative(absolutePathOfReportFolder, absolutePathOfImage);
48+
}
49+
3250
/**
3351
* Compare Images
3452
*
@@ -170,11 +188,11 @@ class ResembleHelper extends Helper {
170188

171189
if (mocha !== undefined && misMatch >= options.tolerance) {
172190
await mocha.addMochawesomeContext("Base Image");
173-
await mocha.addMochawesomeContext(this._getBaseImagePath(baseImage, options));
191+
await mocha.addMochawesomeContext(this.resolveImagePathRelativeFromReport(this._getBaseImagePath(baseImage, options)));
174192
await mocha.addMochawesomeContext("ScreenShot Image");
175-
await mocha.addMochawesomeContext(this._getActualImagePath(baseImage));
193+
await mocha.addMochawesomeContext(this.resolveImagePathRelativeFromReport(this._getActualImagePath(baseImage)));
176194
await mocha.addMochawesomeContext("Diff Image");
177-
await mocha.addMochawesomeContext(this._getDiffImagePath(baseImage));
195+
await mocha.addMochawesomeContext(this.resolveImagePathRelativeFromReport(this._getDiffImagePath(baseImage)));
178196
}
179197
}
180198

0 commit comments

Comments
 (0)