import { render, screen } from '@testing-library/react';
import { getScopedI18n } from '@/i18n/server';
import DoubleOptInMessage from './DoubleOptInMessage';

vi.mock('@/i18n/server', () => ({
    getScopedI18n: vi.fn().mockReturnValue((term: string) => term),
}));

describe('<DoubleOptInMessage>', () => {
    it('should call getScopedI18n with correct scope', async () => {
        render(await DoubleOptInMessage({ messageKey: 'successMessage' }));

        expect(getScopedI18n).toHaveBeenCalledWith('doubleOptIn');
    });

    it.each([
        'successMessage',
        'badRequestMessage',
        'expiredMessage',
        'serverErrorMessage',
    ] as const)('should render %s', async messageKey => {
        render(await DoubleOptInMessage({ messageKey }));

        expect(screen.getByText(messageKey)).toBeVisible();
    });
});
