chore: 保存工作副本——客户端授权新契约(双端点/验签/令牌/周检)与桌面会话可靠性改进

This commit is contained in:
Logan.Li committed 2026-09-14 22:10:22 +08:00
1 parent f71eef0eba
commit ae6093c9b3
163 files changed
+4911 -2494

No files matched your search

+37
View File
@@ -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)
})
})