* For failing audits (score 0), includes detailed issues with locations and severities. * For passing audits (score 1), only includes element count.
( result: axe.Result, url: string, score: number, )
| 37 | * For passing audits (score 1), only includes element count. |
| 38 | */ |
| 39 | function toAuditOutput( |
| 40 | result: axe.Result, |
| 41 | url: string, |
| 42 | score: number, |
| 43 | ): AuditOutput { |
| 44 | const base = { |
| 45 | slug: result.id, |
| 46 | score, |
| 47 | value: result.nodes.length, |
| 48 | }; |
| 49 | |
| 50 | if (score === 0 && result.nodes.length > 0) { |
| 51 | const issues = result.nodes.map(node => toIssue(node, result, url)); |
| 52 | |
| 53 | return { |
| 54 | ...base, |
| 55 | displayValue: formatIssueSeverities(issues), |
| 56 | details: { issues }, |
| 57 | }; |
| 58 | } |
| 59 | |
| 60 | return { |
| 61 | ...base, |
| 62 | displayValue: pluralizeToken('element', result.nodes.length), |
| 63 | }; |
| 64 | } |
| 65 | |
| 66 | function formatSelector(selector: axe.CrossTreeSelector): string { |
| 67 | if (typeof selector === 'string') { |
no test coverage detected