diff --git a/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx b/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx index 59bfda9b4..32f37970a 100644 --- a/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx +++ b/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx @@ -41,7 +41,6 @@ function OHIFCornerstoneRTViewport(props: withAppTypes) { const [{ viewports, activeViewportId }, viewportGridService] = useViewportGrid(); // States - const selectedSegmentObjectIndex: number = 0; const { setPositionPresentation } = usePositionPresentationStore(); const [rtIsLoading, setRtIsLoading] = useState(!rtDisplaySet.isLoaded); const [processingProgress, setProcessingProgress] = useState({ diff --git a/extensions/cornerstone/src/components/ModalityLoadBadge/ModalityLoadBadge.tsx b/extensions/cornerstone/src/components/ModalityLoadBadge/ModalityLoadBadge.tsx index 530e17041..1b51409c5 100644 --- a/extensions/cornerstone/src/components/ModalityLoadBadge/ModalityLoadBadge.tsx +++ b/extensions/cornerstone/src/components/ModalityLoadBadge/ModalityLoadBadge.tsx @@ -17,13 +17,13 @@ function ModalityLoadBadge({ viewportId }: { viewportId: string }) { const { isTracked, isLocked } = useMeasurementTracking({ viewportId }); - const { backgroundDisplaySet, overlayDisplaySets } = useViewportDisplaySets(viewportId); + const { backgroundDisplaySet } = useViewportDisplaySets(viewportId); const [specialDisplaySet, setSpecialDisplaySet] = useState(null); const allDisplaySets = useMemo(() => { - return [backgroundDisplaySet, ...overlayDisplaySets].filter(Boolean); - }, [backgroundDisplaySet, overlayDisplaySets]); + return [backgroundDisplaySet].filter(Boolean); + }, [backgroundDisplaySet]); useEffect(() => { const displaySet = allDisplaySets.find(ds => ds.isOverlayDisplaySet || ds?.Modality === 'SR'); @@ -120,7 +120,10 @@ function ModalityLoadBadge({ viewportId }: { viewportId: string }) { const StatusArea = () => { if (!statusInfo.isHydrated) { return ( -
+
{statusInfo.type} diff --git a/package.json b/package.json index df17d1191..40e1a3e90 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,8 @@ "test:e2e:ci": "TEST_ENV=true npx playwright test", "test:e2e:ui": "TEST_ENV=true npx playwright test --ui", "test:e2e:reporter": "TEST_ENV=true npx playwright test --reporter=html", - "test:e2e:update": "TEST_ENV=true npx playwright test --reporter=html --update-snapshots", - "test:e2e:update:debug": "TEST_ENV=true npx playwright test -g @debug --reporter=html --update-snapshots ", + "test:e2e:update": "TEST_ENV=true npx playwright test --reporter=html --update-snapshots -g shouldUpdateThis", + "test:e2e:update:debug": "TEST_ENV=true npx playwright test -g @debug --reporter=html --update-snapshots -g shouldUpdateThis", "test:e2e:headed": "TEST_ENV=true npx playwright test --headed", "test:e2e:debug": "TEST_ENV=true npx playwright test --debug", "test:e2e:dist": "lerna run test:e2e:dist --stream", diff --git a/tests/DataOverlayMenu.spec.ts b/tests/DataOverlayMenu.spec.ts index 991ab0583..e3667fb9d 100644 --- a/tests/DataOverlayMenu.spec.ts +++ b/tests/DataOverlayMenu.spec.ts @@ -13,6 +13,8 @@ test('should display added, selected and removed segmentation promptly', async ( await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('2d-tta_nnU-Net_Segmentation').click(); + await page.waitForTimeout(5000); + await checkForScreenshot({ page, screenshotPath: @@ -25,6 +27,8 @@ test('should display added, selected and removed segmentation promptly', async ( // navigate to the 51st image and ensure the correct overlay is displayed await press({ page, key: 'ArrowDown', nTimes: 50 }); + await page.waitForTimeout(5000); + await checkForScreenshot({ page, screenshotPath: screenShotPaths.dataOverlayMenu.overlay2d_tta_nnU_Net_Segmentation, @@ -37,6 +41,8 @@ test('should display added, selected and removed segmentation promptly', async ( await page.getByTestId('overlay-ds-select-value-2D-TTA_NNU-NET_SEGMENTATION').click(); await page.getByTestId('Segmentation-SEG').click(); + await page.waitForTimeout(5000); + await checkForScreenshot({ page, screenshotPath: screenShotPaths.dataOverlayMenu.overlayMenuWithSegmentationSelected, @@ -48,6 +54,8 @@ test('should display added, selected and removed segmentation promptly', async ( // navigate to the 51st image and ensure the correct overlay is displayed await press({ page, key: 'ArrowDown', nTimes: 50 }); + await page.waitForTimeout(5000); + await checkForScreenshot({ page, screenshotPath: screenShotPaths.dataOverlayMenu.overlaySegmentation, @@ -60,6 +68,8 @@ test('should display added, selected and removed segmentation promptly', async ( await page.getByTestId('overlay-ds-more-button-SEGMENTATION').click(); await page.getByTestId('overlay-ds-remove-button-SEGMENTATION').click(); + await page.waitForTimeout(5000); + await checkForScreenshot({ page, screenshotPath: screenShotPaths.dataOverlayMenu.overlayMenuWithSegmentationOverlaysRemoved, @@ -71,6 +81,8 @@ test('should display added, selected and removed segmentation promptly', async ( // navigate to the 51st image and ensure no overlay is displayed await press({ page, key: 'ArrowDown', nTimes: 50 }); + await page.waitForTimeout(5000); + await checkForScreenshot({ page, screenshotPath: screenShotPaths.dataOverlayMenu.noOverlay, diff --git a/tests/MPRThenRTOverlayNoHydration.spec.ts b/tests/MPRThenRTOverlayNoHydration.spec.ts index 1f36c8fe6..261836e3c 100644 --- a/tests/MPRThenRTOverlayNoHydration.spec.ts +++ b/tests/MPRThenRTOverlayNoHydration.spec.ts @@ -1,5 +1,6 @@ import { test } from 'playwright-test-coverage'; import { visitStudy, checkForScreenshot, screenShotPaths } from './utils'; +import { assertNumberOfModalityLoadBadges } from './utils/assertions'; test.beforeEach(async ({ page }) => { const studyInstanceUID = '1.3.6.1.4.1.5962.99.1.2968617883.1314880426.1493322302363.3.0'; @@ -32,6 +33,9 @@ test('should launch MPR with unhydrated RTSTRUCT chosen from the data overlay me // Hide the overlay menu. await page.getByTestId('dataOverlayMenu-mpr-sagittal-btn').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + // Wait 5 seconds for RT to load. This is necessary in particular when screen shots are added or replaced. await page.waitForTimeout(5000); diff --git a/tests/MPRThenSEGOverlayNoHydration.spec.ts b/tests/MPRThenSEGOverlayNoHydration.spec.ts index a970a1795..edaecd1d5 100644 --- a/tests/MPRThenSEGOverlayNoHydration.spec.ts +++ b/tests/MPRThenSEGOverlayNoHydration.spec.ts @@ -1,5 +1,6 @@ import { test } from 'playwright-test-coverage'; import { visitStudy, checkForScreenshot, screenShotPaths } from './utils'; +import { assertNumberOfModalityLoadBadges } from './utils/assertions'; test.beforeEach(async ({ page }) => { const studyInstanceUID = '1.3.12.2.1107.5.2.32.35162.30000015050317233592200000046'; @@ -15,6 +16,8 @@ test('should launch MPR with unhydrated SEG chosen from the data overlay menu', await page.getByTestId('Layout').click(); await page.getByTestId('MPR').click(); + await page.waitForTimeout(5000); + await checkForScreenshot( page, page, @@ -31,6 +34,11 @@ test('should launch MPR with unhydrated SEG chosen from the data overlay menu', // Hide the overlay menu. await page.getByTestId('dataOverlayMenu-mpr-sagittal-btn').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + + await page.waitForTimeout(5000); + await checkForScreenshot( page, page, diff --git a/tests/MultipleSegmentationDataOverlays.spec.ts b/tests/MultipleSegmentationDataOverlays.spec.ts index 64166fabb..7ad0b522d 100644 --- a/tests/MultipleSegmentationDataOverlays.spec.ts +++ b/tests/MultipleSegmentationDataOverlays.spec.ts @@ -1,6 +1,7 @@ import { test } from 'playwright-test-coverage'; import { visitStudy, checkForScreenshot, screenShotPaths } from './utils'; import { press } from './utils/keyboardUtils'; +import { assertNumberOfModalityLoadBadges } from './utils/assertions'; test.beforeEach(async ({ page }) => { const studyInstanceUID = '1.3.6.1.4.1.32722.99.99.239341353911714368772597187099978969331'; @@ -18,14 +19,23 @@ test('should display multiple segmentation overlays (both SEG and RT)', async ({ await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('2d-tta_nnU-Net_Segmentation').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + await page.getByTestId('AddSegmentationDataOverlay-default').click(); await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('Segmentation').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + await page.getByTestId('AddSegmentationDataOverlay-default').click(); await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('3d_lowres-tta_nnU-Net_Segmentation').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + await checkForScreenshot({ page, screenshotPath: screenShotPaths.multipleSegmentationDataOverlays.threeSegOverlaysInOverlayMenu, @@ -59,6 +69,9 @@ test('should display multiple segmentation overlays (both SEG and RT)', async ({ await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('Series 3 - RTSTRUCT').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + await page.waitForTimeout(5000); await checkForScreenshot({ diff --git a/tests/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts b/tests/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts index 7754489d2..35c5a539d 100644 --- a/tests/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts +++ b/tests/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts @@ -1,6 +1,7 @@ import { test } from 'playwright-test-coverage'; import { visitStudy, checkForScreenshot, screenShotPaths } from './utils'; import { press } from './utils/keyboardUtils'; +import { assertNumberOfModalityLoadBadges } from './utils/assertions'; test.beforeEach(async ({ page }) => { const studyInstanceUID = '1.2.840.113619.2.290.3.3767434740.226.1600859119.501'; @@ -16,9 +17,14 @@ test('should overlay an unhydrated RTSTRUCT over a display set that the RTSTRUCT await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('Contours on PET').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + // Hide the overlay menu. await page.getByTestId('dataOverlayMenu-default-btn').click(); + await page.waitForTimeout(5000); + await checkForScreenshot( page, page, @@ -28,6 +34,8 @@ test('should overlay an unhydrated RTSTRUCT over a display set that the RTSTRUCT // Navigate to the middle image of the default viewport. await press({ page, key: 'ArrowDown', nTimes: 23 }); + await page.waitForTimeout(5000); + await checkForScreenshot( page, page, diff --git a/tests/RTDataOverlayNoHydrationThenMPR.spec.ts b/tests/RTDataOverlayNoHydrationThenMPR.spec.ts index 437460bf3..1c2bb5ee1 100644 --- a/tests/RTDataOverlayNoHydrationThenMPR.spec.ts +++ b/tests/RTDataOverlayNoHydrationThenMPR.spec.ts @@ -1,5 +1,6 @@ import { test } from 'playwright-test-coverage'; import { visitStudy, checkForScreenshot, screenShotPaths } from './utils'; +import { assertNumberOfModalityLoadBadges } from './utils/assertions'; test.beforeEach(async ({ page }) => { const studyInstanceUID = '1.3.6.1.4.1.5962.99.1.2968617883.1314880426.1493322302363.3.0'; @@ -16,6 +17,9 @@ test('should launch MPR with unhydrated RTSTRUCT chosen from the data overlay me await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('ARIA RadOnc Structure Sets').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + // Hide the overlay menu. await page.getByTestId('dataOverlayMenu-default-btn').click(); @@ -37,4 +41,7 @@ test('should launch MPR with unhydrated RTSTRUCT chosen from the data overlay me page, screenShotPaths.rtDataOverlayNoHydrationThenMPR.rtDataOverlayNoHydrationPostMPR ); + + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); }); diff --git a/tests/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts b/tests/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts index 84cb879d9..315034542 100644 --- a/tests/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts +++ b/tests/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts @@ -1,6 +1,7 @@ import { test } from 'playwright-test-coverage'; import { visitStudy, checkForScreenshot, screenShotPaths } from './utils'; import { press } from './utils/keyboardUtils'; +import { assertNumberOfModalityLoadBadges } from './utils/assertions'; test.beforeEach(async ({ page }) => { const studyInstanceUID = '1.3.6.1.4.1.14519.5.2.1.1706.8374.643249677828306008300337414785'; @@ -16,9 +17,14 @@ test('should overlay an unhydrated SEG over a display set that the SEG does NOT await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('Segmentation').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + // Hide the overlay menu. await page.getByTestId('dataOverlayMenu-default-btn').click(); + await page.waitForTimeout(5000); + await checkForScreenshot( page, page, @@ -28,6 +34,8 @@ test('should overlay an unhydrated SEG over a display set that the SEG does NOT // Navigate to the middle image of the default viewport. await press({ page, key: 'ArrowDown', nTimes: 9 }); + await page.waitForTimeout(5000); + await checkForScreenshot( page, page, diff --git a/tests/SEGDataOverlayNoHydrationThenMPR.spec.ts b/tests/SEGDataOverlayNoHydrationThenMPR.spec.ts index 56b407610..98ca53ef1 100644 --- a/tests/SEGDataOverlayNoHydrationThenMPR.spec.ts +++ b/tests/SEGDataOverlayNoHydrationThenMPR.spec.ts @@ -1,5 +1,6 @@ import { test } from 'playwright-test-coverage'; import { visitStudy, checkForScreenshot, screenShotPaths } from './utils'; +import { assertNumberOfModalityLoadBadges } from './utils/assertions'; test.beforeEach(async ({ page }) => { const studyInstanceUID = '1.3.12.2.1107.5.2.32.35162.30000015050317233592200000046'; @@ -16,9 +17,14 @@ test('should launch MPR with unhydrated SEG chosen from the data overlay menu', await page.getByText('SELECT A SEGMENTATION').click(); await page.getByTestId('Segmentation').click(); + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); + // Hide the overlay menu. await page.getByTestId('dataOverlayMenu-default-btn').click(); + await page.waitForTimeout(5000); + await checkForScreenshot( page, page, @@ -28,9 +34,14 @@ test('should launch MPR with unhydrated SEG chosen from the data overlay menu', await page.getByTestId('Layout').click(); await page.getByTestId('MPR').click(); + await page.waitForTimeout(5000); + await checkForScreenshot( page, page, screenShotPaths.segDataOverlayNoHydrationThenMPR.segDataOverlayNoHydrationPostMPR ); + + // Adding an overlay should not show the LOAD button. + assertNumberOfModalityLoadBadges({ page, expectedCount: 0 }); }); diff --git a/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlay2d-tta-nnU-Net-Segmentation.png b/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlay2d-tta-nnU-Net-Segmentation.png index 114a4fbc3..9dbdfff0b 100644 Binary files a/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlay2d-tta-nnU-Net-Segmentation.png and b/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlay2d-tta-nnU-Net-Segmentation.png differ diff --git a/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlayMenuWith2d-tta-nnU-Net-SegmentationSelected.png b/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlayMenuWith2d-tta-nnU-Net-SegmentationSelected.png index e50a700fc..a1c0387bf 100644 Binary files a/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlayMenuWith2d-tta-nnU-Net-SegmentationSelected.png and b/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlayMenuWith2d-tta-nnU-Net-SegmentationSelected.png differ diff --git a/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlayMenuWithSegmentationSelected.png b/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlayMenuWithSegmentationSelected.png index b1f56f027..5be516762 100644 Binary files a/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlayMenuWithSegmentationSelected.png and b/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlayMenuWithSegmentationSelected.png differ diff --git a/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlaySegmentation.png b/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlaySegmentation.png index 7b6b3a718..caaf6170f 100644 Binary files a/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlaySegmentation.png and b/tests/screenshots/chromium/DataOverlayMenu.spec.ts/overlaySegmentation.png differ diff --git a/tests/screenshots/chromium/MPRThenRTOverlayNoHydration.spec.ts/mprPostRTOverlayNoHydration.png b/tests/screenshots/chromium/MPRThenRTOverlayNoHydration.spec.ts/mprPostRTOverlayNoHydration.png index c43023205..46f136322 100644 Binary files a/tests/screenshots/chromium/MPRThenRTOverlayNoHydration.spec.ts/mprPostRTOverlayNoHydration.png and b/tests/screenshots/chromium/MPRThenRTOverlayNoHydration.spec.ts/mprPostRTOverlayNoHydration.png differ diff --git a/tests/screenshots/chromium/MPRThenSEGOverlayNoHydration.spec.ts/mprPostSEGOverlayNoHydration.png b/tests/screenshots/chromium/MPRThenSEGOverlayNoHydration.spec.ts/mprPostSEGOverlayNoHydration.png index 5fbcdd9ef..58a489909 100644 Binary files a/tests/screenshots/chromium/MPRThenSEGOverlayNoHydration.spec.ts/mprPostSEGOverlayNoHydration.png and b/tests/screenshots/chromium/MPRThenSEGOverlayNoHydration.spec.ts/mprPostSEGOverlayNoHydration.png differ diff --git a/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/overlaySEGsAndRTDisplayed.png b/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/overlaySEGsAndRTDisplayed.png index 583070fc8..9b2e3c244 100644 Binary files a/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/overlaySEGsAndRTDisplayed.png and b/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/overlaySEGsAndRTDisplayed.png differ diff --git a/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/overlaysDisplayed.png b/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/overlaysDisplayed.png index 694459489..ad58bcddb 100644 Binary files a/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/overlaysDisplayed.png and b/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/overlaysDisplayed.png differ diff --git a/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/threeSegOverlaysInOverlayMenu.png b/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/threeSegOverlaysInOverlayMenu.png index 84005802a..0606b8656 100644 Binary files a/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/threeSegOverlaysInOverlayMenu.png and b/tests/screenshots/chromium/MultipleSegmentationDataOverlays.spec.ts/threeSegOverlaysInOverlayMenu.png differ diff --git a/tests/screenshots/chromium/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayFirstImage.png b/tests/screenshots/chromium/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayFirstImage.png index 432304668..2f2d3a6f5 100644 Binary files a/tests/screenshots/chromium/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayFirstImage.png and b/tests/screenshots/chromium/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayFirstImage.png differ diff --git a/tests/screenshots/chromium/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayMiddleImage.png b/tests/screenshots/chromium/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayMiddleImage.png index cd3e12ed0..0096a753d 100644 Binary files a/tests/screenshots/chromium/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayMiddleImage.png and b/tests/screenshots/chromium/RTDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayMiddleImage.png differ diff --git a/tests/screenshots/chromium/RTDataOverlayNoHydrationThenMPR.spec.ts/rtDataOverlayNoHydrationPostMpr.png b/tests/screenshots/chromium/RTDataOverlayNoHydrationThenMPR.spec.ts/rtDataOverlayNoHydrationPostMpr.png index d69a33157..5b772fd4c 100644 Binary files a/tests/screenshots/chromium/RTDataOverlayNoHydrationThenMPR.spec.ts/rtDataOverlayNoHydrationPostMpr.png and b/tests/screenshots/chromium/RTDataOverlayNoHydrationThenMPR.spec.ts/rtDataOverlayNoHydrationPostMpr.png differ diff --git a/tests/screenshots/chromium/RTDataOverlayNoHydrationThenMPR.spec.ts/rtDataOverlayNoHydrationPreMpr.png b/tests/screenshots/chromium/RTDataOverlayNoHydrationThenMPR.spec.ts/rtDataOverlayNoHydrationPreMpr.png index 28df1882e..b3c51c6c3 100644 Binary files a/tests/screenshots/chromium/RTDataOverlayNoHydrationThenMPR.spec.ts/rtDataOverlayNoHydrationPreMpr.png and b/tests/screenshots/chromium/RTDataOverlayNoHydrationThenMPR.spec.ts/rtDataOverlayNoHydrationPreMpr.png differ diff --git a/tests/screenshots/chromium/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayFirstImage.png b/tests/screenshots/chromium/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayFirstImage.png index 353343514..bc7633048 100644 Binary files a/tests/screenshots/chromium/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayFirstImage.png and b/tests/screenshots/chromium/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayFirstImage.png differ diff --git a/tests/screenshots/chromium/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayMiddleImage.png b/tests/screenshots/chromium/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayMiddleImage.png index e21de24b9..f29f3920a 100644 Binary files a/tests/screenshots/chromium/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayMiddleImage.png and b/tests/screenshots/chromium/SEGDataOverlayForUnreferencedDisplaySetNoHydration.spec.ts/overlayMiddleImage.png differ diff --git a/tests/screenshots/chromium/SEGDataOverlayNoHydrationThenMPR.spec.ts/segDataOverlayNoHydrationPostMpr.png b/tests/screenshots/chromium/SEGDataOverlayNoHydrationThenMPR.spec.ts/segDataOverlayNoHydrationPostMpr.png index 9d2de88a0..0d7b2aa9a 100644 Binary files a/tests/screenshots/chromium/SEGDataOverlayNoHydrationThenMPR.spec.ts/segDataOverlayNoHydrationPostMpr.png and b/tests/screenshots/chromium/SEGDataOverlayNoHydrationThenMPR.spec.ts/segDataOverlayNoHydrationPostMpr.png differ diff --git a/tests/screenshots/chromium/SEGDataOverlayNoHydrationThenMPR.spec.ts/segDataOverlayNoHydrationPreMpr.png b/tests/screenshots/chromium/SEGDataOverlayNoHydrationThenMPR.spec.ts/segDataOverlayNoHydrationPreMpr.png index 2de21f278..f9d74f394 100644 Binary files a/tests/screenshots/chromium/SEGDataOverlayNoHydrationThenMPR.spec.ts/segDataOverlayNoHydrationPreMpr.png and b/tests/screenshots/chromium/SEGDataOverlayNoHydrationThenMPR.spec.ts/segDataOverlayNoHydrationPreMpr.png differ diff --git a/tests/utils/assertions.ts b/tests/utils/assertions.ts new file mode 100644 index 000000000..ff345e3e1 --- /dev/null +++ b/tests/utils/assertions.ts @@ -0,0 +1,15 @@ +import { Page } from '@playwright/test'; +import { expect } from 'playwright-test-coverage'; + +/** + * Asserts the number of Modality Load Badges present on the page. + */ +export async function assertNumberOfModalityLoadBadges({ + page, + expectedCount, +}: { + page: Page; + expectedCount: number; +}) { + await expect(page.locator('css=div[data-cy^="ModalityLoadBadge-"]')).toHaveCount(expectedCount); +}