chore: 保存工作副本——客户端授权新契约(双端点/验签/令牌/周检)与桌面会话可靠性改进
This commit is contained in:
1 parent
f71eef0eba
commit
ae6093c9b3
163 files changed
+4911
-2494
No files matched your search
@@ -0,0 +1,37 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { render, screen } from '@testing-library/react'
|
||||
import AppOverlay from '../../src/components/common/AppOverlay'
|
||||
|
||||
describe('AppOverlay', () => {
|
||||
it('does not leave a full-window layer in the DOM when closed', () => {
|
||||
const { rerender } = render(
|
||||
<AppOverlay open={false}>
|
||||
<div>blocked</div>
|
||||
</AppOverlay>
|
||||
)
|
||||
expect(document.querySelector('[data-app-overlay]')).toBeNull()
|
||||
|
||||
rerender(
|
||||
<AppOverlay open className="z-[100]">
|
||||
<div>panel</div>
|
||||
</AppOverlay>
|
||||
)
|
||||
const overlay = document.querySelector('[data-app-overlay]')
|
||||
expect(overlay).toBeTruthy()
|
||||
expect(overlay).toHaveClass('app-overlay')
|
||||
expect(screen.getByText('panel')).toBeVisible()
|
||||
})
|
||||
|
||||
it('portals onto document.body so layout overflow cannot trap it', () => {
|
||||
render(
|
||||
<div id="trap" className="overflow-hidden">
|
||||
<AppOverlay open>
|
||||
<span>layer</span>
|
||||
</AppOverlay>
|
||||
</div>
|
||||
)
|
||||
const overlay = document.querySelector('[data-app-overlay]')
|
||||
expect(overlay?.parentElement).toBe(document.body)
|
||||
expect(document.getElementById('trap')?.contains(overlay)).toBe(false)
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user