test-each
Version:
🤖 Repeat tests. Repeat tests. Repeat tests.
36 lines (24 loc) • 673 B
JavaScript
export const fixDuplicates=(input)=>{
if(typeof input==="function"){
return input
}
const nParams=input.map(normalizeParam);
return input.map((param,index)=>fixDuplicate(param,index,nParams))
};
const fixDuplicate=(param,index,nParams)=>{
const nParam=nParams[index];
const duplicateParams=nParams.filter(
(nParamA)=>nParamA.title===nParam.title
);
if(duplicateParams.length===1){
return param
}
const duplicateCounter=duplicateParams.indexOf(nParam);
const title=`${param.title} (${duplicateCounter})`;
return{value:param.value,title}
};
const normalizeParam=({value,title})=>({
value,
title:title.replaceAll(SPACES_REGEXP," ")
});
const SPACES_REGEXP=/\s+/gu;