UNPKG

test-each

Version:

🤖 Repeat tests. Repeat tests. Repeat tests.

75 lines (38 loc) • 1.04 kB
export const normalizeFunc=(input)=>{ if(typeof input!=="function"){ return input } const value=wrapFunc(input); return[{value}] }; export const callFuncs=({index,indexes,values,titles})=>{ const info={index,indexes}; const valuesA=values.reduce(callFunc.bind(undefined,info),[]); return{index,indexes,values:valuesA,titles} }; const callFunc=(info,previousValues,value,valueIndex,values)=>{ if(!isInputFunc(value)){ return[...previousValues,value] } const inputFunc=unwrapFunc(value); const nextValues=values.slice(valueIndex).map(unwrapValue); const valueA=inputFunc(info,...previousValues,...nextValues); return[...previousValues,valueA] }; const funcSymbol=Symbol("function"); const isInputFunc=(value)=>{ try{ return( value!==undefined&&value!==null&&value[funcSymbol]!==undefined) }catch{ return false } }; const wrapFunc=(value)=>({[funcSymbol]:value}); const unwrapFunc=(value)=>value[funcSymbol]; const unwrapValue=(value)=>{ if(isInputFunc(value)){ return unwrapFunc(value) } return value };