Skip to content

Commit fe9bfbe

Browse files
authored
test(canvas): stabilize breakpoint dimming assertion
Wait for breakpoint dimming DOM state before asserting in the release-blocking canvas test.
1 parent efbd32d commit fe9bfbe

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

src/__tests__/canvas/breakpointProps.test.tsx

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { describe, expect, it, beforeEach } from 'bun:test'
22
import React from 'react'
3-
import { act, fireEvent, render, screen, cleanup } from '@testing-library/react'
3+
import { act, fireEvent, render, screen, cleanup, waitFor } from '@testing-library/react'
44
import { readFileSync } from 'fs'
55
import { useEditorStore } from '@site/store/store'
66
import { BreakpointFrame } from '@site/canvas/BreakpointFrame'
@@ -130,7 +130,7 @@ describe('canvas breakpoint rendering', () => {
130130
expect(desktopNode.getAttribute('data-hovered')).toBe('true')
131131
})
132132

133-
it('dims inactive breakpoint frames only while editing a selected node in the open properties panel', () => {
133+
it('dims inactive breakpoint frames only while editing a selected node in the open properties panel', async () => {
134134
const site = useEditorStore.getState().createSite('Breakpoint Editing Focus')
135135
const page = site.pages[0]
136136
const textId = useEditorStore.getState().insertNode('base.text', {
@@ -146,13 +146,14 @@ describe('canvas breakpoint rendering', () => {
146146

147147
const { rerender } = render(<CanvasRoot />)
148148

149-
const tabletFrame = document.querySelector('[data-breakpoint-id="tablet"]')?.parentElement
150-
const mobileFrame = document.querySelector('[data-breakpoint-id="mobile"]')?.parentElement
151-
const desktopFrame = document.querySelector('[data-breakpoint-id="desktop"]')?.parentElement
149+
const frameWrapper = (breakpointId: string) =>
150+
document.querySelector(`[data-breakpoint-id="${breakpointId}"]`)?.parentElement
152151

153-
expect(tabletFrame?.getAttribute('data-breakpoint-dimmed')).toBeNull()
154-
expect(mobileFrame?.getAttribute('data-breakpoint-dimmed')).toBe('true')
155-
expect(desktopFrame?.getAttribute('data-breakpoint-dimmed')).toBe('true')
152+
await waitFor(() => {
153+
expect(frameWrapper('tablet')?.getAttribute('data-breakpoint-dimmed')).toBeNull()
154+
expect(frameWrapper('mobile')?.getAttribute('data-breakpoint-dimmed')).toBe('true')
155+
expect(frameWrapper('desktop')?.getAttribute('data-breakpoint-dimmed')).toBe('true')
156+
})
156157

157158
act(() => {
158159
useEditorStore.setState({
@@ -161,8 +162,10 @@ describe('canvas breakpoint rendering', () => {
161162
})
162163
rerender(<CanvasRoot />)
163164

164-
expect(mobileFrame?.getAttribute('data-breakpoint-dimmed')).toBeNull()
165-
expect(desktopFrame?.getAttribute('data-breakpoint-dimmed')).toBeNull()
165+
await waitFor(() => {
166+
expect(frameWrapper('mobile')?.getAttribute('data-breakpoint-dimmed')).toBeNull()
167+
expect(frameWrapper('desktop')?.getAttribute('data-breakpoint-dimmed')).toBeNull()
168+
})
166169

167170
const css = readFileSync(BREAKPOINT_FRAME_CSS, 'utf-8')
168171
expect(css).toContain('.frameWrapperDimmed')

0 commit comments

Comments
 (0)