wix-storybook-utils
Version:
Utilities for automated component documentation within Storybook
130 lines • 5.11 kB
JavaScript
import { createAutoTestkitDriver } from './drivers';
describe('AutoTestkit', function () {
var driver = createAutoTestkitDriver();
describe('without error', function () {
var metadata = {
displayName: 'component',
drivers: [
{
file: 'component.driver.js',
descriptor: [
{
name: 'click',
args: [],
type: 'function',
},
],
},
{
file: 'component.protractor.driver.js',
descriptor: [
{
name: 'click',
args: [],
type: 'function',
},
],
},
{
file: 'component.puppeteer.driver.js',
descriptor: [
{
name: 'click',
args: [],
type: 'function',
},
],
},
{
file: 'component.unknown.driver.js',
descriptor: [
{
name: 'click',
args: [],
type: 'function',
},
],
},
{
file: 'component.uni.driver.js',
descriptor: [
{
name: 'click',
args: [],
type: 'function',
},
],
},
],
};
var makeTestkitTemplate = function (platform) {
return "import { <%= utils.toCamel(component.displayName) %>TestkitFactory } from 'wix-style-react/dist".concat(platform, "';");
};
var storyConfig = {
config: {
testkitsWarning: 'Hey there, testkits warning',
testkits: {
vanilla: {
template: makeTestkitTemplate(''),
},
enzyme: {
template: makeTestkitTemplate('/enzyme'),
},
puppeteer: {
template: makeTestkitTemplate('/puppeteer'),
},
protractor: {
template: makeTestkitTemplate('/protractor'),
},
unidriver: {
template: makeTestkitTemplate('/unidriver'),
},
},
},
};
beforeEach(function () { return driver.create({ metadata: metadata, storyConfig: storyConfig }); });
it('has markdown-body class on root element', function () {
expect(driver.get.rootClass()).toBe('markdown-body');
});
describe('heading', function () {
it('should display correct text', function () {
expect(driver.get.heading()).toBe("".concat(metadata.displayName, " Testkits"));
});
it('should be h1 tag', function () {
expect(driver.get.tag('heading')).toBe('h1');
});
it('should display warning', function () {
expect(driver.get.warning()).toEqual(storyConfig.config.testkitsWarning);
});
});
it('should have correct testkit names', function () {
expect(driver.get.driverAt(0).get.name()).toBe('UniDriver Testkit');
expect(driver.get.driverAt(1).get.name()).toBe('ReactTestUtils Testkit');
expect(driver.get.driverAt(2).get.name()).toBe('Protractor Testkit');
expect(driver.get.driverAt(3).get.name()).toBe('Puppeteer Testkit');
expect(driver.get.driverAt(4).get.name()).toBe('Testkit');
});
it('should show unidriver first', function () {
expect(driver.get.driverAt(0).get.name()).toBe('UniDriver Testkit');
});
it('should have correct import example code', function () {
expect(driver.get.driverAt(0).get.importCode()).toMatch("import { componentTestkitFactory } from 'wix-style-react/dist/unidriver'");
});
});
describe('with error', function () {
var metadata = {
displayName: 'component',
drivers: [
{
file: 'component.driver.js',
error: 'Oh no!',
},
],
};
beforeEach(function () { return driver.create({ metadata: metadata }); });
it('should not render documentation table', function () {
expect(driver.get.driverAt(0)).toBe(null);
});
});
});
//# sourceMappingURL=index.test.js.map