test: adapt suites to the provider-hosted conversation shell

Test-side catch-up with the session-maybe conversation architecture: the
provide channel's descriptor shape and maybeProvideInfo in fakes, the shared
chat-store handle asserted on conversation.session (the session-maybe shell
carries no store), startSession fakes exposing the workspace list snapshot,
strict session slots declining (not throwing) without a session, AppFrame's
removed empty seat and loading gate, and the hero draft asserted on the
machine (the chat-store mirror binds with ConversationSession). Plus three
lint fixes (max-len split, boolean-compare, arrow-parens/unbound-method).
This commit is contained in:
imccyu
2026-07-27 04:28:42 +08:00
parent d1e43fcd8c
commit 45eee34faf
6 changed files with 31 additions and 22 deletions
@@ -162,10 +162,12 @@ describe('ConversationRoot resident composer', () => {
// Hero chrome present, view ring absent.
expect(b.view.getByText("Let's start building")).toBeTruthy()
expect(b.view.queryByTestId('view-chat')).toBeNull()
// The same machine-backed textarea is live in the hero.
// The same machine-backed textarea is live in the hero. The chat-store
// mirror binds with ConversationSession (unmounted in hero), so the
// draft's truth here is the machine itself.
const box = b.view.getByRole('textbox')
fireEvent.change(box, { target: { value: 'draft in hero' } })
expect(b.chat.store.getSnapshot().draft).toBe('draft in hero')
expect((box as HTMLTextAreaElement).value).toBe('draft in hero')
// Picker: open through the chip; a pick switches to the other
// workspace's blank session (draft carry is apply-layer wiring).
fireEvent.click(b.view.getByRole('button', { name: 'Choose workspace' }))