Files
mxpic_EDA/tests/layout-ui-wiring.test.js
T
2026-05-28 17:53:41 +08:00

76 lines
2.2 KiB
JavaScript

const assert = require('assert');
const fs = require('fs');
const path = require('path');
const root = path.resolve(__dirname, '..');
const canvasHtml = fs.readFileSync(path.join(root, 'frontend', 'canvas.html'), 'utf8');
assert(
canvasHtml.includes('Build GDS'),
'Project Tree header should include a Build GDS button'
);
assert(
canvasHtml.includes('/api/build-gds'),
'Build GDS button should call the backend build-gds API'
);
assert(
canvasHtml.includes(':layout'),
'Build Layout should open an SVG preview tab named like canvas_1:layout'
);
assert(
canvasHtml.includes('svg_url'),
'Build Layout should use the backend svg_url response'
);
assert(
canvasHtml.includes('layoutPreview'),
'canvas pages should support a layoutPreview tab type'
);
assert(
canvasHtml.includes('LayoutSvgPreview'),
'layout preview tabs should use the auto-scaling SVG viewer'
);
assert(
canvasHtml.includes('layoutScale'),
'layout SVG preview should expose an editable scale value'
);
assert(
canvasHtml.includes('objectFit: \'contain\''),
'100% layout preview scale should fit the full SVG within the screen'
);
assert(
canvasHtml.includes('className="build-gds-btn"'),
'Build GDS should use a dedicated polished button class'
);
assert(
canvasHtml.includes('buildGdsBusy'),
'Build GDS should expose an in-progress state to prevent duplicate requests'
);
assert(
canvasHtml.includes('Build GDS network error'),
'Build GDS fetch failures should produce a specific network diagnostic'
);
assert(
canvasHtml.includes('className="build-layout-btn"'),
'Build Layout should use the polished primary action class'
);
assert(
canvasHtml.includes('Route Editor'),
'Selecting an edge should expose a route editor'
);
assert(
canvasHtml.includes('selectedEdge'),
'canvas should track selected edges separately from selected nodes'
);
assert(
canvasHtml.includes('technologyManifest'),
'canvas should load the selected technology manifest'
);
assert(
canvasHtml.includes('standard_bend'),
'route editor should offer standard_bend as a routing type'
);
assert(
canvasHtml.includes('findSameFamilyRouteCrossing'),
'canvas should validate same-family route crossings'
);