mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-10-06 13:54:10 +08:00
feat: 新增群员统计与退群事件,并把本地索引集中到设置页
- 群员统计:档案中按群统计发言排行与未发言成员,可复制纯文本、按平台能力发送 - 退群事件永久保存,并以本地推断条目并入档案消息流 - 设置新增本地索引页,集中管理聊天记录索引与图片文字索引
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
import { render, screen, waitFor } from '@testing-library/react'
|
||||
import userEvent from '@testing-library/user-event'
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { ChatHeader } from '../../src/renderer/src/components/chat/ChatHeader'
|
||||
import { TooltipProvider } from '../../src/renderer/src/components/ui'
|
||||
import type { Contact } from '../../src/shared/types'
|
||||
|
||||
const groupContact: Contact = {
|
||||
m_nsUsrName: '研发群@chatroom',
|
||||
m_nsNickName: '研发群',
|
||||
md5: 'g'.repeat(32),
|
||||
type: 'group'
|
||||
}
|
||||
|
||||
const userContact: Contact = {
|
||||
m_nsUsrName: 'wxid_friend',
|
||||
m_nsNickName: '好友',
|
||||
md5: 'u'.repeat(32),
|
||||
type: 'user'
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
;(window as unknown as { api: Record<string, unknown> }).api = {
|
||||
getGroupMemberStats: vi.fn(),
|
||||
getPersonalWechatSenderStatus: vi.fn().mockResolvedValue({ canSendText: false })
|
||||
}
|
||||
})
|
||||
|
||||
function renderHeader(contact: Contact, isGroupChat: boolean): void {
|
||||
render(
|
||||
<TooltipProvider>
|
||||
<ChatHeader
|
||||
contact={contact}
|
||||
isGroupChat={isGroupChat}
|
||||
loadedCount={10}
|
||||
filteredCount={10}
|
||||
contentFilter=""
|
||||
isAiLoading={false}
|
||||
onContentFilterChange={vi.fn()}
|
||||
onTestSend={vi.fn()}
|
||||
onOpenAiSettings={vi.fn()}
|
||||
/>
|
||||
</TooltipProvider>
|
||||
)
|
||||
}
|
||||
|
||||
async function openMoreMenu(): Promise<void> {
|
||||
const user = userEvent.setup()
|
||||
await user.click(screen.getByRole('button', { name: '更多功能' }))
|
||||
await waitFor(() => expect(screen.getByText('刷新数据')).toBeTruthy())
|
||||
}
|
||||
|
||||
describe('ChatHeader · 群发言统计入口', () => {
|
||||
it('群聊显示「群发言统计」入口', async () => {
|
||||
renderHeader(groupContact, true)
|
||||
await openMoreMenu()
|
||||
expect(screen.getByText('群发言统计')).toBeTruthy()
|
||||
})
|
||||
|
||||
it('非群聊不显示「群发言统计」入口', async () => {
|
||||
renderHeader(userContact, false)
|
||||
await openMoreMenu()
|
||||
expect(screen.queryByText('群发言统计')).toBeNull()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user