UNPKG

@lewiswright/vitest-plugin-vis

Version:
38 lines (37 loc) 1.12 kB
import { NAME } from "../shared/constants.js"; import { ctx } from "./ctx.js"; export function enableAuto() { ctx.autoEnabled = true; } export function setAutoSnapshotOptions(...args) { const [task, meta] = parseArgs(args); if (task) task.meta[NAME] = { ...task.meta[NAME], ...meta, }; } function parseArgs(args) { return args.length === 1 ? [ctx.getCurrentTest() ?? ctx.getCurrentSuite()?.tasks?.[0]?.file, parseMeta(args[0])] : [args[0], parseMeta(args[1])]; } function parseMeta(meta) { return typeof meta === 'boolean' ? { enable: meta } : { enable: true, ...meta }; } export function extractAutoSnapshotOptions(task) { if (!task) return; const list = []; let current = task; while (current?.suite) { list.unshift(current.suite.meta); current = current.suite; } list.unshift(task.file?.meta); list.push(task.meta); return list.reduce((acc, cur) => { const meta = cur?.[NAME]; return meta ? Object.assign({}, acc, meta) : acc; }, { enable: ctx.autoEnabled }); }