import { render, screen } from '@testing-library/react';
import { type Mock, describe, expect, it, vi } from 'vitest';
import { useGetTransactionStatusAction } from '../hooks/useGetTransactionStatusAction';
import { useGetTransactionStatusLabel } from '../hooks/useGetTransactionStatusLabel';
import { TransactionStatus } from './TransactionStatus';
vi.mock('../hooks/useGetTransactionStatusLabel', () => ({
useGetTransactionStatusLabel: vi.fn(),
}));
vi.mock('../hooks/useGetTransactionStatusAction', () => ({
useGetTransactionStatusAction: vi.fn(),
}));
describe('TransactionStatus', () => {
it('renders children correctly', () => {
render(
Transaction Status Content
,
);
const contentElement = screen.getByText('Transaction Status Content');
expect(contentElement).toBeInTheDocument();
expect(contentElement.parentElement).toHaveClass(
'flex justify-between custom-class',
);
});
it('renders default children correctly', () => {
(useGetTransactionStatusLabel as Mock).mockReturnValue({
label: 'Successful!',
labelClassName: 'text-ock-foreground-muted',
});
(useGetTransactionStatusAction as Mock).mockReturnValue({
actionElement: ,
});
render();
expect(screen.getByText('Successful!')).toBeInTheDocument();
});
});