import { fireEvent, render, screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import type { AdminChatMessage } from '@/services/adminChat'
import AdminMessageBubble from './AdminMessageBubble'
vi.mock('@/app/(dashboard)/chat-oversight/[id]/_components/ChatImagePreviewModal', () => ({
default: ({ imageUrl, isOpen }: { imageUrl: string | null; isOpen: boolean }) =>
isOpen ?
{imageUrl}
: null,
}))
const message: AdminChatMessage = {
id: 'message-1',
conversationId: 'conversation-1',
senderId: 'user-1',
senderMobile: '09121234567',
senderFirstName: 'سارا',
senderLastName: 'احمدی',
senderAvatarUrl: null,
senderGender: 'female',
body: 'سلام، این یک پیام آزمایشی است.',
imageUrl: 'https://example.com/message.jpg',
createdAt: '2026-08-01T12:30:00.000Z',
}
describe('AdminMessageBubble', () => {
it('shows oversight identity and opens the shared image preview', () => {
render(
)
expect(screen.getByText('سارا احمدی')).toBeInTheDocument()
expect(screen.getByText('سلام، این یک پیام آزمایشی است.')).toBeInTheDocument()
expect(screen.getByText(/0912/)).toBeInTheDocument()
expect(screen.queryByTestId('image-preview')).not.toBeInTheDocument()
fireEvent.click(screen.getByRole('button', { name: 'مشاهده تصویر' }))
expect(screen.getByTestId('image-preview')).toHaveTextContent(message.imageUrl ?? '')
})
})