diff --git a/packages/core/src/canvas/labels/cache.ts b/packages/core/src/canvas/labels/cache.ts index 8e1198106..0998cd643 100644 --- a/packages/core/src/canvas/labels/cache.ts +++ b/packages/core/src/canvas/labels/cache.ts @@ -25,7 +25,7 @@ interface Viewport { } const LABEL_TYPES = new Set(['COMPONENT', 'COMPONENT_SET']) -const COMPONENT_LABEL_PARENT_TYPES = new Set(['CANVAS', 'SECTION']) +const COMPONENT_LABEL_PARENT_TYPES = new Set(['CANVAS', 'SECTION', 'COMPONENT_SET']) function isInViewport(absX: number, absY: number, w: number, h: number, vp: Viewport): boolean { return absX + w >= vp.x && absY + h >= vp.y && absX <= vp.x + vp.w && absY <= vp.y + vp.h diff --git a/tests/e2e/canvas/labels/component.spec.ts b/tests/e2e/canvas/labels/component.spec.ts index 4293da92e..51463f453 100644 --- a/tests/e2e/canvas/labels/component.spec.ts +++ b/tests/e2e/canvas/labels/component.spec.ts @@ -62,6 +62,11 @@ test('component labels in component sets are hit-tested above the component boun const componentTopY = 80 + (100 + 40) * 2 const componentLeftX = 80 + (100 + 20) * 2 + await expect(page).toHaveScreenshot('component-set-member-label.png', { + clip: { x: box.x + componentLeftX, y: box.y + componentTopY - 24, width: 240, height: 24 }, + maxDiffPixels: 0, + threshold: 0 + }) await page.mouse.click(box.x + componentLeftX + 24, box.y + componentTopY - 12) await canvas.waitForRender() diff --git a/tests/e2e/canvas/labels/component.spec.ts-snapshots/component-set-member-label-openpencil-darwin.png b/tests/e2e/canvas/labels/component.spec.ts-snapshots/component-set-member-label-openpencil-darwin.png new file mode 100644 index 000000000..f946a6ecd Binary files /dev/null and b/tests/e2e/canvas/labels/component.spec.ts-snapshots/component-set-member-label-openpencil-darwin.png differ