81 lines
2.0 KiB
JavaScript
81 lines
2.0 KiB
JavaScript
import { chromium } from 'playwright';
|
|
|
|
async function main() {
|
|
// Start Xvfb
|
|
console.log('Starting application...');
|
|
|
|
const browser = await chromium.launch({
|
|
executablePath: '/home/runner/work/MQTT-Explorer/MQTT-Explorer/node_modules/electron/dist/electron',
|
|
args: ['.', '--enable-mcp-introspection', '--no-sandbox'],
|
|
env: { ...process.env, DISPLAY: ':99' }
|
|
});
|
|
|
|
const context = browser.contexts()[0];
|
|
const page = context.pages()[0] || await context.newPage();
|
|
|
|
// Collect console messages
|
|
const messages = [];
|
|
page.on('console', msg => {
|
|
messages.push({
|
|
type: msg.type(),
|
|
text: msg.text(),
|
|
location: msg.location()
|
|
});
|
|
});
|
|
|
|
// Collect page errors
|
|
const errors = [];
|
|
page.on('pageerror', error => {
|
|
errors.push({
|
|
message: error.message,
|
|
stack: error.stack
|
|
});
|
|
});
|
|
|
|
// Wait for the page to load
|
|
await page.waitForTimeout(8000);
|
|
|
|
console.log('\n=== CONSOLE MESSAGES ===');
|
|
const errorMessages = messages.filter(m => m.type === 'error');
|
|
const warningMessages = messages.filter(m => m.type === 'warning');
|
|
|
|
if (errorMessages.length > 0) {
|
|
console.log('\nERRORS:');
|
|
errorMessages.forEach(msg => {
|
|
console.log(` [${msg.type}] ${msg.text}`);
|
|
if (msg.location) {
|
|
console.log(` at ${msg.location.url}:${msg.location.lineNumber}`);
|
|
}
|
|
});
|
|
} else {
|
|
console.log('No console errors!');
|
|
}
|
|
|
|
if (warningMessages.length > 0) {
|
|
console.log('\nWARNINGS:');
|
|
warningMessages.forEach(msg => {
|
|
console.log(` [${msg.type}] ${msg.text}`);
|
|
});
|
|
}
|
|
|
|
console.log('\n=== PAGE ERRORS ===');
|
|
if (errors.length === 0) {
|
|
console.log('No page errors found! ✅');
|
|
} else {
|
|
errors.forEach(err => {
|
|
console.log(`ERROR: ${err.message}`);
|
|
if (err.stack) {
|
|
console.log(err.stack);
|
|
}
|
|
});
|
|
}
|
|
|
|
await browser.close();
|
|
process.exit(errors.length > 0 ? 1 : 0);
|
|
}
|
|
|
|
main().catch(err => {
|
|
console.error('Test failed:', err);
|
|
process.exit(1);
|
|
});
|