UNPKG

jest-allure2-reporter

Version:
30 lines (23 loc) 825 B
import type { Helpers, HelpersCustomizer } from 'jest-allure2-reporter'; import type { HelpersExtractor } from '../types'; export function helpers(customizer: HelpersCustomizer | undefined): HelpersExtractor | undefined { if (customizer == null) { return undefined; } if (typeof customizer === 'function') { return customizer; } const customizedKeys = Object.keys(customizer) as (keyof Helpers)[]; return (context) => { const base = { ...context.value }; const baseKeys = Object.keys(base) as (keyof Helpers)[]; const allKeys = new Set([...baseKeys, ...customizedKeys]); for (const key of allKeys) { if (customizer[key]) { const factory = customizer[key] as any; base[key] = factory({ ...context, value: context.$[key] }); } } return base; }; }