Test: Playwright tests for tmtv (#4331)
Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Co-authored-by: Ibrahim <ibrahim.mdev@gmail.com>
This commit is contained in:
13 files changed
+294
-13
No files matched your search
@@ -0,0 +1,10 @@
|
||||
const clearAllAnnotations = async page => {
|
||||
await page.evaluate(
|
||||
({ cornerstoneTools }: AppTypes.Test) => {
|
||||
cornerstoneTools.annotation.state.removeAllAnnotations();
|
||||
},
|
||||
await page.evaluateHandle('window')
|
||||
);
|
||||
};
|
||||
|
||||
export { clearAllAnnotations };
|
||||
@@ -0,0 +1,15 @@
|
||||
const getSUV = async page => {
|
||||
const SUV = await page.evaluate(
|
||||
({ services }: AppTypes.Test) => {
|
||||
const { measurementService } = services;
|
||||
const measurements = measurementService.getMeasurements();
|
||||
const displayText = measurements[0].displayText;
|
||||
return displayText[2];
|
||||
},
|
||||
await page.evaluateHandle('window')
|
||||
);
|
||||
|
||||
return SUV;
|
||||
};
|
||||
|
||||
export { getSUV };
|
||||
@@ -0,0 +1,27 @@
|
||||
const getTMTVModalityUnit = async (page, attempts = 20) => {
|
||||
for (let i = 0; i < attempts; i++) {
|
||||
try {
|
||||
const modalityUnit = await page.evaluate(
|
||||
({ cornerstoneTools }: AppTypes.Test) => {
|
||||
const annotations = cornerstoneTools.annotation.state.getAllAnnotations();
|
||||
const stats = annotations[0].data.cachedStats;
|
||||
const targetIds = Object.keys(stats);
|
||||
const targetStats = stats[targetIds[1]];
|
||||
return targetStats.modalityUnit;
|
||||
},
|
||||
await page.evaluateHandle('window')
|
||||
);
|
||||
|
||||
if (modalityUnit) {
|
||||
return modalityUnit;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to get modalityUnit', error);
|
||||
}
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
}
|
||||
|
||||
throw new Error('Failed to get modalityUnit after multiple attempts');
|
||||
};
|
||||
|
||||
export { getTMTVModalityUnit };
|
||||
+17
-2
@@ -4,6 +4,21 @@ import { screenShotPaths } from './screenShotPaths';
|
||||
import { simulateClicksOnElement } from './simulateClicksOnElement';
|
||||
import { reduce3DViewportSize } from './reduce3DviewportSize';
|
||||
import { getMousePosition, initilizeMousePositionTracker } from './mouseUtils';
|
||||
import { getSUV } from './getSUV';
|
||||
import { getTMTVModalityUnit } from './getTMTVModalityUnit';
|
||||
import { clearAllAnnotations } from './clearAllAnnotations';
|
||||
import { scrollVolumeViewport } from './scrollVolumeViewport';
|
||||
|
||||
|
||||
export { visitStudy, checkForScreenshot, screenShotPaths, simulateClicksOnElement, reduce3DViewportSize, getMousePosition, initilizeMousePositionTracker };
|
||||
export {
|
||||
visitStudy,
|
||||
checkForScreenshot,
|
||||
screenShotPaths,
|
||||
simulateClicksOnElement,
|
||||
reduce3DViewportSize,
|
||||
getMousePosition,
|
||||
initilizeMousePositionTracker,
|
||||
getSUV,
|
||||
getTMTVModalityUnit,
|
||||
clearAllAnnotations,
|
||||
scrollVolumeViewport,
|
||||
};
|
||||
@@ -1,9 +1,13 @@
|
||||
|
||||
export const reduce3DViewportSize = async (page: any) => {
|
||||
await page.evaluate(({ cornerstone }: AppTypes.Test) => {
|
||||
const enabledElement = cornerstone.getEnabledElements().filter(element => element.viewport.type === 'volume3d')[0]
|
||||
const { viewport } = enabledElement;
|
||||
viewport.setZoom(0.5);
|
||||
viewport.render()
|
||||
}, await page.evaluateHandle('window'));
|
||||
}
|
||||
await page.evaluate(
|
||||
({ cornerstone }: AppTypes.Test) => {
|
||||
const enabledElement = cornerstone
|
||||
.getEnabledElements()
|
||||
.filter(element => element.viewport.type === 'volume3d')[0];
|
||||
const { viewport } = enabledElement;
|
||||
viewport.setZoom(0.5);
|
||||
viewport.render();
|
||||
},
|
||||
await page.evaluateHandle('window')
|
||||
);
|
||||
};
|
||||
@@ -86,7 +86,10 @@ const screenShotPaths = {
|
||||
crosshairsSlabThickness: 'crosshairsSlabThickness.png',
|
||||
crosshairsResetToolbar: 'crosshairsResetToolbar.png',
|
||||
crosshairsNewDisplayset: 'crosshairsNewDisplayset.png',
|
||||
}
|
||||
},
|
||||
tmtvRendering: {
|
||||
tmtvDisplayedCorrectly: 'tmtvDisplayedCorrectly.png',
|
||||
},
|
||||
};
|
||||
|
||||
export { screenShotPaths };
|
||||
@@ -0,0 +1,17 @@
|
||||
type scrollVolumeViewportType = {
|
||||
viewportId: string;
|
||||
delta: number;
|
||||
};
|
||||
|
||||
const scrollVolumeViewport = async (page, viewportId, delta) => {
|
||||
await page.evaluate(
|
||||
({ services, viewportId, delta }: withTestTypes<scrollVolumeViewportType>) => {
|
||||
const { cornerstoneViewportService } = services;
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId) as any;
|
||||
viewport.scroll(delta);
|
||||
},
|
||||
{ viewportId, delta, services: await page.evaluateHandle('window.services') }
|
||||
);
|
||||
};
|
||||
|
||||
export { scrollVolumeViewport };
|
||||
Reference in new issue
Block a user