From dc34836c929c058041fafa7af9111a7e4fd75eb0 Mon Sep 17 00:00:00 2001 From: Colin Rotherham Date: Thu, 22 Sep 2022 21:40:30 +0100 Subject: [PATCH] =?UTF-8?q?Only=20take=20=E2=80=9CJavaScript=20disabled?= =?UTF-8?q?=E2=80=9D=20screenshots=20for=20components=20with=20JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/govuk/components/all.test.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/govuk/components/all.test.js b/src/govuk/components/all.test.js index be2a0959c5..9b5dd72e0a 100644 --- a/src/govuk/components/all.test.js +++ b/src/govuk/components/all.test.js @@ -5,7 +5,7 @@ const { fetch } = require('undici') const { WebSocket } = require('ws') -const { allComponents } = require('../../../lib/file-helper') +const { allComponents, getFiles } = require('../../../lib/file-helper') const configPaths = require('../../../config/paths.js') @@ -13,6 +13,21 @@ const PORT = configPaths.ports.test const baseUrl = 'http://localhost:' + PORT describe('Components', () => { + let componentsJavaScript + + beforeAll(async () => { + componentsJavaScript = allComponents + + // Get file listing per component + .map((component) => [component, getFiles(`${configPaths.components}${component}`)]) + + // Filter for "JavaScript enabled" via `${component}.mjs` + .filter(([component, entries]) => entries.includes(`${component}.mjs`)) + + // Component names only + .map(([component]) => component) + }) + describe('Generate screenshots for Percy visual regression', () => { let percySnapshot @@ -26,8 +41,8 @@ describe('Components', () => { it('with JavaScript disabled', async () => { await page.setJavaScriptEnabled(false) - // Screenshot each component - for (const component of allComponents) { + // Screenshot only components with JavaScript support + for (const component of componentsJavaScript) { await page.goto(baseUrl + '/components/' + component + '/preview', { waitUntil: 'load' }) await percySnapshot(page, 'no-js: ' + component) }