39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
// Smoke test canva-app (port 8081) with Playwright, failing on console errors.
|
|
const { chromium } = require('playwright')
|
|
|
|
async function main() {
|
|
const url = process.env.CANVA_APP_URL || 'http://localhost:8081/'
|
|
const browser = await chromium.launch({ headless: true })
|
|
const page = await browser.newPage()
|
|
const errors = []
|
|
|
|
page.on('console', (msg) => {
|
|
if (msg.type() === 'error') {
|
|
errors.push(`console error: ${msg.text()}`)
|
|
}
|
|
})
|
|
page.on('pageerror', (err) => {
|
|
errors.push(`page error: ${err.message}`)
|
|
})
|
|
page.on('requestfailed', (req) => {
|
|
errors.push(`request failed: ${req.url()} -> ${req.failure()?.errorText}`)
|
|
})
|
|
|
|
await page.goto(url, { waitUntil: 'networkidle' })
|
|
await page.waitForTimeout(500)
|
|
|
|
await browser.close()
|
|
|
|
if (errors.length) {
|
|
console.error('Canva app headless check failed:')
|
|
errors.forEach((e) => console.error(' -', e))
|
|
process.exit(1)
|
|
}
|
|
console.log('Canva app headless check passed (no console/page errors)')
|
|
}
|
|
|
|
main().catch((e) => {
|
|
console.error(e)
|
|
process.exit(1)
|
|
})
|