Files
hermes-desktop/tests/client/chat-message-mobile-layout.test.ts
toor 01d9e301fc
Build / build (push) Canceled after 0s
Playwright / browser (push) Canceled after 0s
initialize Electron desktop app and remove unused files
2026-10-25 01:09:01 +08:00

60 lines
3.0 KiB
TypeScript

// @vitest-environment jsdom
import { readFileSync } from 'fs'
import { describe, expect, it } from 'vitest'
describe('chat message mobile layout guards', () => {
it('keeps chat message containers shrinkable on narrow screens', () => {
const chatPanel = readFileSync('packages/client/src/components/hermes/chat/ChatPanel.vue', 'utf8')
const messageList = readFileSync('packages/client/src/components/hermes/chat/MessageList.vue', 'utf8')
const virtualList = readFileSync('packages/client/src/components/hermes/chat/VirtualMessageList.vue', 'utf8')
const messageItem = readFileSync('packages/client/src/components/hermes/chat/MessageItem.vue', 'utf8')
const markdownRenderer = readFileSync('packages/client/src/components/hermes/chat/MarkdownRenderer.vue', 'utf8')
const groupChatPanel = readFileSync('packages/client/src/components/hermes/group-chat/GroupChatPanel.vue', 'utf8')
const groupMessageList = readFileSync('packages/client/src/components/hermes/group-chat/GroupMessageList.vue', 'utf8')
const groupMessageItem = readFileSync('packages/client/src/components/hermes/group-chat/GroupMessageItem.vue', 'utf8')
expect(chatPanel).toContain('.chat-panel')
expect(chatPanel).toContain('min-width: 0;')
expect(chatPanel).toContain('.chat-content-wrapper')
expect(chatPanel).toContain('max-width: 100%;')
expect(messageList).toContain('.streaming-indicator')
expect(messageList).toContain('.tool-calls-panel')
expect(messageList).toContain('.tool-call-preview')
expect(messageList).toContain('function toolPreviewText')
expect(messageList).toContain(':title="tc.toolPreview"')
expect(messageList).toContain('max-width: 34%;')
expect(messageList).toContain('flex: 1 1 0;')
expect(messageList).toContain('width: 100%;')
expect(messageList).toContain('max-width: none;')
expect(virtualList).toContain('.virtual-message-list-host')
expect(virtualList).toContain('.virtual-row')
expect(virtualList).toContain('min-width: 0;')
expect(virtualList).toContain('max-width: 100%;')
expect(messageItem).toContain('.msg-body')
expect(messageItem).toContain('.msg-content')
expect(messageItem).toContain('.message-bubble')
expect(messageItem).toContain('overflow-wrap: anywhere;')
expect(markdownRenderer).toContain('.markdown-body')
expect(markdownRenderer).toContain('width: 100%;')
expect(markdownRenderer).toContain('code:not(.hljs)')
expect(markdownRenderer).toContain('white-space: pre-wrap;')
expect(groupChatPanel).toContain('.group-chat-panel')
expect(groupChatPanel).toContain('min-width: 0;')
expect(groupChatPanel).toContain('max-width: 100%;')
expect(groupMessageList).toContain('.group-message-list')
expect(groupMessageList).toContain('min-width: 0;')
expect(groupMessageList).toContain('max-width: 100%;')
expect(groupMessageItem).toContain('.group-message')
expect(groupMessageItem).toContain('.msg-body')
expect(groupMessageItem).toContain('.msg-content')
expect(groupMessageItem).toContain('overflow-wrap: anywhere;')
})
})