creevey
Version:
Cross-browser screenshot testing tool for Storybook with fancy UI Runner
40 lines • 1.83 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = master;
const path_1 = __importDefault(require("path"));
const types_js_1 = require("../../types.js");
const stories_js_1 = require("../stories.js");
const runner_js_1 = __importDefault(require("./runner.js"));
const utils_js_1 = require("../utils.js");
function mergeTests(testsWithReports, testsFromStories) {
Object.values(testsFromStories)
.filter(types_js_1.isDefined)
.forEach((test) => {
const testWithReport = testsWithReports[test.id];
if (!testWithReport)
return;
test.retries = testWithReport.retries;
if (testWithReport.status == 'success' || testWithReport.status == 'failed')
test.status = testWithReport.status;
test.results = testWithReport.results;
test.approved = testWithReport.approved;
});
return testsFromStories;
}
async function master(config, options) {
const runner = new runner_js_1.default(config);
const reportDataPath = path_1.default.join(config.reportDir, 'data.js');
const testsFromReport = (0, utils_js_1.tryToLoadTestsData)(reportDataPath) ?? {};
await runner.init();
const tests = await (0, stories_js_1.loadTestsFromStories)(Object.keys(config.browsers), (listener) => config.storiesProvider(config, options, listener), (testsDiff) => {
runner.updateTests(testsDiff);
(0, stories_js_1.saveTestsJson)(runner.tests, config.reportDir);
});
runner.tests = mergeTests(testsFromReport, tests);
(0, stories_js_1.saveTestsJson)(runner.tests, config.reportDir);
return runner;
}
//# sourceMappingURL=master.js.map