* chore(tests): Update multiple screenshot test images for various specs * feat(screenshot-reviewer): Add screenshot review tool and update package.json scripts * fix(DICOMSRDisplayTool): Improve actor presence check in viewport * chore(tests): Update multiple screenshot assets for various specs * chore(tests): Integrate waitForPaintToSettle and waitForViewportsRendered in multiple specs for improved rendering stability * chore(tests): Update screenshot assets for SEGHydration and SEGNoHydration specs * test: update progressive loading screenshots * jest 30 test fixes for compatibility with pnpm cs3d * Use correct setDisplaySets instead of setDataId * fix: Naming change for LegacyVolumeViewport3D * Update to allow tolerance for contour tests * update * fix * refactor: Replace instanceof checks with utility functions for viewport type validation * fix: Update createSegmentationForViewport to handle undefined displaySetInstanceUID gracefully * bun lock * fix: Install cs3d with pnpm instead of bun * Update node version for playwright * Update to v5.0.0 of cs3d * fix: Build dependency * audit * Change to a web await retry assert * Fix timing related test failures * fix: Freehand close --------- Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
43 lines
1.6 KiB
JavaScript
43 lines
1.6 KiB
JavaScript
/**
|
|
* @jest-environment node
|
|
*
|
|
* Runs in node (not jsdom): jsdom (jest 30) exposes `window.location` as an
|
|
* unforgeable, non-configurable property that can't be replaced or stubbed.
|
|
* absoluteUrl only reads `window.location.origin` and this suite imports nothing
|
|
* that needs the DOM, so we run without jsdom and provide a plain `window`.
|
|
*/
|
|
import absoluteUrl from './absoluteUrl';
|
|
|
|
describe('absoluteUrl', () => {
|
|
const setOrigin = url => {
|
|
global.window = { location: { origin: url } };
|
|
};
|
|
|
|
afterEach(() => {
|
|
delete global.window;
|
|
});
|
|
|
|
test('should return /path_1/path_2/path_3/path_to_destination when the window.location.origin is http://dummy.com/path_1/path_2 and the path is /path_3/path_to_destination', () => {
|
|
setOrigin('http://dummy.com/path_1/path_2');
|
|
const absoluteUrlOutput = absoluteUrl('/path_3/path_to_destination');
|
|
expect(absoluteUrlOutput).toEqual('/path_1/path_2/path_3/path_to_destination');
|
|
});
|
|
|
|
test('should return / when the path is not defined', () => {
|
|
const absoluteUrlOutput = absoluteUrl(undefined);
|
|
expect(absoluteUrlOutput).toBe('/');
|
|
});
|
|
|
|
test('should return the original path when there path in the window.origin after the domain and port', () => {
|
|
setOrigin('http://dummy.com');
|
|
const absoluteUrlOutput = absoluteUrl('path_1/path_2/path_3');
|
|
expect(absoluteUrlOutput).toEqual('/path_1/path_2/path_3');
|
|
});
|
|
|
|
test('should be able to return the absolute path even when the path contains duplicates', () => {
|
|
setOrigin('http://dummy.com');
|
|
const absoluteUrlOutput = absoluteUrl('path_1/path_1/path_1');
|
|
expect(absoluteUrlOutput).toEqual('/path_1/path_1/path_1');
|
|
});
|
|
});
|