fix: 提升管理端启动与导航稳定性

- 等待初始路由就绪并提供可恢复的启动失败页面

- 收敛失效登录导航并按需加载 SVG 图标资源
This commit is contained in:
2026-07-24 19:02:28 +08:00
parent a75f7baf1b
commit da59c713f9
12 changed files with 259 additions and 13 deletions

View File

@@ -0,0 +1,40 @@
import { describe, expect, it, vi } from 'vitest';
import { resolveNavigationUserInfo } from './navigation-user-info';
describe('navigation user info', () => {
it('uses cached user info without issuing a request', async () => {
const cachedUserInfo = { id: 1 };
const fetchUserInfo = vi.fn();
await expect(
resolveNavigationUserInfo({
cachedUserInfo,
fetchUserInfo,
getAccessToken: () => 'token',
}),
).resolves.toBe(cachedUserInfo);
expect(fetchUserInfo).not.toHaveBeenCalled();
});
it('returns null after an expired token has been cleared', async () => {
await expect(
resolveNavigationUserInfo({
cachedUserInfo: null,
fetchUserInfo: () => Promise.reject(new Error('expired')),
getAccessToken: () => null,
}),
).resolves.toBeNull();
});
it('keeps non-authentication failures visible', async () => {
const error = new Error('network unavailable');
await expect(
resolveNavigationUserInfo({
cachedUserInfo: null,
fetchUserInfo: () => Promise.reject(error),
getAccessToken: () => 'token',
}),
).rejects.toBe(error);
});
});