From 9601d91c5d4efac3cf179f50284b6cb6e76b4df4 Mon Sep 17 00:00:00 2001 From: Nick Colley Date: Thu, 8 Mar 2018 11:00:45 +0000 Subject: [PATCH 1/3] Guard render function from empty objects This has caught me out a few times, it's easy to pass an undefined example, then wonder why nothing is working. --- lib/jest-helpers.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/jest-helpers.js b/lib/jest-helpers.js index e0eaf96ffd..31a44e1671 100644 --- a/lib/jest-helpers.js +++ b/lib/jest-helpers.js @@ -20,6 +20,9 @@ nunjucks.configure(configPaths.src, { * @returns {function} returns cheerio (jQuery) instance of the template for easy DOM querying */ function render (componentName, params) { + if (typeof params === 'undefined') { + throw new Error('Parameters passed to `render` should be an object but are undefined') + } const output = nunjucks.render(componentName + '/template.njk', { params }) return cheerio.load(output) } From 243c453c286d58477495b2f4951e0f3a2a686710 Mon Sep 17 00:00:00 2001 From: Nick Colley Date: Thu, 8 Mar 2018 11:01:52 +0000 Subject: [PATCH 2/3] Update tests to avoid passing undefined parameters --- src/button/template.test.js | 2 +- src/input/template.test.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/button/template.test.js b/src/button/template.test.js index 19b390402e..0a7f7915d9 100644 --- a/src/button/template.test.js +++ b/src/button/template.test.js @@ -241,7 +241,7 @@ describe('Button', () => { }) it('renders an input[type=submit] if you don\'t pass anything', () => { - const $ = render('button') + const $ = render('button', {}) const $component = $('.govuk-c-button') expect($component.get(0).tagName).toEqual('input') diff --git a/src/input/template.test.js b/src/input/template.test.js index ea2379ec75..5326919074 100644 --- a/src/input/template.test.js +++ b/src/input/template.test.js @@ -43,7 +43,7 @@ describe('Input', () => { }) it('renders with type="text" by default', () => { - const $ = render('input') + const $ = render('input', {}) const $component = $('.govuk-c-input') expect($component.attr('type')).toEqual('text') From af0c9a275efc51b8834b9e7f2b82feef182e0cc0 Mon Sep 17 00:00:00 2001 From: Nick Colley Date: Thu, 8 Mar 2018 11:02:34 +0000 Subject: [PATCH 3/3] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 420f03d711..70015db096 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,8 @@ Internal: - Update pre-release step to check for new components (PR [#574](https://github.com/alphagov/govuk-frontend/pull/574)) +- Ensure render function does not have undefined object + (PR [#587](https://github.com/alphagov/govuk-frontend/pull/587)) ## 0.0.25-alpha (Breaking release)