import { render, screen } from '@testing-library/react';
import { type Mock, beforeEach, describe, expect, it, vi } from 'vitest';
import { useSignatureContext } from '../components/SignatureProvider';
import { SignatureStatus } from '../components/SignatureStatus';
vi.mock('../components/SignatureProvider', () => ({
useSignatureContext: vi.fn(),
}));
vi.mock('../components/SignatureLabel', () => ({
SignatureLabel: vi.fn(() =>
SignatureLabel
),
}));
describe('SignatureStatus', () => {
beforeEach(() => {
(useSignatureContext as Mock).mockReturnValue({
lifecycleStatus: {
statusName: 'init',
},
});
});
it('should render default children', () => {
render();
expect(screen.getByText('SignatureLabel')).toBeInTheDocument();
});
it('should render passed in children', () => {
render(
Custom Child
,
);
expect(screen.getByText('Custom Child')).toBeInTheDocument();
});
it('should render error className', () => {
(useSignatureContext as Mock).mockReturnValue({
lifecycleStatus: {
statusName: 'error',
},
});
render();
expect(screen.getByText('SignatureLabel').parentElement).toHaveClass(
'text-ock-error',
);
});
it('should set custom className', () => {
render();
expect(screen.getByText('SignatureLabel').parentElement).toHaveClass(
'custom-class',
);
});
});