UNPKG

@applitools/eyes-storybook

Version:
40 lines (33 loc) 1.24 kB
'use strict'; const getStoryTitle = require('./getStoryTitle'); function filterStories({stories, config}) { // Apply existing filters first let filteredStories = stories.filter(story => filterStory(story, config)); // Apply sharding after other filters if (config.shard) { const {current, total} = config.shard; filteredStories = filteredStories.filter((_story, index) => index % total === current - 1); } return filteredStories; } function filterStory(story, config) { const storyTitle = getStoryTitle(story); const localInclude = story.parameters && story.parameters.eyes && story.parameters.eyes.hasOwnProperty('include') ? story.parameters.eyes.include : undefined; if (localInclude !== undefined) { return localInclude; } else if (typeof config.include === 'function') { return config.include({...story, storyTitle}); } else if (typeof config.include === 'string') { return config.include == storyTitle; } else if (Object.prototype.toString.call(config.include) === '[object RegExp]') { return config.include.test(storyTitle); } else if (config.include !== undefined) { return config.include; } else { return true; } } module.exports = filterStories;