mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-09 02:47:45 +08:00
修复前端调试与基础交互问题
This commit is contained in:
@@ -12,6 +12,7 @@ describe('useSiteInfo', () => {
|
||||
beforeEach(() => {
|
||||
vi.resetModules()
|
||||
apiClientMocks.get.mockReset()
|
||||
document.title = ''
|
||||
})
|
||||
|
||||
it('loads public site info', async () => {
|
||||
@@ -23,10 +24,57 @@ describe('useSiteInfo', () => {
|
||||
})
|
||||
|
||||
const { useSiteInfo } = await import('../useSiteInfo')
|
||||
const { siteName, siteSubtitle, refreshSiteInfo } = useSiteInfo()
|
||||
const { siteName, siteSubtitle, siteInfoLoaded, refreshSiteInfo } = useSiteInfo()
|
||||
await refreshSiteInfo()
|
||||
|
||||
expect(siteName.value).toBe('Custom Aether')
|
||||
expect(siteSubtitle.value).toBe('Gateway')
|
||||
expect(siteInfoLoaded.value).toBe(true)
|
||||
expect(document.title).toBe('Custom Aether')
|
||||
})
|
||||
|
||||
it('keeps default site text hidden until public site info resolves', async () => {
|
||||
let resolveRequest: (value: { data: { site_name: string; site_subtitle: string } }) => void = () => {}
|
||||
apiClientMocks.get.mockReturnValue(new Promise((resolve) => {
|
||||
resolveRequest = resolve
|
||||
}))
|
||||
|
||||
const { useSiteInfo } = await import('../useSiteInfo')
|
||||
const { siteName, siteSubtitle, siteInfoLoaded } = useSiteInfo()
|
||||
|
||||
expect(siteName.value).toBe('')
|
||||
expect(siteSubtitle.value).toBe('')
|
||||
expect(siteInfoLoaded.value).toBe(false)
|
||||
expect(document.title).toBe('')
|
||||
|
||||
resolveRequest({
|
||||
data: {
|
||||
site_name: 'Configured Aether',
|
||||
site_subtitle: 'Configured Gateway',
|
||||
},
|
||||
})
|
||||
await new Promise(resolve => setTimeout(resolve, 0))
|
||||
|
||||
expect(siteName.value).toBe('Configured Aether')
|
||||
expect(siteSubtitle.value).toBe('Configured Gateway')
|
||||
expect(siteInfoLoaded.value).toBe(true)
|
||||
expect(document.title).toBe('Configured Aether')
|
||||
})
|
||||
|
||||
it('uses upstream defaults only after public site info fails', async () => {
|
||||
apiClientMocks.get.mockRejectedValue(new Error('network unavailable'))
|
||||
|
||||
const { useSiteInfo } = await import('../useSiteInfo')
|
||||
const { siteName, siteSubtitle, siteInfoLoaded, refreshSiteInfo } = useSiteInfo()
|
||||
|
||||
expect(siteName.value).toBe('')
|
||||
expect(siteSubtitle.value).toBe('')
|
||||
|
||||
await refreshSiteInfo()
|
||||
|
||||
expect(siteName.value).toBe('Aether')
|
||||
expect(siteSubtitle.value).toBe('AI Gateway')
|
||||
expect(siteInfoLoaded.value).toBe(true)
|
||||
expect(document.title).toBe('Aether')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user