UNPKG

creevey

Version:

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

33 lines (28 loc) 1.12 kB
import { Config } from 'src/types'; import { waitOnUrl } from '../utils'; import { logger } from '../logger'; import { exec } from 'node:child_process'; const RESPONSE_FAST_CHECK_TIMEOUT_MS = 3000; const RESPONSE_CHECK_TIMEOUT_MS = 10000; const RESPONSE_CHECK_INTERVAL_MS = 200; export async function getStorybookUrl({ storybookUrl, resolveStorybookUrl }: Config) { return resolveStorybookUrl ? resolveStorybookUrl() : storybookUrl; } export async function tryAutorunStorybook(url: string, storybookAutorunCmd: string) { try { await waitOnUrl(url, RESPONSE_FAST_CHECK_TIMEOUT_MS, RESPONSE_CHECK_INTERVAL_MS); } catch { logger().info(`Trying start Storybook automatically via \`${storybookAutorunCmd}\` from config...`); exec(storybookAutorunCmd); } } export async function checkIsStorybookConnected(url: string) { try { await waitOnUrl(url, RESPONSE_CHECK_TIMEOUT_MS, RESPONSE_CHECK_INTERVAL_MS); return true; } catch (reason: unknown) { const error = reason instanceof Error ? (reason.stack ?? reason.message) : (reason as string); logger().error(error); return false; } }