This is an automated email from the ASF dual-hosted git repository. voidmatcha pushed a commit to branch branch-voidmatcha-assistant-integration-temp in repository https://gitbox.apache.org/repos/asf/zeppelin.git
commit bfbb0abb5ee81a1f95fe64c015369affac16e515 Author: YONGJAE LEE <[email protected]> AuthorDate: Sat Oct 17 09:21:34 2026 +0900 [ZEPPELIN-6747] Fill the Assistant conversation fixtures from the master contract --- .../assistant/ui/ConversationHeader.spec.tsx | 24 +++++++++++-- .../assistant/ui/ConversationHeader.stories.tsx | 16 +++++++-- .../assistant/ui/ConversationList.spec.tsx | 40 +++++++++++++++++++--- .../assistant/ui/ConversationList.stories.tsx | 17 +++++++-- 4 files changed, 85 insertions(+), 12 deletions(-) diff --git a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationHeader.spec.tsx b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationHeader.spec.tsx index bda08d1065..3ade34aa79 100644 --- a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationHeader.spec.tsx +++ b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationHeader.spec.tsx @@ -19,7 +19,13 @@ const noop = () => {}; describe('ConversationHeader', () => { it('shows the selected conversation title', () => { - const conversation: AssistantConversation = { id: 'a', title: 'Explain revenue by region' }; + const conversation: AssistantConversation = { + id: 'a', + ownerId: 'user1', + title: 'Explain revenue by region', + canSendMessage: true, + updatedAt: '2026-10-15T02:00:00.000Z' + }; render(<ConversationHeader conversation={conversation} onCreate={noop} onDelete={noop} />); expect(screen.getByText('Explain revenue by region')).toBeTruthy(); }); @@ -30,14 +36,26 @@ describe('ConversationHeader', () => { }); it('offers no delete button for a read-only conversation', () => { - const conversation: AssistantConversation = { id: 'a', title: 'Shared', canSendMessage: false }; + const conversation: AssistantConversation = { + id: 'a', + ownerId: 'user1', + title: 'Shared', + canSendMessage: false, + updatedAt: '2026-10-15T02:00:00.000Z' + }; render(<ConversationHeader conversation={conversation} onCreate={noop} onDelete={noop} />); expect(screen.queryByRole('button', { name: 'Delete Shared' })).toBeNull(); }); it('reports the deleted conversation id without asking for confirmation', () => { const onDelete = vi.fn(); - const conversation: AssistantConversation = { id: 'a', title: 'Explain revenue by region' }; + const conversation: AssistantConversation = { + id: 'a', + ownerId: 'user1', + title: 'Explain revenue by region', + canSendMessage: true, + updatedAt: '2026-10-15T02:00:00.000Z' + }; render(<ConversationHeader conversation={conversation} onCreate={noop} onDelete={onDelete} />); fireEvent.click(screen.getByRole('button', { name: 'Delete Explain revenue by region' })); expect(onDelete).toHaveBeenCalledWith('a'); diff --git a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationHeader.stories.tsx b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationHeader.stories.tsx index 83e3de509d..d469e3672d 100644 --- a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationHeader.stories.tsx +++ b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationHeader.stories.tsx @@ -15,8 +15,20 @@ import { fn } from 'storybook/test'; import type { AssistantConversation } from '../model/assistantContract'; import { ConversationHeader } from './ConversationHeader'; -const current: AssistantConversation = { id: 'a', title: 'Explain how the notebook calculates revenue' }; -const readOnly: AssistantConversation = { id: 'b', title: 'Compare regional totals', canSendMessage: false }; +const current: AssistantConversation = { + id: 'a', + ownerId: 'user1', + title: 'Explain how the notebook calculates revenue', + canSendMessage: true, + updatedAt: '2026-10-15T02:00:00.000Z' +}; +const readOnly: AssistantConversation = { + id: 'b', + ownerId: 'user1', + title: 'Compare regional totals', + canSendMessage: false, + updatedAt: '2026-10-15T02:00:00.000Z' +}; const meta = { title: 'Assistant/ConversationHeader', diff --git a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationList.spec.tsx b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationList.spec.tsx index 6909e74eb1..2e9a3ca77e 100644 --- a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationList.spec.tsx +++ b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationList.spec.tsx @@ -18,9 +18,27 @@ import { ConversationList } from './ConversationList'; const NOW = new Date(2026, 9, 15, 12).getTime(); const conversations: AssistantConversation[] = [ - { id: 'a', title: 'Explain revenue by region', updatedAt: new Date(2026, 9, 15, 11).toISOString() }, - { id: 'b', title: 'Draft a query', updatedAt: new Date(2026, 9, 10, 9).toISOString() }, - { id: 'c', title: 'Shared analysis', canSendMessage: false, updatedAt: new Date(2026, 9, 9, 9).toISOString() } + { + id: 'a', + ownerId: 'user1', + title: 'Explain revenue by region', + updatedAt: new Date(2026, 9, 15, 11).toISOString(), + canSendMessage: true + }, + { + id: 'b', + ownerId: 'user1', + title: 'Draft a query', + updatedAt: new Date(2026, 9, 10, 9).toISOString(), + canSendMessage: true + }, + { + id: 'c', + ownerId: 'user1', + title: 'Shared analysis', + canSendMessage: false, + updatedAt: new Date(2026, 9, 9, 9).toISOString() + } ]; const noop = () => {}; @@ -193,8 +211,20 @@ describe('ConversationList', () => { render( <ConversationList conversations={[ - { id: 'x', title: 'After midnight', updatedAt: new Date(2026, 9, 15, 0, 1).toISOString() }, - { id: 'y', title: 'Before midnight', updatedAt: new Date(2026, 9, 14, 23, 59).toISOString() } + { + id: 'x', + ownerId: 'user1', + title: 'After midnight', + updatedAt: new Date(2026, 9, 15, 0, 1).toISOString(), + canSendMessage: true + }, + { + id: 'y', + ownerId: 'user1', + title: 'Before midnight', + updatedAt: new Date(2026, 9, 14, 23, 59).toISOString(), + canSendMessage: true + } ]} onSelect={noop} onCreate={noop} diff --git a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationList.stories.tsx b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationList.stories.tsx index cdfda369a2..508ea5082f 100644 --- a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationList.stories.tsx +++ b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/ConversationList.stories.tsx @@ -18,10 +18,23 @@ import { ConversationList } from './ConversationList'; const NOW = new Date(2026, 9, 15, 12).getTime(); const conversations: AssistantConversation[] = [ - { id: 'a', title: 'Explain revenue by region', updatedAt: new Date(2026, 9, 15, 11).toISOString() }, - { id: 'b', title: 'Draft a query for monthly orders', updatedAt: new Date(2026, 9, 10, 9).toISOString() }, + { + id: 'a', + ownerId: 'user1', + title: 'Explain revenue by region', + updatedAt: new Date(2026, 9, 15, 11).toISOString(), + canSendMessage: true + }, + { + id: 'b', + ownerId: 'user1', + title: 'Draft a query for monthly orders', + updatedAt: new Date(2026, 9, 10, 9).toISOString(), + canSendMessage: true + }, { id: 'c', + ownerId: 'user2', title: 'Review shared analysis', canSendMessage: false, updatedAt: new Date(2026, 9, 9, 9).toISOString()
