diff --git a/packages/web/src/pages/contest-page/components/ContestCommentsTile.test.tsx b/packages/web/src/pages/contest-page/components/ContestCommentsTile.test.tsx new file mode 100644 index 00000000000..08f19e9b8c9 --- /dev/null +++ b/packages/web/src/pages/contest-page/components/ContestCommentsTile.test.tsx @@ -0,0 +1,117 @@ +import { describe, expect, vi, beforeEach } from 'vitest' + +import { fireEvent, render, screen, it } from 'test/test-utils' + +import { ContestCommentsTile } from './ContestCommentsTile' + +const mocks = vi.hoisted(() => ({ + useCurrentUserId: vi.fn(), + useEventComments: vi.fn(), + usePostEventComment: vi.fn(), + useComment: vi.fn(), + useDeleteComment: vi.fn(), + useReactToComment: vi.fn(), + useUser: vi.fn(), + useRequiresAccountCallback: vi.fn(), + requiresAccount: vi.fn() +})) + +vi.mock('@audius/common/api', async (importOriginal) => { + const actual = (await importOriginal()) as object + return { + ...actual, + useCurrentUserId: mocks.useCurrentUserId, + useEventComments: mocks.useEventComments, + usePostEventComment: mocks.usePostEventComment, + useComment: mocks.useComment, + useDeleteComment: mocks.useDeleteComment, + useReactToComment: mocks.useReactToComment, + useUser: mocks.useUser + } +}) + +vi.mock('hooks/useRequiresAccount', () => ({ + useRequiresAccountCallback: (callback: (...args: any[]) => any) => + mocks.useRequiresAccountCallback(callback) +})) + +vi.mock('hooks/useProfilePicture', () => ({ + useProfilePicture: () => undefined +})) + +vi.mock('components/link/UserLink', () => ({ + UserLink: ({ userId }: { userId: number }) => ( + user-{userId} + ) +})) + +vi.mock('components/composer-input/ComposerInput', () => ({ + ComposerInput: ({ + placeholder, + onClick, + readOnly + }: { + placeholder?: string + onClick?: () => void + readOnly?: boolean + }) => ( +