update
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Description: Static and helper regression tests for MXPIC EDA frontend/backend integration contracts.
|
||||
* Inside functions: N/A - assertion-based test/module script.
|
||||
* Developer : Qin Yue @ 2026
|
||||
* Organization : OptiHK Limited
|
||||
*/
|
||||
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('loadedProjectPage'),
|
||||
'project loading should reuse the saved project canvas instead of creating a duplicate empty project tab'
|
||||
);
|
||||
assert(
|
||||
canvasHtml.includes('nonProjectPages'),
|
||||
'project composite map should exclude the saved project page itself'
|
||||
);
|
||||
assert(
|
||||
canvasHtml.includes('layoutToCanvasY'),
|
||||
'loading saved layout YAML should convert GDS/layout Y coordinates back to canvas coordinates'
|
||||
);
|
||||
assert(
|
||||
canvasHtml.includes('buildElementNodesFromYaml'),
|
||||
'project loading should rebuild saved anchor/port element nodes from YAML elements'
|
||||
);
|
||||
assert(
|
||||
canvasHtml.includes('Object.entries(doc.elements || {})'),
|
||||
'project loading should read doc.elements, not only doc.instances'
|
||||
);
|
||||
assert(
|
||||
canvasHtml.includes('nodeNameMap[elementName] = nodeId'),
|
||||
'loaded element names should be registered so saved links can reconnect to anchors and ports'
|
||||
);
|
||||
assert(
|
||||
canvasHtml.includes('getAvailableComponentsForLoadedComponent'),
|
||||
'project loading should reconstruct PDK component selection options for saved instances'
|
||||
);
|
||||
assert(
|
||||
canvasHtml.includes('availableComponents: instIsForge ? [FORGE_COMPONENT_LABEL] : loadedAvailableComponents'),
|
||||
'loaded PDK instances should keep availableComponents so the right panel can show the PDK selector'
|
||||
);
|
||||
assert(
|
||||
canvasHtml.includes('Array.from(new Set([FORGE_COMPONENT_LABEL, ...sameCategoryComponents'),
|
||||
'loaded PDK selector choices should include forge and same-category library components'
|
||||
);
|
||||
Reference in New Issue
Block a user