收口 Makelore 客户端变更
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

This commit is contained in:
inman
2026-08-12 22:35:06 +08:00
parent 253bad8b40
commit f4113a872f
232 changed files with 4617 additions and 20121 deletions

View File

@@ -234,7 +234,7 @@ describe('ChatMessage current-view controls', () => {
/>,
);
expect(screen.queryByText(/README\.md/)).not.toBeInTheDocument();
expect(screen.getByText(/README\.md/).closest('[data-state]')).toHaveAttribute('data-state', 'closed');
fireEvent.click(screen.getByRole('button', { name: /read/i }));
expect(onToolExpandedChange).toHaveBeenCalledWith(toolId, true);
@@ -323,6 +323,43 @@ describe('ChatMessage LaTeX rendering', () => {
expect(screen.getByTestId('chat-message-bubble-assistant')).toHaveClass('pt-1', 'pb-3');
});
it('aligns an embedded execution-trace reply without reserving a duplicate avatar', () => {
const message: RawMessage = { role: 'assistant', content: '最终回答。' };
render(
<ChatMessage
message={message}
assistantAvatarSrc="/avatar-16.png"
assistantAvatarMode="embedded-trace"
/>,
);
expect(screen.queryByTestId('chat-message-avatar-assistant')).not.toBeInTheDocument();
expect(screen.queryByTestId('chat-message-avatar-reserved')).not.toBeInTheDocument();
expect(screen.getByTestId('chat-message-bubble-assistant').parentElement).not.toHaveClass('pl-9');
});
it('marks assistant markdown with compact paragraph spacing', () => {
render(
<ChatMessage
message={{ role: 'assistant', content: '第一段。\n\n第二段。' }}
/>,
);
expect(screen.getByTestId('chat-message-bubble-assistant').querySelector('.chat-assistant-message-markdown')).toHaveClass('prose', 'prose-sm');
});
it('does not render markdown thematic breaks inside assistant replies', () => {
const { container } = render(
<ChatMessage
message={{ role: 'assistant', content: '第一段。\n\n---\n\n第二段。' }}
/>,
);
expect(container.querySelector('hr')).not.toBeInTheDocument();
expect(screen.getByText('第一段。')).toBeInTheDocument();
expect(screen.getByText('第二段。')).toBeInTheDocument();
});
it('renders inline `$...$` math with KaTeX', () => {
const message: RawMessage = {
role: 'assistant',