diff --git a/packages/govuk-frontend/src/govuk/components/accordion/template.test.js b/packages/govuk-frontend/src/govuk/components/accordion/template.test.js index e9ad027aee..7141287641 100644 --- a/packages/govuk-frontend/src/govuk/components/accordion/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/accordion/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Accordion', () => { diff --git a/packages/govuk-frontend/src/govuk/components/back-link/template.test.js b/packages/govuk-frontend/src/govuk/components/back-link/template.test.js index dea3068032..c1ca483bda 100644 --- a/packages/govuk-frontend/src/govuk/components/back-link/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/back-link/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('back-link component', () => { diff --git a/packages/govuk-frontend/src/govuk/components/breadcrumbs/template.test.js b/packages/govuk-frontend/src/govuk/components/breadcrumbs/template.test.js index 736f547c92..375bbdf1fa 100644 --- a/packages/govuk-frontend/src/govuk/components/breadcrumbs/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/breadcrumbs/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Breadcrumbs', () => { diff --git a/packages/govuk-frontend/src/govuk/components/button/template.test.js b/packages/govuk-frontend/src/govuk/components/button/template.test.js index 7fae03546c..ba18ec6053 100644 --- a/packages/govuk-frontend/src/govuk/components/button/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/button/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Button', () => { diff --git a/packages/govuk-frontend/src/govuk/components/character-count/template.test.js b/packages/govuk-frontend/src/govuk/components/character-count/template.test.js index a0d4233c1b..66cf6d740e 100644 --- a/packages/govuk-frontend/src/govuk/components/character-count/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/character-count/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/checkboxes/template.test.js b/packages/govuk-frontend/src/govuk/components/checkboxes/template.test.js index 7b09a06543..1de377b3eb 100644 --- a/packages/govuk-frontend/src/govuk/components/checkboxes/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/checkboxes/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/cookie-banner/template.test.js b/packages/govuk-frontend/src/govuk/components/cookie-banner/template.test.js index b660dd02b1..e7989f6f9d 100644 --- a/packages/govuk-frontend/src/govuk/components/cookie-banner/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/cookie-banner/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Cookie Banner', () => { diff --git a/packages/govuk-frontend/src/govuk/components/date-input/template.test.js b/packages/govuk-frontend/src/govuk/components/date-input/template.test.js index 50950bf718..d48dded641 100644 --- a/packages/govuk-frontend/src/govuk/components/date-input/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/date-input/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/details/template.test.js b/packages/govuk-frontend/src/govuk/components/details/template.test.js index acb03bdd4a..8e36308449 100644 --- a/packages/govuk-frontend/src/govuk/components/details/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/details/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Details', () => { diff --git a/packages/govuk-frontend/src/govuk/components/error-message/template.test.js b/packages/govuk-frontend/src/govuk/components/error-message/template.test.js index f7653dcc05..2d969ebe6f 100644 --- a/packages/govuk-frontend/src/govuk/components/error-message/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/error-message/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Error message', () => { diff --git a/packages/govuk-frontend/src/govuk/components/error-summary/template.test.js b/packages/govuk-frontend/src/govuk/components/error-summary/template.test.js index 39b17e3b2d..eb0ffdea72 100644 --- a/packages/govuk-frontend/src/govuk/components/error-summary/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/error-summary/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Error-summary', () => { diff --git a/packages/govuk-frontend/src/govuk/components/exit-this-page/template.test.js b/packages/govuk-frontend/src/govuk/components/exit-this-page/template.test.js index 7a104c571b..773247b4b0 100644 --- a/packages/govuk-frontend/src/govuk/components/exit-this-page/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/exit-this-page/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Exit this page', () => { diff --git a/packages/govuk-frontend/src/govuk/components/fieldset/template.test.js b/packages/govuk-frontend/src/govuk/components/fieldset/template.test.js index dfadcd6b8a..0426c88f76 100644 --- a/packages/govuk-frontend/src/govuk/components/fieldset/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/fieldset/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('fieldset', () => { diff --git a/packages/govuk-frontend/src/govuk/components/file-upload/template.test.js b/packages/govuk-frontend/src/govuk/components/file-upload/template.test.js index 2c50325b93..e617ca34af 100644 --- a/packages/govuk-frontend/src/govuk/components/file-upload/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/file-upload/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/footer/template.test.js b/packages/govuk-frontend/src/govuk/components/footer/template.test.js index b058a464a8..84542e7bae 100644 --- a/packages/govuk-frontend/src/govuk/components/footer/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/footer/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('footer', () => { diff --git a/packages/govuk-frontend/src/govuk/components/header/template.test.js b/packages/govuk-frontend/src/govuk/components/header/template.test.js index 414cd606ee..a7fbbf3ff5 100644 --- a/packages/govuk-frontend/src/govuk/components/header/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/header/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('header', () => { diff --git a/packages/govuk-frontend/src/govuk/components/hint/template.test.js b/packages/govuk-frontend/src/govuk/components/hint/template.test.js index fcac01cdab..419edd243d 100644 --- a/packages/govuk-frontend/src/govuk/components/hint/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/hint/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Hint', () => { diff --git a/packages/govuk-frontend/src/govuk/components/input/template.test.js b/packages/govuk-frontend/src/govuk/components/input/template.test.js index ed4c28ce4b..42b298bda7 100644 --- a/packages/govuk-frontend/src/govuk/components/input/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/input/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/inset-text/template.test.js b/packages/govuk-frontend/src/govuk/components/inset-text/template.test.js index b237171744..a3fce06aff 100644 --- a/packages/govuk-frontend/src/govuk/components/inset-text/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/inset-text/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Inset text', () => { diff --git a/packages/govuk-frontend/src/govuk/components/label/template.test.js b/packages/govuk-frontend/src/govuk/components/label/template.test.js index f0ed3c935e..fc5f2b260a 100644 --- a/packages/govuk-frontend/src/govuk/components/label/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/label/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Label', () => { diff --git a/packages/govuk-frontend/src/govuk/components/notification-banner/template.test.js b/packages/govuk-frontend/src/govuk/components/notification-banner/template.test.js index f21049cb67..ae23264115 100644 --- a/packages/govuk-frontend/src/govuk/components/notification-banner/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/notification-banner/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Notification-banner', () => { diff --git a/packages/govuk-frontend/src/govuk/components/pagination/template.test.js b/packages/govuk-frontend/src/govuk/components/pagination/template.test.js index 6e0d20ae6a..00cc924009 100644 --- a/packages/govuk-frontend/src/govuk/components/pagination/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/pagination/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Pagination', () => { diff --git a/packages/govuk-frontend/src/govuk/components/panel/template.test.js b/packages/govuk-frontend/src/govuk/components/panel/template.test.js index cc9b3b361e..c36e43faa1 100644 --- a/packages/govuk-frontend/src/govuk/components/panel/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/panel/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Panel', () => { diff --git a/packages/govuk-frontend/src/govuk/components/phase-banner/template.test.js b/packages/govuk-frontend/src/govuk/components/phase-banner/template.test.js index 92d1ce285c..30f88cb6e1 100644 --- a/packages/govuk-frontend/src/govuk/components/phase-banner/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/phase-banner/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/radios/template.test.js b/packages/govuk-frontend/src/govuk/components/radios/template.test.js index 737d1727be..865b6a0f2e 100644 --- a/packages/govuk-frontend/src/govuk/components/radios/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/radios/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/select/template.test.js b/packages/govuk-frontend/src/govuk/components/select/template.test.js index 2842145cb0..68883eab52 100644 --- a/packages/govuk-frontend/src/govuk/components/select/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/select/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/skip-link/template.test.js b/packages/govuk-frontend/src/govuk/components/skip-link/template.test.js index 045038c6cd..d096b4506f 100644 --- a/packages/govuk-frontend/src/govuk/components/skip-link/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/skip-link/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Skip link', () => { diff --git a/packages/govuk-frontend/src/govuk/components/summary-list/template.test.js b/packages/govuk-frontend/src/govuk/components/summary-list/template.test.js index 17f1866f40..98123d2d76 100644 --- a/packages/govuk-frontend/src/govuk/components/summary-list/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/summary-list/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Summary list', () => { diff --git a/packages/govuk-frontend/src/govuk/components/table/template.test.js b/packages/govuk-frontend/src/govuk/components/table/template.test.js index aaa61ad85e..35ceb093ef 100644 --- a/packages/govuk-frontend/src/govuk/components/table/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/table/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Table', () => { diff --git a/packages/govuk-frontend/src/govuk/components/tabs/template.test.js b/packages/govuk-frontend/src/govuk/components/tabs/template.test.js index 4def4cb5e6..094bcca053 100644 --- a/packages/govuk-frontend/src/govuk/components/tabs/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/tabs/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Tabs', () => { diff --git a/packages/govuk-frontend/src/govuk/components/tag/template.test.js b/packages/govuk-frontend/src/govuk/components/tag/template.test.js index 3e1c7e4035..a734ff8111 100644 --- a/packages/govuk-frontend/src/govuk/components/tag/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/tag/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Tag', () => { diff --git a/packages/govuk-frontend/src/govuk/components/task-list/template.test.js b/packages/govuk-frontend/src/govuk/components/task-list/template.test.js index 115f135eb1..e3f00a3fa0 100644 --- a/packages/govuk-frontend/src/govuk/components/task-list/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/task-list/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Task List', () => { diff --git a/packages/govuk-frontend/src/govuk/components/textarea/template.test.js b/packages/govuk-frontend/src/govuk/components/textarea/template.test.js index a85579ffc2..dc28bfadf9 100644 --- a/packages/govuk-frontend/src/govuk/components/textarea/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/textarea/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { htmlWithClassName } = require('@govuk-frontend/helpers/tests') const { getExamples } = require('@govuk-frontend/lib/components') diff --git a/packages/govuk-frontend/src/govuk/components/warning-text/template.test.js b/packages/govuk-frontend/src/govuk/components/warning-text/template.test.js index 00f5e77b95..4c796361e3 100644 --- a/packages/govuk-frontend/src/govuk/components/warning-text/template.test.js +++ b/packages/govuk-frontend/src/govuk/components/warning-text/template.test.js @@ -1,4 +1,4 @@ -const { render } = require('@govuk-frontend/helpers/nunjucks') +const { render } = require('@govuk-frontend/helpers/components') const { getExamples } = require('@govuk-frontend/lib/components') describe('Warning text', () => { diff --git a/shared/helpers/components.js b/shared/helpers/components.js new file mode 100644 index 0000000000..9545da41cc --- /dev/null +++ b/shared/helpers/components.js @@ -0,0 +1,21 @@ +const components = require('@govuk-frontend/lib/components') +const cheerio = require('cheerio') + +/** + * Render component HTML into cheerio + * + * @param {string} componentName - Component name + * @param {MacroRenderOptions} [options] - Nunjucks macro render options + * @returns {import('cheerio').CheerioAPI} HTML rendered by the macro + */ +function render(componentName, options) { + return cheerio.load(components.render(componentName, options)) +} + +module.exports = { + render +} + +/** + * @typedef {import('@govuk-frontend/lib/nunjucks').MacroRenderOptions} MacroRenderOptions + */ diff --git a/shared/helpers/index.js b/shared/helpers/index.js index 1b7527e141..d22e3d9962 100644 --- a/shared/helpers/index.js +++ b/shared/helpers/index.js @@ -1,3 +1,4 @@ +const components = require('./components') const nunjucks = require('./nunjucks') const puppeteer = require('./puppeteer') const tests = require('./tests') @@ -6,6 +7,7 @@ const tests = require('./tests') * Helpers */ module.exports = { + components, nunjucks, puppeteer, tests diff --git a/shared/helpers/nunjucks.js b/shared/helpers/nunjucks.js index f1b90e4c0a..48dda3e4d5 100644 --- a/shared/helpers/nunjucks.js +++ b/shared/helpers/nunjucks.js @@ -1,18 +1,6 @@ -const components = require('@govuk-frontend/lib/components') const nunjucks = require('@govuk-frontend/lib/nunjucks') const cheerio = require('cheerio') -/** - * Render component HTML into cheerio - * - * @param {string} componentName - Component name - * @param {MacroRenderOptions} [options] - Nunjucks macro render options - * @returns {import('cheerio').CheerioAPI} HTML rendered by the macro - */ -function render(componentName, options) { - return cheerio.load(components.render(componentName, options)) -} - /** * Render template HTML into cheerio * @@ -25,12 +13,9 @@ function renderTemplate(templatePath, options) { } module.exports = { - render, renderTemplate } /** - * @typedef {import('@govuk-frontend/lib/nunjucks').MacroOptions} MacroOptions - * @typedef {import('@govuk-frontend/lib/nunjucks').MacroRenderOptions} MacroRenderOptions * @typedef {import('@govuk-frontend/lib/nunjucks').TemplateRenderOptions} TemplateRenderOptions */