1 | "use strict";
|
2 | var __assign = (this && this.__assign) || function () {
|
3 | __assign = Object.assign || function(t) {
|
4 | for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5 | s = arguments[i];
|
6 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7 | t[p] = s[p];
|
8 | }
|
9 | return t;
|
10 | };
|
11 | return __assign.apply(this, arguments);
|
12 | };
|
13 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
14 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
15 | };
|
16 | Object.defineProperty(exports, "__esModule", { value: true });
|
17 | var global_1 = __importDefault(require("global"));
|
18 | var addons_1 = require("@storybook/addons");
|
19 | var ensureOptionsDefaults_1 = __importDefault(require("./ensureOptionsDefaults"));
|
20 | var snapshotsTestsTemplate_1 = __importDefault(require("./snapshotsTestsTemplate"));
|
21 | var integrityTestTemplate_1 = __importDefault(require("./integrityTestTemplate"));
|
22 | var frameworkLoader_1 = __importDefault(require("../frameworks/frameworkLoader"));
|
23 | var describe = global_1.default.describe, globalWindow = global_1.default.window;
|
24 | global_1.default.STORYBOOK_REACT_CLASSES = global_1.default.STORYBOOK_REACT_CLASSES || {};
|
25 | var methods = ['beforeAll', 'beforeEach', 'afterEach', 'afterAll'];
|
26 | function callTestMethodGlobals(testMethod) {
|
27 | methods.forEach(function (method) {
|
28 | if (typeof testMethod[method] === 'function') {
|
29 | global_1.default[method](testMethod[method], testMethod[method].timeout);
|
30 | }
|
31 | });
|
32 | }
|
33 | var isDisabled = function (parameter) {
|
34 | return parameter === false || (parameter && parameter.disable === true);
|
35 | };
|
36 | function testStorySnapshots(options) {
|
37 | if (options === void 0) { options = {}; }
|
38 | if (typeof describe !== 'function') {
|
39 | throw new Error('testStorySnapshots is intended only to be used inside jest');
|
40 | }
|
41 | addons_1.addons.setChannel(addons_1.mockChannel());
|
42 | var _a = frameworkLoader_1.default(options), storybook = _a.storybook, framework = _a.framework, renderTree = _a.renderTree, renderShallowTree = _a.renderShallowTree;
|
43 | var _b = ensureOptionsDefaults_1.default(options), asyncJest = _b.asyncJest, suite = _b.suite, storyNameRegex = _b.storyNameRegex, storyKindRegex = _b.storyKindRegex, stories2snapsConverter = _b.stories2snapsConverter, testMethod = _b.testMethod, integrityOptions = _b.integrityOptions, snapshotSerializers = _b.snapshotSerializers;
|
44 | var testMethodParams = {
|
45 | renderTree: renderTree,
|
46 | renderShallowTree: renderShallowTree,
|
47 | stories2snapsConverter: stories2snapsConverter,
|
48 | };
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 | globalWindow.__STORYBOOK_STORY_STORE__.initializationPromise.then(function () {
|
55 | var data = storybook.raw().reduce(function (acc, item) {
|
56 | if (storyNameRegex && !item.name.match(storyNameRegex)) {
|
57 | return acc;
|
58 | }
|
59 | if (storyKindRegex && !item.kind.match(storyKindRegex)) {
|
60 | return acc;
|
61 | }
|
62 | var kind = item.kind, render = item.storyFn, parameters = item.parameters;
|
63 | var existing = acc.find(function (i) { return i.kind === kind; });
|
64 | var fileName = item.parameters.fileName;
|
65 | if (!isDisabled(parameters.storyshots)) {
|
66 | if (existing) {
|
67 | existing.children.push(__assign(__assign({}, item), { render: render, fileName: fileName }));
|
68 | }
|
69 | else {
|
70 | acc.push({
|
71 | kind: kind,
|
72 | children: [__assign(__assign({}, item), { render: render, fileName: fileName })],
|
73 | });
|
74 | }
|
75 | }
|
76 | return acc;
|
77 | }, []);
|
78 | if (data.length) {
|
79 | callTestMethodGlobals(testMethod);
|
80 | snapshotsTestsTemplate_1.default({
|
81 | data: data,
|
82 | asyncJest: asyncJest,
|
83 | suite: suite,
|
84 | framework: framework,
|
85 | testMethod: testMethod,
|
86 | testMethodParams: testMethodParams,
|
87 | snapshotSerializers: snapshotSerializers,
|
88 | });
|
89 | integrityTestTemplate_1.default(integrityOptions, stories2snapsConverter);
|
90 | }
|
91 | else {
|
92 | throw new Error('storyshots found 0 stories');
|
93 | }
|
94 | });
|
95 | }
|
96 | exports.default = testStorySnapshots;
|