145 lines
4.5 KiB
TypeScript
145 lines
4.5 KiB
TypeScript
import {
|
|
checkForScreenshot,
|
|
screenShotPaths,
|
|
test,
|
|
visitStudy,
|
|
expect,
|
|
waitForViewportsRendered,
|
|
} from './utils';
|
|
import { assertBoundingBoxIsContainedWithin } from './utils/assertions';
|
|
|
|
async function expectSelectedSeriesExistsInOptions(seriesSelect) {
|
|
const selectedSeriesLabel = (await seriesSelect.value.innerText()).trim();
|
|
await seriesSelect.click();
|
|
const optionCount = await seriesSelect.options.count();
|
|
let hasMatchingOption = false;
|
|
|
|
for (let index = 0; index < optionCount; index++) {
|
|
const optionText = (await seriesSelect.options.nth(index).innerText()).split('\n')[0].trim();
|
|
if (optionText === selectedSeriesLabel) {
|
|
hasMatchingOption = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
await expect(hasMatchingOption).toBeTruthy();
|
|
}
|
|
|
|
test('should display the dicom tag browser', async ({ page, mainToolbarPageObject }) => {
|
|
const studyInstanceUID = '1.3.6.1.4.1.25403.345050719074.3824.20170125095438.5';
|
|
const mode = 'viewer';
|
|
await visitStudy(page, studyInstanceUID, mode, 2000);
|
|
|
|
await mainToolbarPageObject.moreTools.tagBrowser.click();
|
|
await checkForScreenshot(
|
|
page,
|
|
page,
|
|
screenShotPaths.dicomTagBrowser.dicomTagBrowserDisplayedCorrectly
|
|
);
|
|
});
|
|
|
|
test('should render the scroll bar with the correct look-and-feel', async ({
|
|
page,
|
|
mainToolbarPageObject,
|
|
DOMOverlayPageObject,
|
|
}) => {
|
|
const studyInstanceUID = '1.3.6.1.4.1.25403.345050719074.3824.20170125095438.5';
|
|
const mode = 'viewer';
|
|
await visitStudy(page, studyInstanceUID, mode, 2000);
|
|
|
|
await mainToolbarPageObject.moreTools.tagBrowser.click();
|
|
|
|
const dicomTagBrowser = DOMOverlayPageObject.dialog.dicomTagBrowser;
|
|
await dicomTagBrowser.waitVisible();
|
|
|
|
await checkForScreenshot({
|
|
page,
|
|
normalizedClip: { x: 0.77, y: 0.25, width: 0.03, height: 0.75 },
|
|
screenshotPath: screenShotPaths.dicomTagBrowser.scrollBarRenderedProperly,
|
|
});
|
|
});
|
|
|
|
test('should display the long series name properly within the series select button', async ({
|
|
page,
|
|
mainToolbarPageObject,
|
|
DOMOverlayPageObject,
|
|
}) => {
|
|
const studyInstanceUID = '1.3.6.1.4.1.14519.5.2.1.5099.8010.217836670708542506360829799868';
|
|
const mode = 'viewer';
|
|
await visitStudy(page, studyInstanceUID, mode, 2000);
|
|
|
|
await mainToolbarPageObject.moreTools.tagBrowser.click();
|
|
const dicomTagBrowser = DOMOverlayPageObject.dialog.dicomTagBrowser;
|
|
|
|
await dicomTagBrowser.waitVisible();
|
|
|
|
const seriesSelect = dicomTagBrowser.seriesSelect;
|
|
|
|
const selectedOptionText = await seriesSelect.selectOption(6);
|
|
|
|
await expect(seriesSelect.value).toContainText(selectedOptionText);
|
|
|
|
const triggerBox = await seriesSelect.trigger.boundingBox();
|
|
const textBox = await seriesSelect.value.boundingBox();
|
|
|
|
await assertBoundingBoxIsContainedWithin({
|
|
innerBox: textBox,
|
|
outerBox: triggerBox,
|
|
innerBoxLabel: 'text',
|
|
outerBoxLabel: 'trigger',
|
|
});
|
|
});
|
|
|
|
test('should open DICOM Tag Browser from empty viewport and show default series', async ({
|
|
page,
|
|
mainToolbarPageObject,
|
|
viewportPageObject,
|
|
DOMOverlayPageObject,
|
|
}) => {
|
|
const studyInstanceUID = '1.3.6.1.4.1.25403.345050719074.3824.20170125095258.1';
|
|
const mode = 'viewer';
|
|
await visitStudy(page, studyInstanceUID, mode, 2000);
|
|
|
|
// Switch to 3x3 layout
|
|
await mainToolbarPageObject.layoutSelection.click();
|
|
await page.getByTestId('Layout-2-2').click();
|
|
|
|
await waitForViewportsRendered(page);
|
|
|
|
await viewportPageObject.getNthLocator(6).click();
|
|
|
|
await mainToolbarPageObject.moreTools.tagBrowser.click();
|
|
|
|
const dicomTagBrowser = DOMOverlayPageObject.dialog.dicomTagBrowser;
|
|
await dicomTagBrowser.waitVisible();
|
|
|
|
const seriesSelect = dicomTagBrowser.seriesSelect;
|
|
await expectSelectedSeriesExistsInOptions(seriesSelect);
|
|
});
|
|
|
|
test('should open DICOM Tag Browser with active viewport series when viewport has display set', async ({
|
|
page,
|
|
mainToolbarPageObject,
|
|
viewportPageObject,
|
|
DOMOverlayPageObject,
|
|
}) => {
|
|
const studyInstanceUID = '1.3.6.1.4.1.25403.345050719074.3824.20170125095258.1';
|
|
const mode = 'viewer';
|
|
await visitStudy(page, studyInstanceUID, mode, 2000);
|
|
|
|
await mainToolbarPageObject.layoutSelection.click();
|
|
await page.getByTestId('Layout-2-2').click();
|
|
|
|
await waitForViewportsRendered(page);
|
|
|
|
await (await viewportPageObject.getNth(2)).pane.click();
|
|
|
|
await mainToolbarPageObject.moreTools.tagBrowser.click();
|
|
|
|
const dicomTagBrowser = DOMOverlayPageObject.dialog.dicomTagBrowser;
|
|
await dicomTagBrowser.waitVisible();
|
|
|
|
const seriesSelect = dicomTagBrowser.seriesSelect;
|
|
await expectSelectedSeriesExistsInOptions(seriesSelect);
|
|
});
|