← back to Marketing Command Center
scripts/probe-403-and-posts.js
36 lines
const { chromium } = require('playwright');
const BASE = 'https://marketing.designerwallcoverings.com';
(async () => {
const browser = await chromium.launch();
const ctx = await browser.newContext({ viewport: { width: 1600, height: 900 }, httpCredentials: { username: 'admin', password: 'DW2024!' } });
const page = await ctx.newPage();
const bad = [];
page.on('response', r => { if (r.status() >= 400) bad.push(r.status() + ' ' + r.url()); });
const perr = [];
page.on('pageerror', e => perr.push('' + e));
await page.goto(BASE + '/', { waitUntil: 'domcontentloaded' });
await page.waitForTimeout(2000);
for (const panel of ['engine', 'social']) {
for (const sel of [`[data-panel="${panel}"]`, `a[href="#${panel}"]`, `a[href*="${panel}"]`]) {
try { const el = page.locator(sel).first(); if (await el.count()) { await el.click({ timeout: 3000 }); break; } } catch {}
}
await page.waitForTimeout(2500);
const info = await page.evaluate(() => {
const main = document.querySelector('main, .panel, #app') || document.body;
// find any "Failed"/error banner
const banners = [...document.querySelectorAll('*')].filter(e => /^(failed|error|no posts|nothing|couldn|could not)/i.test((e.childNodes.length && e.textContent || '').trim().slice(0, 40)) && e.offsetHeight > 0 && e.children.length <= 2).slice(0, 5).map(e => e.tagName + '.' + (e.className || '') + ' :: ' + e.textContent.trim().slice(0, 120));
return { title: (document.querySelector('h1,h2,.panel-title')?.innerText || '').slice(0, 60), banners, first600: main.innerText.trim().slice(0, 600) };
});
console.log('\n===== PANEL: ' + panel + ' =====');
console.log('title:', info.title);
console.log('banners:', JSON.stringify(info.banners, null, 1));
console.log('first600:\n' + info.first600);
}
console.log('\n===== FAILED RESPONSES (>=400) =====');
[...new Set(bad)].forEach(b => console.log(b));
console.log('\n===== PAGE ERRORS =====');
[...new Set(perr)].forEach(e => console.log(e));
await ctx.close(); await browser.close();
})().catch(e => { console.error('FATAL', e); process.exit(1); });