ohif-viewer/tests/RTContourViewportLayoutChange.spec.ts

47 lines
1.5 KiB
TypeScript

import { expect, test, visitStudy, getSvgAttribute, waitForViewportRenderCycle } from './utils';
test.beforeEach(async ({ page }) => {
const studyInstanceUID = '1.3.6.1.4.1.12201.1091.126683095609223531686845324113579088978';
const mode = 'segmentation';
await visitStudy(page, studyInstanceUID, mode, 2000);
});
test('should keep RT contours correctly positioned after maximizing and restoring the viewport', async ({
page,
viewportPageObject,
leftPanelPageObject,
DOMOverlayPageObject,
}) => {
await leftPanelPageObject.loadSeriesByModality('RTSTRUCT');
let viewportRenderCycle = waitForViewportRenderCycle(page);
await DOMOverlayPageObject.viewport.segmentationHydration.yes.click();
await viewportRenderCycle;
const initialSvgPath = await getSvgAttribute({
viewportPageObject,
svgInnerElement: 'path',
attributeName: 'd',
});
expect(initialSvgPath).not.toBeNull();
const activeViewport = await viewportPageObject.active;
viewportRenderCycle = waitForViewportRenderCycle(page);
// First double-click: maximize viewport to one-up layout
await activeViewport.pane.dblclick();
await viewportRenderCycle;
viewportRenderCycle = waitForViewportRenderCycle(page);
// Second double-click: restore to the original multi-viewport layout
await activeViewport.pane.dblclick();
await viewportRenderCycle;
const restoredSvgPath = await getSvgAttribute({
viewportPageObject,
svgInnerElement: 'path',
attributeName: 'd',
});
expect(restoredSvgPath).not.toBeNull();
expect(restoredSvgPath).toBe(initialSvgPath);
});