mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-08-18 20:19:09 +08:00
test: 建立桌面端自动化回归测试体系并完善跨平台 CI
(cherry picked from commit 74267ae2f63f8256c3da84b04f5b330e6e9d4c67)
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { parseMessageContent } from '../../src/main/message-parser'
|
||||
|
||||
describe('message parser', () => {
|
||||
it('parses image, voice and sticker messages without confusing their types', () => {
|
||||
expect(parseMessageContent('<img md5="0123456789abcdef0123456789abcdef" />', 3)).toMatchObject({
|
||||
type: 'image',
|
||||
md5: '0123456789abcdef0123456789abcdef'
|
||||
})
|
||||
expect(parseMessageContent('voice fixture', 34)).toEqual({ type: 'voice' })
|
||||
expect(
|
||||
parseMessageContent(
|
||||
'<emoji md5="abcdefabcdefabcdefabcdefabcdefab" cdnurl="https://fixture.invalid/a" />',
|
||||
47
|
||||
)
|
||||
).toMatchObject({ type: 'sticker', md5: 'abcdefabcdefabcdefabcdefabcdefab' })
|
||||
})
|
||||
|
||||
it('parses merged forwards and preserves nested visible text', () => {
|
||||
const parsed = parseMessageContent(
|
||||
'<appmsg><type>19</type><title>转发多条内容</title><recorditem><dataitem datatype="1"><sourcename>测试成员</sourcename><datadesc>脱敏内容</datadesc></dataitem></recorditem></appmsg>',
|
||||
49
|
||||
)
|
||||
expect(parsed.type).toBe('forwardBundle')
|
||||
if (parsed.type === 'forwardBundle') {
|
||||
expect(parsed.title).toBe('转发多条内容')
|
||||
expect(parsed.items.map((item) => item.text).join(' ')).toContain('脱敏内容')
|
||||
}
|
||||
})
|
||||
|
||||
it('uses an explicit unknown type for unsupported messages', () => {
|
||||
expect(parseMessageContent('opaque fixture payload', 999)).toEqual({
|
||||
type: 'unknown',
|
||||
raw: 'opaque fixture payload',
|
||||
messageType: 999
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user