41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import Lab from 'lab'
|
|
import assert from 'assert'
|
|
import fs from 'fs'
|
|
import path from 'path'
|
|
import {getPage, loadFile} from './test-setup/test-common'
|
|
|
|
export const lab = Lab.script()
|
|
|
|
lab.experiment('Examples test', {timeout: 15000}, function () {
|
|
let page = null
|
|
|
|
async function loadPage (f) {
|
|
return loadFile(page, f, {
|
|
waitUntil: 'networkidle0'
|
|
})
|
|
}
|
|
|
|
lab.before({timeout: 15000}, getPage(p => { page = p }))
|
|
|
|
lab.test('Test all examples pages load without errors (does not test functionality)', {timeout: 50000}, async function () {
|
|
const files = fs.readdirSync(path.join(__dirname, '../examples')).filter(f => f.endsWith('.html'))
|
|
let isErrored = false
|
|
|
|
page.on('error', (err) => {
|
|
isErrored = err
|
|
})
|
|
page.on('pageerror', (err) => {
|
|
isErrored = err
|
|
})
|
|
|
|
assert(!isErrored)
|
|
|
|
for (let file of files) {
|
|
await loadPage('../examples/' + file)
|
|
if (isErrored) {
|
|
throw new Error(`The example file ../examples/${file} threw an error ${isErrored}`)
|
|
}
|
|
}
|
|
})
|
|
})
|