From 663b3842b2e8d529495c6577bf799dc82678c20d Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Fri, 12 Jun 2026 11:43:57 +0200 Subject: [PATCH 1/2] feat(cameraTests): Add e2e tests for camera related tools --- app/components/CameraManager.vue | 1 + app/components/CameraManager/List.vue | 1 + app/components/CameraManager/Saver.vue | 2 ++ app/components/CameraOrientation.vue | 2 ++ app/components/ViewToolbar.vue | 1 + app/components/Viewer/Ui.vue | 2 ++ 6 files changed, 9 insertions(+) diff --git a/app/components/CameraManager.vue b/app/components/CameraManager.vue index baca19cdf..3c56ec4ef 100644 --- a/app/components/CameraManager.vue +++ b/app/components/CameraManager.vue @@ -38,6 +38,7 @@ const { showDialog, width } = defineProps({ size="small" color="white" class="text-caption text-none" + data-testid="closeCameraManagerButton" @click="emit('close')" >Close diff --git a/app/components/CameraManager/List.vue b/app/components/CameraManager/List.vue index 38f3ca6bc..d30b578a7 100644 --- a/app/components/CameraManager/List.vue +++ b/app/components/CameraManager/List.vue @@ -54,6 +54,7 @@ async function saveRename() { color="success" size="x-small" class="mr-1" + :data-testid="'restoreCameraPositionButton_' + position.name" @click="restorePosition(position.id)" > mdi-play diff --git a/app/components/CameraManager/Saver.vue b/app/components/CameraManager/Saver.vue index 7c0a569c1..c97ee1d80 100644 --- a/app/components/CameraManager/Saver.vue +++ b/app/components/CameraManager/Saver.vue @@ -27,6 +27,7 @@ async function saveCurrentPosition() { v-model="newPositionName" label="Position Name" placeholder="e.g. Front View" + data-testid="cameraPositionNameInput" density="compact" variant="outlined" hide-details @@ -39,6 +40,7 @@ async function saveCurrentPosition() { variant="elevated" block size="small" + data-testid="saveCameraPositionButton" :disabled="!newPositionName" @click="saveCurrentPosition" height="32" diff --git a/app/components/CameraOrientation.vue b/app/components/CameraOrientation.vue index 39882f1a6..f8300a8e6 100644 --- a/app/components/CameraOrientation.vue +++ b/app/components/CameraOrientation.vue @@ -212,6 +212,7 @@ watch(hoveredFace, (newFace, oldFace) => { size="32" class="satellite-node position-absolute" :style="orientation.position" + :data-testid="'cameraOrientation' + orientation.vtkKey + 'Button'" @mouseenter="hoveredFace = orientation.face" @mouseleave="hoveredFace = undefined" @click.stop="emit('select', orientation.value)" @@ -241,6 +242,7 @@ watch(hoveredFace, (newFace, oldFace) => { size="32" variant="text" class="ma-1" + :data-testid="'cameraOrientation' + orientation.vtkKey + 'Button'" @mouseenter="hoveredFace = orientation.face" @mouseleave="hoveredFace = undefined" @click.stop="emit('select', orientation.value)" diff --git a/app/components/ViewToolbar.vue b/app/components/ViewToolbar.vue index 03644e9ae..110c6fa06 100644 --- a/app/components/ViewToolbar.vue +++ b/app/components/ViewToolbar.vue @@ -180,6 +180,7 @@ const camera_options = computed(() => [ @@ -116,6 +117,7 @@ defineExpose({ get_viewer_id }); size="large" variant="flat" class="pick-pulse" + data-testid="hoverHighlightChip" style="pointer-events: auto" @click="stopHoverHighlight" > From 6980c839eedb166d680a412435274d44a436b6d1 Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Fri, 12 Jun 2026 12:29:35 +0200 Subject: [PATCH 2/2] screenshot tests --- app/components/Screenshot.vue | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/components/Screenshot.vue b/app/components/Screenshot.vue index 0968eaec8..4a5e98c86 100644 --- a/app/components/Screenshot.vue +++ b/app/components/Screenshot.vue @@ -96,6 +96,7 @@ watch(screenshot_type, (value) => { value="file" prepend-icon="mdi-file-download-outline" size="small" + data-testid="screenshotFileButton" class="text-caption text-none" > File @@ -104,6 +105,7 @@ watch(screenshot_type, (value) => { value="clipboard" prepend-icon="mdi-content-copy" size="small" + data-testid="screenshotClipboardButton" class="text-caption text-none" > Clipboard @@ -119,6 +121,7 @@ watch(screenshot_type, (value) => { label="File name" variant="outlined" density="compact" + data-testid="screenshotFileNameInput" hide-details class="text-caption" > @@ -130,6 +133,7 @@ watch(screenshot_type, (value) => { label="Extension" variant="outlined" density="compact" + data-testid="screenshotExtensionSelect" hide-details required class="text-caption" @@ -143,6 +147,7 @@ watch(screenshot_type, (value) => { v-model="include_background" :disabled="screenshot_type === 'file' && output_extension !== 'png'" label="Include background" + data-testid="screenshotIncludeBackgroundSwitch" density="compact" hide-details inset @@ -158,6 +163,7 @@ watch(screenshot_type, (value) => { variant="text" size="small" color="white" + data-testid="screenshotCancelButton" class="text-caption text-none" @click="show = false" > @@ -167,6 +173,7 @@ watch(screenshot_type, (value) => { variant="outlined" size="small" class="text-caption text-none" + data-testid="screenshotActionButton" :disabled="(screenshot_type === 'file' && !filename) || !output_extension" color="white" @click="takeScreenshot()"