mirror of
https://github.com/EKKOLearnAI/hermes-web-ui.git
synced 2026-07-10 02:30:15 +00:00
83e37bac02
* add global agent chat relay * add model run MCP auth * avoid codex prompt inflation * guide codex to use hermes lan tools * truncate long tool call previews * write codex MCP env inline * log codex developer prompt * remove codex prompt debug logging * fix codex chat tool history * log codex chat proxy requests * write codex proxy debug to server log * log codex upstream tool requests * expand codex mcp namespaces for custom providers * remove codex proxy debug logging * add hermes mcp openapi relay * fix: improve mcp docs and chat run cleanup * feat: add mcu relay login flow * fix ci test expectations * fix group chat deeplink e2e expectation --------- Co-authored-by: Codex <codex@openai.com>
60 lines
3.0 KiB
TypeScript
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;')
|
|
})
|
|
})
|