mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-08-17 11:37:06 +08:00
- 新增微信账号发现、环境诊断和分步数据库连接引导 - 支持按账号安全保存数据库密钥及快速切换账号 - 完善 WCDB 历史消息分片读取和分页状态提示 - 支持导出图片、视频和语音,提供原图优先及缩略图回退 - 更新安装指引、兼容版本说明和相关自动化测试
34 lines
1.2 KiB
TypeScript
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)
|
|
})
|
|
})
|