UNPKG

@allurereport/plugin-classic

Version:

The classic version of Allure HTML report

42 lines (41 loc) 1.36 kB
const productDefects = { name: "Product defects", matchedStatuses: ["failed"], }; const testDefects = { name: "Test defects", matchedStatuses: ["broken"], }; export const matchCategories = (categories, result) => { const matched = categories.filter((category) => categoryMatch(category, result)); if (matched.length === 0 && categoryMatch(productDefects, result)) { matched.push(productDefects); } if (matched.length === 0 && categoryMatch(testDefects, result)) { matched.push(testDefects); } return matched; }; const categoryMatch = (category, result) => { const { status, statusMessage, statusTrace, flaky } = result; const matchesStatus = !category.matchedStatuses || category.matchedStatuses.length === 0 || category.matchedStatuses.includes(status); const matchesMessage = match(category.messageRegex, statusMessage); const matchesTrace = match(category.traceRegex, statusTrace); const matchesFlaky = (category.flaky ?? flaky) === flaky; return matchesStatus && matchesMessage && matchesTrace && matchesFlaky; }; const match = (regex, value) => { if (!regex) { return true; } if (!value) { return false; } try { const b = new RegExp(regex, "s").test(value); return b; } catch (ignored) { return false; } };