@@ -15,12 +15,12 @@ import {
1515 organizationProviderMockFns ,
1616} from '@sim/testing/mocks/organization-provider.mock'
1717import { reactQueryMock } from '@sim/testing/mocks/react-query.mock'
18+ import { toRecord } from '@sim/utils/object'
1819import { NuqsTestingAdapter } from 'nuqs/adapters/testing'
1920import { createRoot , type Root } from 'react-dom/client'
2021import { afterEach , beforeEach , describe , expect , it , vi } from 'vitest'
2122import type { AuthorizedAppsPage } from '@/lib/api/contracts/user'
2223import { useMothershipDraftsStore } from '@/stores/mothership-drafts/store'
23- import { useOrganizationChatModeStore } from '@/stores/organization-chat-mode/store'
2424
2525const mocks = vi . hoisted ( ( ) => ( {
2626 plan : false ,
@@ -90,8 +90,8 @@ vi.mock('@/app/workspace/[workspaceId]/home/components/mothership-chat', () => (
9090 MothershipChat : mocks . renderer ,
9191} ) )
9292
93+ import { OrganizationConversation } from '@/app/o/[organizationId]/components/organization-conversation'
9394import type { Composer } from '@/app/o/[organizationId]/home/components/composer'
94- import { OrganizationHome } from '@/app/o/[organizationId]/home/organization-home'
9595
9696const mockSession = authClientMockFns . mockUseSession
9797const mockContext = organizationProviderMockFns . mockUseOrganizationContext
@@ -106,7 +106,6 @@ beforeEach(() => {
106106 mocks . plan = false
107107 mocks . activeResource = null
108108 mockSession . mockReturnValue ( { data : { user : { id : 'reader' } } } )
109- useOrganizationChatModeStore . setState ( { modes : { } , assistantSearchLevels : { } } )
110109 mocks . resourcePanel . mockImplementation ( ( { children } : { children : ReactNode } ) => children )
111110 vi . stubGlobal ( 'IS_REACT_ACT_ENVIRONMENT' , true )
112111 vi . stubGlobal (
@@ -151,7 +150,9 @@ function renderHome(element: ReactNode, searchParams = '') {
151150 )
152151}
153152function composerProps ( ) : ComponentProps < typeof Composer > {
154- return mocks . composer . mock . lastCall ! [ 0 ]
153+ const call = mocks . composer . mock . lastCall
154+ if ( ! call ) throw new Error ( 'Composer has not rendered' )
155+ return call [ 0 ]
155156}
156157
157158async function attachDraftImage ( ) {
@@ -186,11 +187,17 @@ describe('organization home', () => {
186187 sendMessage : mocks . send ,
187188 } )
188189 mocks . renderer . mockImplementation ( ( { composer } : { composer : ReactNode } ) => composer )
189- await act ( async ( ) => renderHome ( < OrganizationHome chatId = 'chat-a' /> ) )
190+ await act ( async ( ) =>
191+ renderHome ( < OrganizationConversation requestMode = 'agent' chatId = 'chat-a' /> )
192+ )
190193 await act ( async ( ) => composerProps ( ) . onChange ( 'A draft for chat A' ) )
191- await act ( async ( ) => renderHome ( < OrganizationHome chatId = 'chat-a' /> ) )
194+ await act ( async ( ) =>
195+ renderHome ( < OrganizationConversation requestMode = 'agent' chatId = 'chat-a' /> )
196+ )
192197 expect ( composerProps ( ) . value ) . toBe ( 'A draft for chat A' )
193- await act ( async ( ) => renderHome ( < OrganizationHome chatId = 'chat-b' /> ) )
198+ await act ( async ( ) =>
199+ renderHome ( < OrganizationConversation requestMode = 'agent' chatId = 'chat-b' /> )
200+ )
194201 expect ( composerProps ( ) . value ) . toBe ( '' )
195202 expect ( mocks . chat ) . toHaveBeenLastCalledWith (
196203 { organizationId : 'organization-a' } ,
@@ -205,22 +212,32 @@ describe('organization home', () => {
205212
206213it ( 'isolates saved drafts by user, organization, and conversation' , async ( ) => {
207214 mocks . renderer . mockImplementation ( ( { composer } : { composer : ReactNode } ) => composer )
208- await act ( async ( ) => renderHome ( < OrganizationHome chatId = 'chat-a' requestMode = 'assistant' /> ) )
215+ await act ( async ( ) =>
216+ renderHome ( < OrganizationConversation chatId = 'chat-a' requestMode = 'assistant' /> )
217+ )
209218 await attachDraftImage ( )
210219 await act ( async ( ) => composerProps ( ) . onChange ( 'Chat A follow-up' ) )
211- await act ( async ( ) => renderHome ( < OrganizationHome chatId = 'chat-b' requestMode = 'assistant' /> ) )
220+ await act ( async ( ) =>
221+ renderHome ( < OrganizationConversation chatId = 'chat-b' requestMode = 'assistant' /> )
222+ )
212223 expect ( composerProps ( ) . value ) . toBe ( '' )
213- await act ( async ( ) => renderHome ( < OrganizationHome chatId = 'chat-a' requestMode = 'assistant' /> ) )
224+ await act ( async ( ) =>
225+ renderHome ( < OrganizationConversation chatId = 'chat-a' requestMode = 'assistant' /> )
226+ )
214227 expect ( composerProps ( ) . value ) . toBe ( 'Chat A follow-up' )
215228 expect ( composerProps ( ) . files . attachedFiles [ 0 ] ?. key ) . toBe ( 'image-key' )
216229 mockSession . mockReturnValue ( { data : { user : { id : 'other-user' } } } )
217- await act ( async ( ) => renderHome ( < OrganizationHome chatId = 'chat-a' requestMode = 'assistant' /> ) )
230+ await act ( async ( ) =>
231+ renderHome ( < OrganizationConversation chatId = 'chat-a' requestMode = 'assistant' /> )
232+ )
218233 expect ( composerProps ( ) . value ) . toBe ( '' )
219234 mockSession . mockReturnValue ( { data : { user : { id : 'reader' } } } )
220235 mockContext . mockReturnValue ( {
221- ...mockContext ( ) ,
236+ ...toRecord ( mockContext ( ) ) ,
222237 organization : { id : 'other-org' , name : 'Other' } ,
223238 } )
224- await act ( async ( ) => renderHome ( < OrganizationHome chatId = 'chat-a' requestMode = 'assistant' /> ) )
239+ await act ( async ( ) =>
240+ renderHome ( < OrganizationConversation chatId = 'chat-a' requestMode = 'assistant' /> )
241+ )
225242 expect ( composerProps ( ) . value ) . toBe ( '' )
226243} )
0 commit comments