From 031897c73ab8fe088c293c34d2fa4e97192fb717 Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Thu, 14 May 2026 22:37:16 +0300 Subject: [PATCH] test(editor): cover auto-layout padding editor --- .../overlays/useCanvasVirtualReference.ts | 8 +- src/components/EditorCanvas.vue | 13 +- .../basic.spec.ts} | 0 .../drag.spec.ts} | 0 .../editor/auto-layout/padding-editor.spec.ts | 115 ++++++++++++++++++ 5 files changed, 130 insertions(+), 6 deletions(-) rename tests/e2e/editor/{auto-layout.spec.ts => auto-layout/basic.spec.ts} (100%) rename tests/e2e/editor/{auto-layout-drag.spec.ts => auto-layout/drag.spec.ts} (100%) create mode 100644 tests/e2e/editor/auto-layout/padding-editor.spec.ts diff --git a/packages/vue/src/canvas/overlays/useCanvasVirtualReference.ts b/packages/vue/src/canvas/overlays/useCanvasVirtualReference.ts index 89fc5a8f7..75e9a3571 100644 --- a/packages/vue/src/canvas/overlays/useCanvasVirtualReference.ts +++ b/packages/vue/src/canvas/overlays/useCanvasVirtualReference.ts @@ -17,11 +17,15 @@ export function useCanvasVirtualReference( const canvas = canvasRef.value if (!point || !canvas) return null + const zoom = editor.state.zoom + const panX = editor.state.panX + const panY = editor.state.panY + return { getBoundingClientRect() { const rect = canvas.getBoundingClientRect() - const x = rect.left + point.x * editor.state.zoom + editor.state.panX - const y = rect.top + point.y * editor.state.zoom + editor.state.panY + const x = rect.left + point.x * zoom + panX + const y = rect.top + point.y * zoom + panY return new DOMRect(x, y, 0, 0) } } diff --git a/src/components/EditorCanvas.vue b/src/components/EditorCanvas.vue index 2322f8db7..323058509 100644 --- a/src/components/EditorCanvas.vue +++ b/src/components/EditorCanvas.vue @@ -78,8 +78,6 @@ const paddingSideIcons = { left: IconLucidePanelLeft } satisfies Record<'top' | 'right' | 'bottom' | 'left', Component> -const paddingEditorRef = ref(null) - const paddingEditorAnchor = computed(() => { const edit = autoLayoutPaddingEdit.value if (!edit) return null @@ -102,7 +100,9 @@ const paddingEditorIcon = computed(() => { watch(autoLayoutPaddingEdit, async (edit) => { if (!edit) return await nextTick() - const input = paddingEditorRef.value?.querySelector('input') + const input = document.querySelector( + '[data-test-id="auto-layout-padding-editor"] input' + ) input?.focus() input?.select() }) @@ -145,7 +145,6 @@ const cursor = computed(() => toolCursor(store.state.activeTool, cursorOverride. toolCursor(store.state.activeTool, cursorOverride. data-test-id="auto-layout-padding-input" @update:model-value="updateAutoLayoutPaddingEdit" @commit="(value: number) => commitAutoLayoutPaddingEdit(value)" + @editing-change=" + (editing: boolean) => + !editing && + autoLayoutPaddingEdit && + commitAutoLayoutPaddingEdit(autoLayoutPaddingEdit.value) + " >