Files
WechatExplorer/tests/unit/message-pagination.test.ts
T
Wxw-Gu 08e1294e5d feat: 完善多账号连接诊断与聊天媒体导出
- 新增微信账号发现、环境诊断和分步数据库连接引导
- 支持按账号安全保存数据库密钥及快速切换账号
- 完善 WCDB 历史消息分片读取和分页状态提示
- 支持导出图片、视频和语音,提供原图优先及缩略图回退
- 更新安装指引、兼容版本说明和相关自动化测试
2026-08-03 10:43:14 +08:00

34 lines
1.2 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import type { Message } from '../../src/shared/types'
import { mergeMessagePages } from '../../src/renderer/src/utils/message-pages'
const makeMessage = (id: string, createTime: number): Message => ({
id,
from: 'user',
type: '文本',
datetime: new Date(createTime * 1000).toISOString(),
content: id,
isSender: false,
createTime
})
describe('message pagination', () => {
it('sorts older pages and removes overlapping records', () => {
const merged = mergeMessagePages(
[makeMessage('oldest', 1), makeMessage('overlap', 2)],
[makeMessage('overlap', 2), makeMessage('latest', 3)]
)
expect(merged.map((message) => message.id)).toEqual(['oldest', 'overlap', 'latest'])
})
it('keeps cross-year pages continuous through the earliest fixture record', () => {
const page2025 = [makeMessage('2025', 1_735_689_600), makeMessage('2026', 1_767_225_600)]
const page2017 = [makeMessage('2017', 1_483_228_800), makeMessage('2025', 1_735_689_600)]
const merged = mergeMessagePages(page2017, page2025)
expect(merged.map((message) => message.id)).toEqual(['2017', '2025', '2026'])
expect(new Set(merged.map((message) => message.id)).size).toBe(merged.length)
})
})