diff --git a/apps/meteor/client/views/navigation/sidepanel/hooks/useRoomMenuActions.spec.ts b/apps/meteor/client/views/navigation/sidepanel/hooks/useRoomMenuActions.spec.ts index 01de2f9d2d031..9001f6de9fb7a 100644 --- a/apps/meteor/client/views/navigation/sidepanel/hooks/useRoomMenuActions.spec.ts +++ b/apps/meteor/client/views/navigation/sidepanel/hooks/useRoomMenuActions.spec.ts @@ -1,12 +1,10 @@ import { mockAppRoot } from '@rocket.chat/mock-providers'; -import type { SubscriptionWithRoom } from '@rocket.chat/ui-contexts'; import { renderHook } from '@testing-library/react'; import { useRoomMenuActions } from './useRoomMenuActions'; -import { createFakeRoom, createFakeSubscription } from '../../../../../tests/mocks/data'; +import { createFakeSubscription } from '../../../../../tests/mocks/data'; -const mockRoom = createFakeRoom({ _id: 'room1', t: 'c', name: 'room1', fname: 'Room 1' }); -const mockSubscription = createFakeSubscription({ name: 'room1', t: 'c', disableNotifications: false, rid: 'room1' }); +const mockSubscription = createFakeSubscription({ name: 'room1', fname: 'Room 1', t: 'c', disableNotifications: false, rid: 'room1' }); jest.mock('../../../../../client/lib/rooms/roomCoordinator', () => ({ roomCoordinator: { @@ -42,7 +40,7 @@ describe('useRoomMenuActions', () => { it('should return all menu options for normal rooms', () => { const { result } = renderHook(() => useRoomMenuActions(mockHookProps), { wrapper: mockAppRoot() - .withSubscriptions([{ ...mockSubscription, rid: 'room1' }] as unknown as SubscriptionWithRoom[]) + .withSubscription({ ...mockSubscription, rid: 'room1' }) .withPermission('leave-c') .withPermission('leave-p') .withSetting('Favorite_Rooms', true) @@ -59,7 +57,7 @@ describe('useRoomMenuActions', () => { it('should return priorities section for omnichannel room', () => { const { result } = renderHook(() => useRoomMenuActions({ ...mockHookProps, type: 'l' }), { wrapper: mockAppRoot() - .withSubscriptions([{ ...mockSubscription, ...mockRoom, t: 'l' }] as unknown as SubscriptionWithRoom[]) + .withSubscription({ ...mockSubscription, t: 'l' }) .withPermission('leave-c') .withPermission('leave-p') .withSetting('Favorite_Rooms', true) @@ -76,7 +74,7 @@ describe('useRoomMenuActions', () => { it('should not return any menu option if hideDefaultOptions', () => { const { result } = renderHook(() => useRoomMenuActions({ ...mockHookProps, hideDefaultOptions: true }), { wrapper: mockAppRoot() - .withSubscriptions([{ ...mockSubscription, ...mockRoom }] as unknown as SubscriptionWithRoom[]) + .withSubscription(mockSubscription) .withPermission('leave-c') .withPermission('leave-p') .withSetting('Favorite_Rooms', true) @@ -89,7 +87,7 @@ describe('useRoomMenuActions', () => { it('should not return favorite room option if setting is disabled', () => { const { result } = renderHook(() => useRoomMenuActions(mockHookProps), { wrapper: mockAppRoot() - .withSubscriptions([{ ...mockSubscription, ...mockRoom }] as unknown as SubscriptionWithRoom[]) + .withSubscription(mockSubscription) .withPermission('leave-c') .withPermission('leave-p') .withSetting('Favorite_Rooms', false) diff --git a/apps/meteor/client/views/room/contextualBar/Info/hooks/actions/useRoomLeave.spec.ts b/apps/meteor/client/views/room/contextualBar/Info/hooks/actions/useRoomLeave.spec.ts index e864998f63781..24da19244b2fc 100644 --- a/apps/meteor/client/views/room/contextualBar/Info/hooks/actions/useRoomLeave.spec.ts +++ b/apps/meteor/client/views/room/contextualBar/Info/hooks/actions/useRoomLeave.spec.ts @@ -1,5 +1,4 @@ import { mockAppRoot } from '@rocket.chat/mock-providers'; -import type { SubscriptionWithRoom } from '@rocket.chat/ui-contexts'; import { renderHook } from '@testing-library/react'; import { useRoomLeave } from './useRoomLeave'; @@ -25,7 +24,7 @@ jest.mock('../../../../../../../client/lib/rooms/roomCoordinator', () => ({ it('should return leave function if user has subscription', () => { const wrapper = mockAppRoot() .withPermission('leave-c') - .withSubscriptions([{ ...mockSubscription, rid: 'room1' }] as unknown as SubscriptionWithRoom[]) + .withSubscription({ ...mockSubscription, rid: 'room1' }) .build(); const { result } = renderHook(() => useRoomLeave(mockRoom), { wrapper }); diff --git a/packages/mock-providers/src/MockedAppRootBuilder.tsx b/packages/mock-providers/src/MockedAppRootBuilder.tsx index 4058b91a58e3e..2f4d0c9f0735e 100644 --- a/packages/mock-providers/src/MockedAppRootBuilder.tsx +++ b/packages/mock-providers/src/MockedAppRootBuilder.tsx @@ -3,7 +3,6 @@ import type { DirectCallData, IRoom, ISetting, - ISubscription, IUser, ProviderCapabilities, Serialized, @@ -149,8 +148,11 @@ export class MockedAppRootBuilder { onLogout: () => () => undefined, queryPreference: () => [() => () => undefined, () => undefined], queryRoom: () => [() => () => undefined, () => this.room], - querySubscription: () => [() => () => undefined, () => this.subscriptions as unknown as ISubscription], - querySubscriptions: () => [() => () => undefined, () => this.subscriptions ?? []], // apply query and option + querySubscription: () => [() => () => undefined, () => this.subscription], + querySubscriptions: () => [ + () => () => undefined, + () => (this.subscription ? [this.subscription, ...(this.subscriptions ?? [])] : (this.subscriptions ?? [])), + ], // apply query and option user: null, userId: undefined, }; @@ -205,6 +207,8 @@ export class MockedAppRootBuilder { private subscriptions: SubscriptionWithRoom[] | undefined = undefined; + private subscription: SubscriptionWithRoom | undefined = undefined; + private modal: ModalContextValue = { currentModal: { component: null }, modal: { @@ -451,6 +455,12 @@ export class MockedAppRootBuilder { return this; } + withSubscription(subscription: SubscriptionWithRoom): this { + this.subscription = subscription; + + return this; + } + withRoom(room: IRoom): this { this.room = room;