From cfddcdc95707f7f8162c07de0e03dfe5ab721e4d Mon Sep 17 00:00:00 2001 From: anton-kulagin Date: Wed, 25 Oct 2017 16:09:37 +0300 Subject: [PATCH 1/9] Update makeConfig.js --- core/util/makeConfig.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/util/makeConfig.js b/core/util/makeConfig.js index c8abc844f..d97b1d27f 100644 --- a/core/util/makeConfig.js +++ b/core/util/makeConfig.js @@ -40,6 +40,8 @@ function loadProjectConfig (command, options, config) { userConfig = options.config; } else if (config.backstopConfigFileName) { try { + //Remove from cache config content + + delete require.cache[require.resolve(config.backstopConfigFileName)] console.log('Loading config: ', config.backstopConfigFileName, '\n'); userConfig = require(config.backstopConfigFileName); } catch (e) { From bf307d0e42922e28c928375d50cf51f47643a3b6 Mon Sep 17 00:00:00 2001 From: anton-kulagin Date: Wed, 25 Oct 2017 16:10:05 +0300 Subject: [PATCH 2/9] Update createBitmaps.js --- core/util/createBitmaps.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/util/createBitmaps.js b/core/util/createBitmaps.js index 14433ea05..c00248af0 100644 --- a/core/util/createBitmaps.js +++ b/core/util/createBitmaps.js @@ -42,7 +42,7 @@ function decorateConfigForCapture (config, isReference) { var totalScenarioCount = configJSON.scenarios.length; var screenshotNow = new Date(); - var screenshotDateTime = screenshotNow.getFullYear() + pad(screenshotNow.getMonth() + 1) + pad(screenshotNow.getDate()) + '-' + pad(screenshotNow.getHours()) + pad(screenshotNow.getMinutes()) + pad(screenshotNow.getSeconds()); + var screenshotDateTime = screenshotNow.getFullYear() + pad(screenshotNow.getMonth() + 1) + pad(screenshotNow.getDate()); configJSON.screenshotDateTime = screenshotDateTime; configJSON.env = cloneDeep(config); From db34ff3ef5495a11d17b4e702b420dee9c165e2c Mon Sep 17 00:00:00 2001 From: anton-kulagin Date: Thu, 14 Dec 2017 11:28:48 +0200 Subject: [PATCH 3/9] junit report error While server is running junit report sore each testsuite and when write ti file there are a lot of outdated testsuite --- core/command/report.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/command/report.js b/core/command/report.js index 4e5078110..610e6e998 100644 --- a/core/command/report.js +++ b/core/command/report.js @@ -1,6 +1,5 @@ var path = require('path'); var chalk = require('chalk'); -var junitWriter = new (require('junitwriter'))(); var allSettled = require('../util/allSettled'); var fs = require('../util/fs'); @@ -58,7 +57,7 @@ function writeBrowserReport (config, reporter) { function writeJunitReport (config, reporter) { logger.log('Writing jUnit Report'); - + var junitWriter = new (require('junitwriter'))(); var testSuite = junitWriter.addTestsuite(reporter.testSuite); for (var i in reporter.tests) { From 751f7983594918f273c66ef1476af98e79a7de57 Mon Sep 17 00:00:00 2001 From: anton-kulagin Date: Fri, 19 Jan 2018 15:44:54 +0200 Subject: [PATCH 4/9] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fe3c0a6f5..9a0383234 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "dependencies": { "casperjs": "^1.1.0-beta5", "chalk": "^1.1.3", - "chromy": "0.5.5", + "chromy": "0.5.7", "fs-extra": "^0.30.0", "junitwriter": "~0.3.1", "lodash": "^4.17.4", From cb9af23c7e7bd85f91606992acfa94b429d849a4 Mon Sep 17 00:00:00 2001 From: Anton Kulagin Date: Tue, 14 Apr 2020 22:06:44 +0300 Subject: [PATCH 5/9] change name for created bitmaps --- core/util/createBitmaps.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/util/createBitmaps.js b/core/util/createBitmaps.js index 8b0d0ba36..89ff2ec67 100644 --- a/core/util/createBitmaps.js +++ b/core/util/createBitmaps.js @@ -49,7 +49,7 @@ function decorateConfigForCapture (config, isReference) { return r; } var screenshotNow = new Date(); - var screenshotDateTime = screenshotNow.getFullYear() + pad(screenshotNow.getMonth() + 1) + pad(screenshotNow.getDate()) + '-' + pad(screenshotNow.getHours()) + pad(screenshotNow.getMinutes()) + pad(screenshotNow.getSeconds()); + var screenshotDateTime = screenshotNow.getFullYear() + pad(screenshotNow.getMonth() + 1) + pad(screenshotNow.getDate()); screenshotDateTime = configJSON.dynamicTestId ? configJSON.dynamicTestId : screenshotDateTime; configJSON.screenshotDateTime = screenshotDateTime; config.screenshotDateTime = screenshotDateTime; From d6664415557e3ce69e6c07d9cc83cdafe525911f Mon Sep 17 00:00:00 2001 From: anton-kulagin Date: Sat, 18 Apr 2020 19:48:27 +0300 Subject: [PATCH 6/9] Update Dockerfile --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 5c5756525..a633a588e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,7 +9,7 @@ ENV \ RUN apt-get update && \ apt-get install -y git sudo software-properties-common -RUN sudo npm install -g --unsafe-perm=true --allow-root backstopjs@${BACKSTOPJS_VERSION} +RUN sudo npm install -g --unsafe-perm=true --allow-root git+https://github.com/anton-kulagin/BackstopJS.git@${BACKSTOPJS_VERSION} RUN wget https://dl-ssl.google.com/linux/linux_signing_key.pub && sudo apt-key add linux_signing_key.pub RUN sudo add-apt-repository "deb http://dl.google.com/linux/chrome/deb/ stable main" From 7ad45de35a67cd560515b9d7f17dfcdeb52ced7b Mon Sep 17 00:00:00 2001 From: anton-kulagin Date: Sat, 18 Apr 2020 20:18:28 +0300 Subject: [PATCH 7/9] Update Dockerfile --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index a633a588e..f74f7ed29 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,7 +9,7 @@ ENV \ RUN apt-get update && \ apt-get install -y git sudo software-properties-common -RUN sudo npm install -g --unsafe-perm=true --allow-root git+https://github.com/anton-kulagin/BackstopJS.git@${BACKSTOPJS_VERSION} +RUN sudo npm install -g --unsafe-perm=true --allow-root git+https://github.com/anton-kulagin/BackstopJS.git RUN wget https://dl-ssl.google.com/linux/linux_signing_key.pub && sudo apt-key add linux_signing_key.pub RUN sudo add-apt-repository "deb http://dl.google.com/linux/chrome/deb/ stable main" From 59baf0d9e906ebf5096f2716201e7fe408dad5d5 Mon Sep 17 00:00:00 2001 From: Anton Kulagin Date: Thu, 23 Sep 2021 23:07:58 +0300 Subject: [PATCH 8/9] updated createBitmaps --- core/util/createBitmaps.js | 71 +++++++++++++++----------------------- 1 file changed, 27 insertions(+), 44 deletions(-) diff --git a/core/util/createBitmaps.js b/core/util/createBitmaps.js index 89ff2ec67..ab3fffea3 100644 --- a/core/util/createBitmaps.js +++ b/core/util/createBitmaps.js @@ -1,20 +1,17 @@ -const Chromy = require('chromy'); -var cloneDeep = require('lodash/cloneDeep'); -var fs = require('./fs'); -var each = require('./each'); -var pMap = require('p-map'); +const cloneDeep = require('lodash/cloneDeep'); +const fs = require('./fs'); +const _ = require('lodash'); +const pMap = require('p-map'); -var runChromy = require('./runChromy'); -var runPuppet = require('./runPuppet'); +const runPuppet = require('./runPuppet'); const ensureDirectoryPath = require('./ensureDirectoryPath'); -var logger = require('./logger')('createBitmaps'); +const logger = require('./logger')('createBitmaps'); -var CONCURRENCY_DEFAULT = 10; -const CHROMY_STARTING_PORT_NUMBER = 9222; +const CONCURRENCY_DEFAULT = 10; function regexTest (string, search) { - var re = new RegExp(search); + const re = new RegExp(search); return re.test(string); } @@ -29,7 +26,7 @@ function ensureViewportLabel (config) { } function decorateConfigForCapture (config, isReference) { - var configJSON; + let configJSON; if (typeof config.args.config === 'object') { configJSON = config.args.config; @@ -39,17 +36,18 @@ function decorateConfigForCapture (config, isReference) { configJSON.scenarios = configJSON.scenarios || []; ensureViewportLabel(configJSON); - var totalScenarioCount = configJSON.scenarios.length; + const totalScenarioCount = configJSON.scenarios.length; function pad (number) { - var r = String(number); + let r = String(number); if (r.length === 1) { r = '0' + r; } return r; } - var screenshotNow = new Date(); - var screenshotDateTime = screenshotNow.getFullYear() + pad(screenshotNow.getMonth() + 1) + pad(screenshotNow.getDate()); + + const screenshotNow = new Date(); + let screenshotDateTime = screenshotDateTime = screenshotNow.getFullYear() + pad(screenshotNow.getMonth() + 1) + pad(screenshotNow.getDate()); screenshotDateTime = configJSON.dynamicTestId ? configJSON.dynamicTestId : screenshotDateTime; configJSON.screenshotDateTime = screenshotDateTime; config.screenshotDateTime = screenshotDateTime; @@ -66,9 +64,9 @@ function decorateConfigForCapture (config, isReference) { configJSON.defaultRequireSameDimensions = config.defaultRequireSameDimensions; if (config.args.filter) { - var scenarios = []; + const scenarios = []; config.args.filter.split(',').forEach(function (filteredTest) { - each(configJSON.scenarios, function (scenario) { + configJSON.scenarios.forEach(function (scenario) { if (regexTest(scenario.label, filteredTest)) { scenarios.push(scenario); } @@ -86,11 +84,8 @@ function saveViewportIndexes (viewport, index) { } function delegateScenarios (config) { - // TODO: start chromy here? Or later? maybe later because maybe changing resolutions doesn't work after starting? - // casper.start(); - - var scenarios = []; - var scenarioViews = []; + const scenarios = []; + const scenarioViews = []; config.viewports = config.viewports.map(saveViewportIndexes); @@ -104,7 +99,7 @@ function delegateScenarios (config) { } scenarios.push(scenario); - if (!config.isReference && scenario.hasOwnProperty('variants')) { + if (!config.isReference && _.has(scenario, 'variants')) { scenario.variants.forEach(function (variant) { // var variantLabelSafe = makeSafe(variant.label); variant._parent = scenario; @@ -113,9 +108,9 @@ function delegateScenarios (config) { } }); - var scenarioViewId = 0; + let scenarioViewId = 0; scenarios.forEach(function (scenario) { - var desiredViewportsForScenario = config.viewports; + let desiredViewportsForScenario = config.viewports; if (scenario.viewports && scenario.viewports.length > 0) { desiredViewportsForScenario = scenario.viewports; @@ -133,32 +128,24 @@ function delegateScenarios (config) { const asyncCaptureLimit = config.asyncCaptureLimit === 0 ? 1 : config.asyncCaptureLimit || CONCURRENCY_DEFAULT; - if (/chrom./i.test(config.engine)) { - const PORT = (config.startingPort || CHROMY_STARTING_PORT_NUMBER); - var getFreePorts = require('./getFreePorts'); - return getFreePorts(PORT, scenarioViews.length).then(freeports => { - console.log('These ports will be used:', JSON.stringify(freeports)); - scenarioViews.forEach((scenarioView, i) => { - scenarioView.assignedPort = freeports[i]; - }); - return pMap(scenarioViews, runChromy, { concurrency: asyncCaptureLimit }); - }); - } else if (config.engine.startsWith('puppet')) { + if (config.engine.startsWith('puppet')) { return pMap(scenarioViews, runPuppet, { concurrency: asyncCaptureLimit }); + } else if (/chrom./i.test(config.engine)) { + logger.error('Chromy is no longer supported in version 5+. Please use version 4.x.x for chromy support.'); } else { logger.error(`Engine "${(typeof config.engine === 'string' && config.engine) || 'undefined'}" not recognized! If you require PhantomJS or Slimer support please use backstopjs@3.8.8 or earlier.`); } } function writeCompareConfigFile (comparePairsFileName, compareConfig) { - var compareConfigJSON = JSON.stringify(compareConfig, null, 2); + const compareConfigJSON = JSON.stringify(compareConfig, null, 2); ensureDirectoryPath(comparePairsFileName); return fs.writeFile(comparePairsFileName, compareConfigJSON); } function flatMapTestPairs (rawTestPairs) { return rawTestPairs.reduce((acc, result) => { - var testPairs = result.testPairs; + let testPairs = result.testPairs; if (!testPairs) { testPairs = { diff: { @@ -195,9 +182,5 @@ module.exports = function (config, isReference) { return writeCompareConfigFile(config.tempCompareConfigFileName, result); }); - if (/chrom./i.test(config.engine)) { - promise.then(() => Chromy.cleanup()); - } - return promise; -}; +}; \ No newline at end of file From e1ade988f8400e8e3ee634142f0f03c7e96cd542 Mon Sep 17 00:00:00 2001 From: Anton Kulagin Date: Thu, 23 Sep 2021 23:16:26 +0300 Subject: [PATCH 9/9] fix for createBreadcrumb --- core/util/createBitmaps.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/util/createBitmaps.js b/core/util/createBitmaps.js index ab3fffea3..6ee1f5c41 100644 --- a/core/util/createBitmaps.js +++ b/core/util/createBitmaps.js @@ -47,7 +47,7 @@ function decorateConfigForCapture (config, isReference) { } const screenshotNow = new Date(); - let screenshotDateTime = screenshotDateTime = screenshotNow.getFullYear() + pad(screenshotNow.getMonth() + 1) + pad(screenshotNow.getDate()); + let screenshotDateTime = screenshotNow.getFullYear() + pad(screenshotNow.getMonth() + 1) + pad(screenshotNow.getDate()); screenshotDateTime = configJSON.dynamicTestId ? configJSON.dynamicTestId : screenshotDateTime; configJSON.screenshotDateTime = screenshotDateTime; config.screenshotDateTime = screenshotDateTime;