chore: probe Playwright jetable retirée (e2e/_probe_edit.js)
FlowDeck CI / lint (push) Canceled after 0s
FlowDeck CI / test (push) Canceled after 0s
FlowDeck CI / docker (push) Canceled after 0s

This commit is contained in:
2026-10-02 15:15:58 -04:00
parent 6914780f24
commit e4552c3763
-57
View File
@@ -1,57 +0,0 @@
// Où atterrit right_actions sur /pages/{id} ? (parsé ou texte ?)
const { chromium } = require('playwright-core');
const path = require('path');
const fs = require('fs');
function findChromium() {
const root = path.join(process.env.LOCALAPPDATA, 'ms-playwright');
const dirs = fs.readdirSync(root).filter((d) => d.startsWith('chromium-') && !d.includes('headless'));
dirs.sort();
return path.join(root, dirs[dirs.length - 1], 'chrome-win64', 'chrome.exe');
}
const BASE = 'http://localhost:8080';
const CSP_JS = path.join(__dirname, 'fixtures', 'alpine.csp.js');
(async () => {
const browser = await chromium.launch({ headless: true, executablePath: findChromium() });
const ctx = await browser.newContext({ serviceWorkers: 'block' });
const page = await ctx.newPage();
const errs = [];
page.on('pageerror', (e) => errs.push(e.message.slice(0, 110)));
await page.goto(`${BASE}/auth/login?provider=local`, { waitUntil: 'domcontentloaded' });
if (await page.locator('#email').count()) {
await page.fill('#email', process.env.FD_USER || '[email protected]');
await page.fill('#password', process.env.FD_PASS || 'e2e-secret-123');
await page.click('.btn-primary');
await page.waitForURL('**/workspaces', { timeout: 15000 }).catch(() => {});
}
await page.route('**/static/js/alpine.min.js', (r) =>
r.fulfill({ path: CSP_JS, contentType: 'application/javascript' })
);
const coll = await page.evaluate(async () => {
const csrf = (document.cookie.match(/csrf_token=([^;]+)/) || [])[1] || '';
const r = await fetch('/db/api', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'X-CSRF-Token': csrf },
body: JSON.stringify({ name: 'e2e-probe-editor' }),
});
return r.json();
});
await page.goto(`${BASE}/pages/${coll.id}`, { waitUntil: 'domcontentloaded' });
await page.waitForTimeout(800);
const info = await page.evaluate(() => {
const star = document.querySelector('.star-btn');
const anyText = document.body.innerHTML.includes('edCall(');
const parsed = document.querySelector('button.star-btn') ? 'parse' : 'pas-de-bouton';
const parent = star ? star.parentElement.className : null;
const txt = document.body.innerHTML.indexOf('toggleActivityOpen');
const ctx = txt >= 0 ? document.body.innerHTML.slice(Math.max(0, txt - 160), txt + 60) : null;
return { parsed: parsed, starParent: parent, edCallInHTML: anyText, ctx: ctx };
});
console.log(JSON.stringify(info, null, 1));
console.log('erreurs:', errs.length ? errs : 'aucune');
// cleanup
await page.evaluate(async (id) => {
const csrf = (document.cookie.match(/csrf_token=([^;]+)/) || [])[1] || '';
await fetch(`/db/api/${id}`, { method: 'DELETE', headers: { 'X-CSRF-Token': csrf } });
}, coll.id);
await browser.close();
})();