UNPKG

creevey

Version:

Cross-browser screenshot testing tool for Storybook with fancy UI Runner

60 lines 2.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadStories = void 0; const cluster_1 = __importDefault(require("cluster")); const index_js_1 = require("../../selenium/index.js"); const messages_js_1 = require("../../messages.js"); const types_js_1 = require("../../../types.js"); const logger_js_1 = require("../../logger.js"); const index_js_2 = require("../../../shared/index.js"); const loadStories = async (_config, _options, storiesListener) => { if (cluster_1.default.isPrimary) { return new Promise((resolve) => { const worker = Object.values(cluster_1.default.workers ?? {}) .filter(types_js_1.isDefined) .find((worker) => worker.isConnected()); if (worker) { const unsubscribe = (0, messages_js_1.subscribeOnWorker)(worker, 'stories', (message) => { if (message.type == 'set') { const { stories, oldTests } = message.payload; if (oldTests.length > 0) (0, logger_js_1.logger)().warn(`If you use browser stories provider of CSFv3 Storybook feature\n` + `Creevey will not load tests defined in story parameters from following stories:\n` + oldTests.join('\n')); unsubscribe(); resolve(stories); } }); (0, messages_js_1.sendStoriesMessage)(worker, { type: 'get' }); } (0, messages_js_1.subscribeOn)('stories', (message) => { // TODO updates only one browser :( if (message.type == 'update') storiesListener(new Map(message.payload)); }); }); } else { (0, messages_js_1.subscribeOn)('stories', (message) => { if (message.type == 'get') (0, messages_js_1.emitStoriesMessage)({ type: 'set', payload: { stories, oldTests: storiesWithOldTests } }); if (message.type == 'update') storiesListener(new Map(message.payload)); }); const stories = (0, index_js_2.deserializeRawStories)(await (0, index_js_1.loadStoriesFromBrowser)()); const storiesWithOldTests = []; Object.values(stories).forEach((story) => { if (story.parameters?.creevey?.tests) { delete story.parameters?.creevey?.tests; storiesWithOldTests.push(`${story.title}/${story.name}`); } }); return stories; } }; exports.loadStories = loadStories; exports.loadStories.providerName = 'browser'; //# sourceMappingURL=browser.js.map