From 63b04210ab43da8f1c72626374932fe6025f91d2 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 15 Nov 2018 12:51:08 +0100 Subject: [PATCH] Allow tolerance to be passed to the render function --- rendering/cases/single-layer/main.js | 2 +- rendering/cases/text-style/expected.png | Bin 8317 -> 7593 bytes rendering/cases/text-style/main.js | 2 +- rendering/test.js | 15 ++++++++------- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/rendering/cases/single-layer/main.js b/rendering/cases/single-layer/main.js index cd9d141113..c1fcec8fe5 100644 --- a/rendering/cases/single-layer/main.js +++ b/rendering/cases/single-layer/main.js @@ -18,4 +18,4 @@ new Map({ }) }); -render('A single layer with a XZY source'); +render({message: 'A single layer with a XZY source'}); diff --git a/rendering/cases/text-style/expected.png b/rendering/cases/text-style/expected.png index 1d7e586f5afd81886d5bc281b904de2af790908f..e2eade50786f83518b8c5e3f55a7b57f05eda048 100644 GIT binary patch literal 7593 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 { - handleRender = (message) => { + handleRender = (config) => { handleRender = null; - resolve(message); + resolve(config || {}); }; }); options.log.debug('navigating', entry); await page.goto(`http://${options.host}:${options.port}${getHref(entry)}`, {waitUntil: 'networkidle0'}); - const message = await renderCalled; + const config = await renderCalled; options.log.debug('screenshot', entry); await page.screenshot({path: getActualScreenshotPath(entry)}); - return message; + return config; } async function touch(filepath) { @@ -182,8 +182,9 @@ async function copyActualToExpected(entry) { async function renderEach(page, entries, options) { let fail = false; for (const entry of entries) { - let message = await renderPage(page, entry, options); - message = message !== undefined ? message : entry; + const config = await renderPage(page, entry, options); + const message = config.message !== undefined ? config.message : entry; + const tolerance = config.tolerance !== undefined ? config.tolerance : 0; if (options.fix) { await copyActualToExpected(entry); continue; @@ -194,7 +195,7 @@ async function renderEach(page, entries, options) { fail = true; continue; } - if (mismatch > 0) { + if (mismatch > tolerance) { options.log.error(`checking '${message}': mismatch ${mismatch.toFixed(3)}`); fail = true; } else {