Skip to content

Commit

Permalink
Update JavaScript global namespace from 'all' to 'GOVUKFrontend'
Browse files Browse the repository at this point in the history
This allows JavaScript to be accessed when not using a bundler.

The pre-existing convention for JavaScript on GOV.UK uses
`window.GOVUK`, to avoid conflicting with this we are using a different namespace.
  • Loading branch information
NickColley committed Jun 1, 2018
1 parent 17b4b46 commit 4789ed8
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/all.test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
/**
* @jest-environment ./lib/puppeteer/environment.js
*/
/* eslint-env jest */

const util = require('util')

const configPaths = require('../config/paths.json')
const PORT = configPaths.ports.test

const sass = require('node-sass')
const sassRender = util.promisify(sass.render)
Expand All @@ -11,7 +15,31 @@ const sassConfig = {
includePaths: [ configPaths.src ]
}

let browser
let page
let baseUrl = 'http://localhost:' + PORT

beforeAll(async (done) => {
browser = global.__BROWSER__
page = await browser.newPage()
done()
})

afterAll(async (done) => {
await page.close()
done()
})

describe('GOV.UK Frontend', () => {
describe('javascript', async() => {
it('can be accessed via `GOVUKFrontend`', async () => {
await page.goto(baseUrl + '/', { waitUntil: 'load' })

const GOVUKFrontendGlobal = await page.evaluate(() => window.GOVUKFrontend)

expect(typeof GOVUKFrontendGlobal).toBe('object')
})
})
describe('global styles', async() => {
it('are disabled by default', async () => {
const sass = `
Expand Down
2 changes: 2 additions & 0 deletions tasks/gulp/compile-assets.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ gulp.task('js:compile', () => {
srcFiles
])
.pipe(rollup({
// Used to set the `window` global and UMD/AMD export name.
name: 'GOVUKFrontend',
// Legacy mode is required for IE8 support
legacy: true,
// UMD allows the published bundle to work in CommonJS and in the browser.
Expand Down

0 comments on commit 4789ed8

Please sign in to comment.