import React from 'react';
import { screen } from '@testing-library/react';
import { renderInAppContext } from '@theorchard/suite-testing';
import ContractCountries, {
    ContractCountriesPropType,
} from 'src/components/contract-detail/contract-countries';

describe('<ContractCountries>', () => {
    afterEach(jest.restoreAllMocks);

    const render = (props: ContractCountriesPropType) =>
        renderInAppContext(<ContractCountries {...props} />);

    it('renders ContractCountries', () => {
        const props = { contractExclusion: null };
        const { container } = render(props);
        expect(container).toBeDefined();
    });

    it('render countries section when there are no contract exclusion', () => {
        const props = { contractExclusion: null };
        render(props);
        expect(screen.getByText('All')).toBeDefined();
        expect(screen.getByText('None')).toBeDefined();
    });

    it('render countries section when there are no excluded countries for a contract', () => {
        const props = { contractExclusion: { exclusions: { countries: [] } } };
        render(props);
        expect(screen.getByText('All')).toBeDefined();
        expect(screen.getByText('None')).toBeDefined();
    });

    it('render countries section when there are excluded countries for a contract', () => {
        const props = {
            contractExclusion: { exclusions: { countries: ['AFG'] } },
        };
        render(props);
        expect(screen.getByText('Afghanistan')).toBeDefined();
    });
});
