import React from 'react';
import { shallow, mount } from 'enzyme';
import { Toast } from '../';
describe('Toast', () => {
it('should render children', () => {
const toast = mount(Yo!);
expect(toast.text()).toBe('Yo!');
});
it('should pass className down', () => {
const toast = mount(Yo!);
expect(toast.find('.toast').hostNodes().prop('className')).toContain('test-class-name');
});
it('should pass other props down', () => {
const toast = mount(Yo!);
expect(toast.find('.toast').hostNodes().prop('data-testprop')).toContain('testvalue');
});
it('should have default transitionTimeouts', () => {
const toast = mount(Yo!);
const transition = toast.find('Transition');
expect(transition.prop('timeout')).toEqual(150);
expect(transition.prop('appear')).toBe(true);
expect(transition.prop('enter')).toBe(true);
expect(transition.prop('exit')).toBe(true);
});
it('should have support configurable transitionTimeouts', () => {
const toast = mount(
Yo!
);
const transition = toast.find('Transition');
expect(transition.prop('timeout')).toEqual(0);
expect(transition.prop('appear')).toBe(false);
expect(transition.prop('enter')).toBe(false);
expect(transition.prop('exit')).toBe(false);
});
it('should use a div tag by default', () => {
const toast = mount(Yo!);
expect(toast.find('div').hostNodes().length).toBe(1);
});
it('should support custom tag', () => {
const toast = mount(Yo!);
expect(toast.find('p').hostNodes().length).toBe(1);
});
it('should be empty if not isOpen', () => {
const toast = shallow(Yo!);
expect(toast.html()).toBe('');
});
});