Skip to content

Commit 19f89cd

Browse files
Copilotmattcosta7
andauthored
Fix test isolation and add flag transition coverage for dialog scroll optimization (#7396)
Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: mattcosta7 <[email protected]>
1 parent 0163141 commit 19f89cd

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

packages/react/src/Dialog/Dialog.test.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
import React from 'react'
22
import {render, fireEvent, waitFor} from '@testing-library/react'
3-
import {describe, expect, it, vi} from 'vitest'
3+
import {describe, expect, it, vi, beforeEach} from 'vitest'
44
import userEvent from '@testing-library/user-event'
55
import {Dialog} from './Dialog'
66
import {Button} from '../Button'
77
import {implementsClassName} from '../utils/testing'
88
import classes from './Dialog.module.css'
99
import {FeatureFlags} from '../FeatureFlags'
10+
import {__resetDialogScrollOptimizedCount} from '../FeatureFlags/FeatureFlags'
1011

1112
describe('Dialog', () => {
13+
beforeEach(() => {
14+
__resetDialogScrollOptimizedCount()
15+
})
16+
1217
implementsClassName(Dialog, classes.Dialog)
1318
it('renders with role "dialog" by default', () => {
1419
const {getByRole} = render(<Dialog onClose={() => {}}>Pay attention to me</Dialog>)

packages/react/src/FeatureFlags/__tests__/FeatureFlags.test.tsx

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,5 +189,47 @@ describe('FeatureFlags', () => {
189189
unmount3()
190190
expect(document.body.hasAttribute('data-dialog-scroll-optimized')).toBe(false)
191191
})
192+
193+
it('should handle flag value changing from false to true', () => {
194+
const {rerender, unmount} = render(
195+
<FeatureFlags flags={{primer_react_css_has_selector_perf: false}}>
196+
<div>Content</div>
197+
</FeatureFlags>,
198+
)
199+
200+
expect(document.body.hasAttribute('data-dialog-scroll-optimized')).toBe(false)
201+
202+
rerender(
203+
<FeatureFlags flags={{primer_react_css_has_selector_perf: true}}>
204+
<div>Content</div>
205+
</FeatureFlags>,
206+
)
207+
208+
expect(document.body.hasAttribute('data-dialog-scroll-optimized')).toBe(true)
209+
210+
unmount()
211+
expect(document.body.hasAttribute('data-dialog-scroll-optimized')).toBe(false)
212+
})
213+
214+
it('should handle flag value changing from true to false', () => {
215+
const {rerender, unmount} = render(
216+
<FeatureFlags flags={{primer_react_css_has_selector_perf: true}}>
217+
<div>Content</div>
218+
</FeatureFlags>,
219+
)
220+
221+
expect(document.body.hasAttribute('data-dialog-scroll-optimized')).toBe(true)
222+
223+
rerender(
224+
<FeatureFlags flags={{primer_react_css_has_selector_perf: false}}>
225+
<div>Content</div>
226+
</FeatureFlags>,
227+
)
228+
229+
expect(document.body.hasAttribute('data-dialog-scroll-optimized')).toBe(false)
230+
231+
unmount()
232+
expect(document.body.hasAttribute('data-dialog-scroll-optimized')).toBe(false)
233+
})
192234
})
193235
})

0 commit comments

Comments
 (0)