From 4ba8b54ff19844d4d1a662d9319928893e9fe2c1 Mon Sep 17 00:00:00 2001 From: "J. Peter M. Schuler" Date: Tue, 14 Sep 2021 13:46:23 +0200 Subject: [PATCH 1/5] [TASK] fix relative paths for Mochawesome context screenshots --- index.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 89da5dd..9d03643 100644 --- a/index.js +++ b/index.js @@ -29,6 +29,15 @@ class ResembleHelper extends Helper { return folderPath; } + resolveRelativePath(folderPath) { + let absolutePath = folderPath; + if (!path.isAbsolute(folderPath)) { + absolutePath = path.resolve(global.codecept_dir, folderPath) + "/"; + } + let relativePath = absolutePath.replace(global.output_dir+'/','./'); + return relativePath; + } + /** * Compare Images * @@ -170,11 +179,11 @@ class ResembleHelper extends Helper { if (mocha !== undefined && misMatch >= options.tolerance) { await mocha.addMochawesomeContext("Base Image"); - await mocha.addMochawesomeContext(this._getBaseImagePath(baseImage, options)); + await mocha.addMochawesomeContext(this.resolveRelativePath(this._getBaseImagePath(baseImage, options))); await mocha.addMochawesomeContext("ScreenShot Image"); - await mocha.addMochawesomeContext(this._getActualImagePath(baseImage)); + await mocha.addMochawesomeContext(this.resolveRelativePath(this._getActualImagePath(baseImage))); await mocha.addMochawesomeContext("Diff Image"); - await mocha.addMochawesomeContext(this._getDiffImagePath(baseImage)); + await mocha.addMochawesomeContext(this.resolveRelativePath(this._getDiffImagePath(baseImage))); } } From 5a26ff4df252498eb91b9dced17db25b9dc0487d Mon Sep 17 00:00:00 2001 From: "J. Peter M. Schuler" Date: Wed, 15 Sep 2021 16:14:52 +0200 Subject: [PATCH 2/5] [TASK] improve relative path generation for cases where report is not in default folder --- index.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 9d03643..a6e3205 100644 --- a/index.js +++ b/index.js @@ -6,6 +6,7 @@ const getDirName = require('path').dirname; const AWS = require('aws-sdk'); const path = require('path'); const sizeOf = require('image-size'); +const Container = require('codeceptjs/lib/container'); /** * Resemble.js helper class for CodeceptJS, this allows screen comparison @@ -30,12 +31,15 @@ class ResembleHelper extends Helper { } resolveRelativePath(folderPath) { - let absolutePath = folderPath; - if (!path.isAbsolute(folderPath)) { - absolutePath = path.resolve(global.codecept_dir, folderPath) + "/"; + let absolutePathOfImage = folderPath; + if (!path.isAbsolute(absolutePathOfImage)) { + absolutePathOfImage = path.resolve(global.codecept_dir, absolutePathOfImage) + "/"; + } + let absolutePathOfReportFolder = this.resolvePath(Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir ? Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir : global.output_dir); + if (absolutePathOfReportFolder.substr(-1) != '/') { + absolutePathOfReportFolder = absolutePathOfReportFolder + '/'; } - let relativePath = absolutePath.replace(global.output_dir+'/','./'); - return relativePath; + return absolutePathOfImage.replace(absolutePathOfReportFolder,''); } /** From f648f37cf643bf4e193b2267151f4d94dfcf2621 Mon Sep 17 00:00:00 2001 From: "J. Peter M. Schuler" Date: Wed, 15 Sep 2021 17:43:27 +0200 Subject: [PATCH 3/5] [TASK] switch to Path.relative --- index.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index a6e3205..3a50ba6 100644 --- a/index.js +++ b/index.js @@ -30,16 +30,21 @@ class ResembleHelper extends Helper { return folderPath; } - resolveRelativePath(folderPath) { + resolveImagePathRelativeFromReport(folderPath) { let absolutePathOfImage = folderPath; if (!path.isAbsolute(absolutePathOfImage)) { absolutePathOfImage = path.resolve(global.codecept_dir, absolutePathOfImage) + "/"; } - let absolutePathOfReportFolder = this.resolvePath(Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir ? Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir : global.output_dir); - if (absolutePathOfReportFolder.substr(-1) != '/') { - absolutePathOfReportFolder = absolutePathOfReportFolder + '/'; + let absolutePathOfReportFolder = global.output_dir; + // support mocha + if (Container.mocha() && Container.mocha().options.reporterOptions.reportDir) { + absolutePathOfReportFolder = Container.mocha().options.reporterOptions.reportDir; } - return absolutePathOfImage.replace(absolutePathOfReportFolder,''); + // support mocha-multi-reporters + if (Container.mocha() && Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir) { + absolutePathOfReportFolder = Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir; + } + return path.relative(absolutePathOfReportFolder,absolutePathOfImage); } /** @@ -183,11 +188,11 @@ class ResembleHelper extends Helper { if (mocha !== undefined && misMatch >= options.tolerance) { await mocha.addMochawesomeContext("Base Image"); - await mocha.addMochawesomeContext(this.resolveRelativePath(this._getBaseImagePath(baseImage, options))); + await mocha.addMochawesomeContext(this.resolveImagePathRelativeFromReport(this._getBaseImagePath(baseImage, options))); await mocha.addMochawesomeContext("ScreenShot Image"); - await mocha.addMochawesomeContext(this.resolveRelativePath(this._getActualImagePath(baseImage))); + await mocha.addMochawesomeContext(this.resolveImagePathRelativeFromReport(this._getActualImagePath(baseImage))); await mocha.addMochawesomeContext("Diff Image"); - await mocha.addMochawesomeContext(this.resolveRelativePath(this._getDiffImagePath(baseImage))); + await mocha.addMochawesomeContext(this.resolveImagePathRelativeFromReport(this._getDiffImagePath(baseImage))); } } From e8466e61e50ac9e40201d3f95fd22ffcfa28c166 Mon Sep 17 00:00:00 2001 From: "J. Peter M. Schuler" Date: Mon, 4 Oct 2021 10:01:08 +0200 Subject: [PATCH 4/5] [TASK] add more pessimistic check for undefined options --- index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 3a50ba6..cd73ee8 100644 --- a/index.js +++ b/index.js @@ -30,23 +30,23 @@ class ResembleHelper extends Helper { return folderPath; } - resolveImagePathRelativeFromReport(folderPath) { + resolveRelativePath(folderPath) { let absolutePathOfImage = folderPath; if (!path.isAbsolute(absolutePathOfImage)) { absolutePathOfImage = path.resolve(global.codecept_dir, absolutePathOfImage) + "/"; } let absolutePathOfReportFolder = global.output_dir; // support mocha - if (Container.mocha() && Container.mocha().options.reporterOptions.reportDir) { + if (Container.mocha() && typeof Container.mocha().options.reporterOptions.reportDir !== 'undefined') { absolutePathOfReportFolder = Container.mocha().options.reporterOptions.reportDir; } // support mocha-multi-reporters - if (Container.mocha() && Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir) { + if (Container.mocha() && typeof Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir !== 'undefined') { absolutePathOfReportFolder = Container.mocha().options.reporterOptions.mochawesomeReporterOptions.reportDir; } - return path.relative(absolutePathOfReportFolder,absolutePathOfImage); + return path.relative(absolutePathOfReportFolder, absolutePathOfImage); } - + /** * Compare Images * From 277b1c6283c15cf65de17cd948424484d4ec70df Mon Sep 17 00:00:00 2001 From: "J. Peter M. Schuler" Date: Thu, 28 Oct 2021 09:31:41 +0200 Subject: [PATCH 5/5] [TASK] resolveRelativePath should not be public --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index cd73ee8..b67467a 100644 --- a/index.js +++ b/index.js @@ -30,7 +30,7 @@ class ResembleHelper extends Helper { return folderPath; } - resolveRelativePath(folderPath) { + _resolveRelativePath(folderPath) { let absolutePathOfImage = folderPath; if (!path.isAbsolute(absolutePathOfImage)) { absolutePathOfImage = path.resolve(global.codecept_dir, absolutePathOfImage) + "/"; @@ -46,7 +46,7 @@ class ResembleHelper extends Helper { } return path.relative(absolutePathOfReportFolder, absolutePathOfImage); } - + /** * Compare Images *