const React = require('react');
const {mountWithIntl} = require('../../helpers/intl-helpers.jsx');
const EmailConfirmationBanner = require('../../../src/components/dropdown-banner/email-confirmation/banner.jsx');
jest.mock('../../../src/components/modal/email-confirmation/modal.jsx', () => () => 'MockEmailConfirmationModal');


describe('EmailConfirmationBanner', () => {
    test('Clicking "Confirm your email" opens the email confirmation modal', () => {
        const component = mountWithIntl(
            <EmailConfirmationBanner />
        );

        expect(component.text()).not.toContain('MockEmailConfirmationModal');
        
        const confirmWrapper = component.find({id: 'emailConfirmationBanner.confirm'});
        const confirmLink = mountWithIntl(confirmWrapper.instance().props.values.confirmLink);
        confirmLink.simulate('click');
        component.update();

        expect(component.text()).toContain('MockEmailConfirmationModal');
    });

    test('Clicking X calls onRequestDismiss', () => {

        const requestDismissMock = jest.fn();

        const component = mountWithIntl(
            <EmailConfirmationBanner onRequestDismiss={requestDismissMock} />
        );

        component.find('a.close').simulate('click', {preventDefault () {}});
        
        expect(requestDismissMock).toHaveBeenCalled();
    });
});
