Files
speckle-server/scratch/check_current_viewer.mjs
T

64 lines
1.8 KiB
JavaScript

import puppeteer from 'puppeteer'
const url =
'http://127.0.0.1:8081/projects/33287ec86e/models/00d42a6615@6382330e3b'
const browser = await puppeteer.launch({
headless: 'new',
args: ['--no-sandbox', '--disable-setuid-sandbox']
})
const page = await browser.newPage()
await page.setViewport({ width: 1440, height: 900, deviceScaleFactor: 1 })
const events = []
page.on('console', (msg) => {
if (['error', 'warning'].includes(msg.type())) {
events.push({ type: `console:${msg.type()}`, text: msg.text() })
}
})
page.on('pageerror', (error) => {
events.push({ type: 'pageerror', text: error.stack || error.message })
})
page.on('requestfailed', (request) => {
events.push({
type: 'requestfailed',
url: request.url(),
failure: request.failure()?.errorText
})
})
page.on('response', (response) => {
if (response.status() >= 400) {
events.push({
type: 'http',
status: response.status(),
url: response.url()
})
}
})
await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 60000 })
await new Promise((resolve) => setTimeout(resolve, 45000))
const result = await page.evaluate(() => {
const resources = performance
.getEntriesByType('resource')
.map((entry) => entry.name)
.filter((name) => name.includes('/api/viewer-derivatives/'))
const canvases = [...document.querySelectorAll('canvas')].map((canvas) => ({
width: canvas.width,
height: canvas.height,
clientWidth: canvas.clientWidth,
clientHeight: canvas.clientHeight
}))
return {
title: document.title,
resources,
canvases,
bodyText: document.body.innerText.slice(0, 1000)
}
})
await page.screenshot({ path: 'scratch/current-viewer-fixed.png', fullPage: false })
console.log(JSON.stringify({ url, events, result }, null, 2))
await browser.close()