wix-style-react
Version:
wix-style-react
114 lines (97 loc) • 4.04 kB
JavaScript
import React from 'react';
import sectionHelperDriverFactory from './SectionHelper.driver';
import { createDriverFactory } from 'wix-ui-test-utils/driver-factory';
import SectionHelper from '.';
import { sectionHelperTestkitFactory } from '../../testkit';
import { sectionHelperTestkitFactory as enzymeSectionHelperTestkitFactory } from '../../testkit/enzyme';
import { isTestkitExists, isEnzymeTestkitExists } from '../../test/utils/testkit-sanity';
import { mount } from 'enzyme';
var renderWithProps = function renderWithProps() {
var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return React.createElement(
SectionHelper,
properties,
properties.children || React.createElement(
'div',
null,
'Hello, World!'
)
);
};
describe('SectionHelper', function () {
var createDriver = createDriverFactory(sectionHelperDriverFactory);
it('should render', function () {
var driver = createDriver(renderWithProps());
expect(driver.exists()).toBeTruthy();
});
it('should render children', function () {
var driver = createDriver(renderWithProps({ children: 'Muffins are the best!' }));
expect(driver.textContent()).toEqual('Muffins are the best!');
});
it('should render title', function () {
var driver = createDriver(renderWithProps({ title: 'Muffins are the best!' }));
expect(driver.titleText()).toEqual('Muffins are the best!');
});
describe('given `actionText` & `onAction` props', function () {
it('should render button', function () {
var driver = createDriver(renderWithProps({
actionText: 'Muffins are the best!',
onAction: function onAction() {
return null;
}
}));
expect(driver.actionText()).toEqual('Muffins are the best!');
});
it('should call `onAction` when clicked', function () {
var onAction = jest.fn();
var driver = createDriver(renderWithProps({ onAction: onAction, actionText: 'hello' }));
driver.clickAction();
expect(onAction).toBeCalled();
});
});
describe('close button', function () {
it('should call `onClose` when close btn clicked', function () {
var onClose = jest.fn();
var driver = createDriver(renderWithProps({ onClose: onClose }));
driver.clickClose();
expect(driver.isCloseButtonDisplayed()).toBeTruthy();
expect(onClose).toBeCalled();
});
it('should not display the close button on demand', function () {
var driver = createDriver(renderWithProps({ showCloseButton: false }));
expect(driver.isCloseButtonDisplayed()).toBeFalsy();
});
});
describe('Themes', function () {
it('should support standard theme by default', function () {
var driver = createDriver(renderWithProps());
expect(driver.isWarning()).toBeTruthy();
});
it('should support standard theme', function () {
var driver = createDriver(renderWithProps({ appearance: 'standard' }));
expect(driver.isStandard()).toBeTruthy();
});
it('should support danger theme', function () {
var driver = createDriver(renderWithProps({ appearance: 'danger' }));
expect(driver.isDanger()).toBeTruthy();
});
it('should support success theme', function () {
var driver = createDriver(renderWithProps({ appearance: 'success' }));
expect(driver.isSuccess()).toBeTruthy();
});
it('should support premium theme', function () {
var driver = createDriver(renderWithProps({ appearance: 'premium' }));
expect(driver.isPremium()).toBeTruthy();
});
});
describe('testkit', function () {
it('should exist', function () {
expect(isTestkitExists(React.createElement(SectionHelper, null), sectionHelperTestkitFactory)).toBe(true);
});
});
describe('enzyme testkit', function () {
it('should exist', function () {
expect(isEnzymeTestkitExists(React.createElement(SectionHelper, null), enzymeSectionHelperTestkitFactory, mount)).toBe(true);
});
});
});