sync: 对齐小程序 v1.0.2 生产代码并脱敏
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import type { AppMessage } from '@/api/message'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { collectMessagePages } from './pagination'
|
||||
|
||||
function item(id: number): AppMessage {
|
||||
return { id, messageId: id, messageLogId: id, messageType: 1, title: '通知', content: '', isRead: 0 }
|
||||
}
|
||||
|
||||
describe('消息分页完整性', () => {
|
||||
it('超过 100 条仍能加载完整列表', async () => {
|
||||
const fetch = vi.fn().mockResolvedValueOnce({ items: Array.from({ length: 100 }, (_, i) => item(i + 1)), total: 101 }).mockResolvedValueOnce({ items: [item(101)], total: 101 })
|
||||
expect((await collectMessagePages(fetch))?.length).toBe(101)
|
||||
expect(fetch).toHaveBeenCalledTimes(2)
|
||||
})
|
||||
it('过期请求不返回旧数据', async () => {
|
||||
expect(await collectMessagePages(vi.fn().mockResolvedValue({ items: [item(1)], total: 1 }), {}, () => false)).toBeNull()
|
||||
})
|
||||
it('重复分页不造成无限加载', async () => {
|
||||
const fetch = vi.fn().mockResolvedValue({ items: Array.from({ length: 100 }, (_, i) => item(i + 1)), total: 300 })
|
||||
await expect(collectMessagePages(fetch)).rejects.toThrow('分页未前进')
|
||||
})
|
||||
it('分页失败向调用者传播,不假装加载完整', async () => {
|
||||
await expect(collectMessagePages(vi.fn().mockRejectedValue(new Error('网络失败')))).rejects.toThrow('网络失败')
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user