feat(ECR-010): Ops-E 系统运营;修复登出解绑;P2 Complete
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s

落地管理员 RBAC/封禁/推送任务 stub,logout 解绑 device 并统一各页 ensureAccount,同时收口 P2 生日生成与状态文档。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-11 18:54:59 +08:00
co-authored by Cursor
parent 0ee4d4f5ae
commit 5ceb3ce749
85 changed files with 2098 additions and 103 deletions
+10 -3
View File
@@ -4,6 +4,9 @@ import LifeRhythmPage from './LifeRhythmPage.vue'
const { api } = vi.hoisted(() => ({
api: {
authMe: vi.fn(),
listProfiles: vi.fn(),
getLatestReport: vi.fn(),
createProfile: vi.fn(),
createRhythm: vi.fn(),
getReport: vi.fn(),
@@ -14,12 +17,16 @@ const { api } = vi.hoisted(() => ({
vi.mock('../api/client', () => ({ api }))
vi.mock('vue-router', () => ({
useRoute: () => ({ query: { y: '1992', m: '6', d: '8' } }),
useRouter: () => ({ back: vi.fn() }),
useRoute: () => ({ query: { y: '1992', m: '6', d: '8' }, fullPath: '/rhythm' }),
useRouter: () => ({ back: vi.fn(), replace: vi.fn() }),
}))
describe('LifeRhythmPage', () => {
beforeEach(() => vi.clearAllMocks())
beforeEach(() => {
vi.clearAllMocks()
api.authMe.mockResolvedValue({ id: 'u1' })
api.listProfiles.mockResolvedValue({ items: [] })
})
it('creates rhythm report from birth query', async () => {
api.createProfile.mockResolvedValue({ id: 'p1' })