Files
tilbudgivern/_scripts/test-diagnostics.js
alexpolo1 eb03213f16 oprydning
2025-11-26 12:36:27 +00:00

103 lines
3.9 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const { chromium } = require('playwright');
async function diagnose() {
console.log('\n🔍 DIAGNOSTICS: Checking what\'s actually on the page\n');
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
try {
// Go to home
console.log('1⃣ Navigating to http://localhost:4031...');
await page.goto('http://localhost:4031', { timeout: 10000 });
await page.waitForLoadState('networkidle');
// Check what's visible
const title = await page.title();
const url = page.url();
console.log(` URL: ${url}`);
console.log(` Title: ${title}`);
// Check inputs
const inputs = await page.$$('input');
console.log(` Found ${inputs.length} input fields`);
for (let i = 0; i < Math.min(5, inputs.length); i++) {
const placeholder = await inputs[i].getAttribute('placeholder');
const type = await inputs[i].getAttribute('type');
console.log(` Input ${i}: type="${type}" placeholder="${placeholder}"`);
}
// Check buttons
const buttons = await page.$$('button');
console.log(` Found ${buttons.length} buttons`);
for (let i = 0; i < Math.min(5, buttons.length); i++) {
const text = await buttons[i].textContent();
console.log(` Button ${i}: "${text.trim()}"`);
}
// Try to login
console.log('\n2⃣ Attempting login with toemrer/REDACTED_AUTH...');
const usernameInput = page.locator('input[type="text"]').first();
const passwordInput = page.locator('input[type="password"]').first();
const loginBtn = page.locator('button:has-text("Log ind")');
await usernameInput.fill('toemrer');
await passwordInput.fill('REDACTED_AUTH');
await loginBtn.click();
console.log(' Waiting for navigation...');
await page.waitForNavigation({ timeout: 10000 }).catch(() => {
console.log(' No navigation detected, continuing anyway');
});
await page.waitForLoadState('networkidle');
const urlAfterLogin = page.url();
console.log(` URL after login: ${urlAfterLogin}`);
// Check what's on page after login
console.log('\n3⃣ Content after login:');
const titleAfter = await page.title();
console.log(` Title: ${titleAfter}`);
const inputsAfter = await page.$$('input');
console.log(` Found ${inputsAfter.length} input fields`);
for (let i = 0; i < Math.min(10, inputsAfter.length); i++) {
const placeholder = await inputsAfter[i].getAttribute('placeholder');
const type = await inputsAfter[i].getAttribute('type');
console.log(` Input ${i}: type="${type}" placeholder="${placeholder}"`);
}
const buttonsAfter = await page.$$('button');
console.log(` Found ${buttonsAfter.length} buttons`);
for (let i = 0; i < Math.min(10, buttonsAfter.length); i++) {
const text = await buttonsAfter[i].textContent();
console.log(` Button ${i}: "${text.trim()}"`);
}
// Try to navigate to /project-creation
console.log('\n4⃣ Navigating to /project-creation...');
await page.goto('http://localhost:4031/project-creation', { timeout: 10000 });
await page.waitForLoadState('networkidle');
const urlProjCreation = page.url();
console.log(` URL: ${urlProjCreation}`);
const titleProjCreation = await page.title();
console.log(` Title: ${titleProjCreation}`);
const inputsProjCreation = await page.$$('input');
console.log(` Found ${inputsProjCreation.length} input fields`);
for (let i = 0; i < Math.min(10, inputsProjCreation.length); i++) {
const placeholder = await inputsProjCreation[i].getAttribute('placeholder');
const type = await inputsProjCreation[i].getAttribute('type');
console.log(` Input ${i}: type="${type}" placeholder="${placeholder}"`);
}
} catch (err) {
console.error('❌ Error:', err.message);
} finally {
await browser.close();
}
}
diagnose();