Files
DOSSIER-STANDALONE/scripts/probe-draw-commands.mjs
T
karim ca859c4aa4 Browser-BIM (cad): semantisches Modell, abgeleitete 2D/3D-Sichten, Zeichenwerkzeuge
Standalone-Browser-Port von DOSSIER. Enthaelt das semantische Modell mit
Plan-/3D-Ableitung, Zeichen- und Editierwerkzeuge, Rhino-artiges Befehlssystem,
dockbares Panel-System, Resource-Manager, DXF/.lin/.pat-Import, i18n (de/en)
sowie Projektdokumentation und Probe-Harness.
2026-06-30 20:52:27 +02:00

37 lines
1.8 KiB
JavaScript

import puppeteer from "puppeteer";
const URL=process.env.PROBE_URL||"http://localhost:5173/";
const b=await puppeteer.launch({headless:"new",args:["--no-sandbox","--use-gl=swiftshader","--enable-unsafe-swiftshader"]});
const p=await b.newPage(); await p.setViewport({width:1280,height:820,deviceScaleFactor:1});
const errs=[]; p.on("pageerror",e=>errs.push(e.message));
await p.goto(URL,{waitUntil:"networkidle0",timeout:20000}).catch(()=>{});
await new Promise(r=>setTimeout(r,700));
const lineCount=()=>p.$$eval(".plan-svg line",ls=>ls.length).catch(()=>-1);
const focusCmd=async()=>{ await p.mouse.click(640,760); await p.keyboard.press("Tab"); await new Promise(r=>setTimeout(r,80)); };
const typeLine=async t=>{ await p.type(".cmdline-input",t,{delay:8}); await p.keyboard.press("Enter"); await new Promise(r=>setTimeout(r,90)); };
const prompt=()=>p.evaluate(()=>document.querySelector(".cmdline-prompt")?.textContent||"");
const l0=await lineCount();
// Polyline (offener Zug, Enter beendet)
await focusCmd(); await typeLine("polyline");
const pp=await prompt();
await typeLine("1,1"); await typeLine("r2,0"); await typeLine("r0,1.5");
await p.keyboard.press("Enter"); await new Promise(r=>setTimeout(r,120)); // beenden
const l1=await lineCount();
// Rectangle
await focusCmd(); await typeLine("rect");
const rp=await prompt();
await typeLine("0.5,3"); await typeLine("r3,1.5");
const l2=await lineCount();
// Circle (Radius getippt)
await focusCmd(); await typeLine("circle");
const cp=await prompt();
await typeLine("4,4"); await typeLine("0.8");
const l3=await lineCount();
await p.screenshot({path:"scripts/probe-draw-commands.png"});
console.log(JSON.stringify({
polyPrompt:pp, rectPrompt:rp, circPrompt:cp,
lines_start:l0, after_polyline:l1, after_rect:l2, after_circle:l3,
polyAdded:l1-l0, rectAdded:l2-l1, circleAdded:l3-l2, errs
},null,2));
await b.close();