From 53f9e56982d976e84bf00835c8b68cbb1abb8588 Mon Sep 17 00:00:00 2001 From: Danny Gleckler Date: Mon, 16 Sep 2024 16:36:34 -0400 Subject: [PATCH] Revert element-different failure files --- test/browser/element.vdiff.js | 8 ++++++-- test/browser/vdiff.config.js | 26 ++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/test/browser/element.vdiff.js b/test/browser/element.vdiff.js index f4a271af..9bee364a 100644 --- a/test/browser/element.vdiff.js +++ b/test/browser/element.vdiff.js @@ -222,8 +222,11 @@ describe('element-different', () => { } catch (ex) { fail = true; } + await expect(fail, 'current and golden images to be different').equal(!isGolden); - expect(fail, 'current and golden images to be different').equal(!isGolden); + if (!isGolden) { + await executeServerCommand('vdiff-revert-golden-file', { testCategory: 'element-different', fileName: `${name}.png` }); + } }); }); @@ -237,7 +240,8 @@ describe('element-different', () => { } if (!isGolden) { - expect(fail, 'current and golden images to have different byte size').equal(true); + await expect(fail, 'current and golden images to have different byte size').equal(true); + await executeServerCommand('vdiff-revert-golden-file', { testCategory: 'element-different', fileName: 'byte-size.png' }); } else { // Modify golden file to be different byte size than what the test will generate await executeServerCommand('vdiff-modify-golden-file', { testCategory: 'element-different', fileName: 'byte-size.png' }); diff --git a/test/browser/vdiff.config.js b/test/browser/vdiff.config.js index f5ca024e..fa804dd4 100644 --- a/test/browser/vdiff.config.js +++ b/test/browser/vdiff.config.js @@ -1,6 +1,6 @@ import { argv, env } from 'node:process'; import { dirname, join } from 'node:path'; -import { readFile, writeFile } from 'node:fs/promises'; +import { copyFile, readFile, writeFile } from 'node:fs/promises'; import { PATHS } from '../../src/server/paths.js'; import { PNG } from 'pngjs'; @@ -40,7 +40,29 @@ function modifyGolden() { }; } +function revertGolden() { + let rootDir; + return { + name: 'vdiff-revert-golden-file', + async serverStart({ config }) { + rootDir = config.rootDir; + }, + async executeCommand({ command, payload, session }) { + if (command !== 'vdiff-revert-golden-file') return; + const browser = session.browser.name.toLowerCase(); + const testPath = dirname(session.testFile).replace(rootDir, ''); + const filePath = join(rootDir, PATHS.VDIFF_ROOT, testPath, payload.testCategory); + + const failedPath = join(filePath, PATHS.FAIL, browser, payload.fileName); + const goldenPath = join(filePath, PATHS.GOLDEN, browser, payload.fileName); + + await copyFile(goldenPath, failedPath, 2); + return true; + } + }; +} + export default { pattern: () => 'test/browser/**/*.vdiff.js', - plugins: [getGoldenFlag(), modifyGolden()] + plugins: [getGoldenFlag(), modifyGolden(), revertGolden()] };