Skip to content

Commit

Permalink
feat(axe-core-4.2.0): add axe core 4.2.0 support (#660)
Browse files Browse the repository at this point in the history
#### Details

Per usual, this doesn't have any new behavior changes to the library or impact for customers; this adds pinning test cases and documents that we have verified support for 4.2.0, following the axe-core update process outlined in the README.

##### Motivation

Keep support up to date with latest axe-core version, keep web/service/libs in sync

##### Context

microsoft/accessibility-insights-web#4155

#### Pull request checklist
<!-- If a checklist item is not applicable to this change, write "n/a" in the checkbox -->
- [x] PR title respects [Conventional Commits](https://www.conventionalcommits.org) (starts with `fix:`, `feat:`, etc, and is suitable for user-facing release notes)
- [x] PR contains no breaking changes, **OR** description of both PR **and final merge commit** starts with `BREAKING CHANGE:`
- [n/a] (if applicable) Addresses issue: #0000
- [x] Added relevant unit tests for your changes
- [x] Ran `yarn precheckin`
- [x] Verified code coverage for the changes made
  • Loading branch information
dbjorge authored May 3, 2021
1 parent 6537590 commit 8fd8d6c
Show file tree
Hide file tree
Showing 17 changed files with 107,830 additions and 137 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ The [microsoft/axe-pipelines-samples](https://github.com/microsoft/axe-pipelines
The version number of this library is **independent** from the version numbers of the axe-core inputs and SARIF outputs it supports.
- axe-sarif-converter version 2.x supports input from version ^3.2.0 || ^4.0.0 of axe-core (tested with 3.2.2, 3.3.2, 3.4.1, 3.4.2, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 4.0.1, 4.0.2, and 4.1.1) and outputs SARIF v2.1
- axe-sarif-converter version 2.x supports input from version ^3.2.0 || ^4.0.0 of axe-core (tested with 3.2.2, 3.3.2, 3.4.1, 3.4.2, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 4.0.1, 4.0.2, 4.1.1, and 4.2.0) and outputs SARIF v2.1
- axe-sarif-converter version 1.x supports input from version >= 3.2.0 < 3.3.0 of axe-core (tested with 3.2.2) and outputs SARIF v2.0
Note that the SARIF format _does not use semantic versioning_, and there are breaking changes between the v2.0 and v2.1 SARIF formats. If you need compatibility with a SARIF viewer that only supports v2.0, you should use version 1.x of this library.
Expand Down
8 changes: 4 additions & 4 deletions src/__snapshots__/index.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -1388,15 +1388,15 @@ Object {
],
"tool": Object {
"driver": Object {
"downloadUri": "https://www.npmjs.com/package/axe-core/v/4.1.1",
"fullName": "axe for Web v4.1.1",
"downloadUri": "https://www.npmjs.com/package/axe-core/v/4.2.0",
"fullName": "axe for Web v4.2.0",
"informationUri": "https://www.deque.com/axe/axe-for-web/",
"name": "axe-core",
"properties": Object {
"microsoft/qualityDomain": "Accessibility",
},
"rules": Array [],
"semanticVersion": "4.1.1",
"semanticVersion": "4.2.0",
"shortDescription": Object {
"text": "An open source accessibility rules library for automated testing.",
},
Expand All @@ -1407,7 +1407,7 @@ Object {
"name": "WCAG",
},
],
"version": "4.1.1",
"version": "4.2.0",
},
},
},
Expand Down
6 changes: 4 additions & 2 deletions src/cli.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ describe('axe-sarif-converter CLI', () => {
${'w3citylights-axe-v4.0.2.axe-cli-v4.0.0.json'}
${'basic-axe-v4.1.1.axe-cli-v4.1.0.json'}
${'w3citylights-axe-v4.1.1.axe-cli-v4.1.0.json'}
${'basic-axe-v4.2.0.axe-cli-v4.1.1.json'}
${'w3citylights-axe-v4.2.0.axe-cli-v4.1.1.json'}
`(
'supports conversion from axe-cli output $inputFile',
async ({ inputFile }) => {
Expand Down Expand Up @@ -183,11 +185,11 @@ describe('axe-sarif-converter CLI', () => {
const testResultsDir = path.join(__dirname, '..', 'test-results');
const basicAxeV2File = path.join(
testResourcesDir,
'basic-axe-v4.1.1.reporter-v2.json',
'basic-axe-v4.2.0.reporter-v2.json',
);
const basicSarifFile = path.join(
testResourcesDir,
'basic-axe-v4.1.1.sarif',
'basic-axe-v4.2.0.sarif',
);

const mkdir = promisify(fs.mkdir);
Expand Down
6 changes: 5 additions & 1 deletion src/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ describe('public convertAxeToSarif API', () => {
${'basic-axe-v4.1.1.reporter-v2.json'} | ${'basic-axe-v4.1.1.sarif'}
${'w3citylights-axe-v4.1.1.reporter-v1.json'} | ${'w3citylights-axe-v4.1.1.sarif'}
${'w3citylights-axe-v4.1.1.reporter-v2.json'} | ${'w3citylights-axe-v4.1.1.sarif'}
${'basic-axe-v4.2.0.reporter-v1.json'} | ${'basic-axe-v4.2.0.sarif'}
${'basic-axe-v4.2.0.reporter-v2.json'} | ${'basic-axe-v4.2.0.sarif'}
${'w3citylights-axe-v4.2.0.reporter-v1.json'} | ${'w3citylights-axe-v4.2.0.sarif'}
${'w3citylights-axe-v4.2.0.reporter-v2.json'} | ${'w3citylights-axe-v4.2.0.sarif'}
`(
'converts pinned v1/v2 input $inputFile to pinned output $outputFile',
({ inputFile, outputFile }) => {
Expand Down Expand Up @@ -137,7 +141,7 @@ describe('public sarifReporter API', () => {
// it isn't very meaningful to test cases that involve old axe versions here.
it.each`
inputFile | outputFile
${'basic-axe-v4.1.1.reporter-raw.json'} | ${'basic-axe-v4.1.1.sarif'}
${'basic-axe-v4.2.0.reporter-raw.json'} | ${'basic-axe-v4.2.0.sarif'}
`(
'converts pinned raw input $inputFile to pinned output $outputFile',
async ({ inputFile, outputFile }) => {
Expand Down
68 changes: 68 additions & 0 deletions src/test-resources/basic-axe-v4.2.0.axe-cli-v4.1.1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
[
{
"inapplicable": [],
"incomplete": [],
"passes": [],
"testEngine": {
"name": "axe-core",
"version": "4.2.0"
},
"testEnvironment": {
"orientationAngle": 0,
"orientationType": "landscape-primary",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/90.0.4430.93 Safari/537.36",
"windowHeight": 600,
"windowWidth": 800
},
"testRunner": {
"name": "axe"
},
"timestamp": "2021-04-30T21:12:27.690Z",
"toolOptions": {
"reporter": "v1",
"runOnly": {
"type": "rule",
"values": [
"document-title"
]
}
},
"url": "file:///C:/repos/axe-sarif-converter/src/test-resources/basic.html",
"violations": [
{
"description": "Ensures each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.2/document-title?application=webdriverjs",
"id": "document-title",
"impact": "serious",
"nodes": [
{
"all": [],
"any": [
{
"data": null,
"id": "doc-has-title",
"impact": "serious",
"message": "Document does not have a non-empty <title> element",
"relatedNodes": []
}
],
"failureSummary": "Fix any of the following:\n Document does not have a non-empty <title> element",
"html": "<html class=\"deque-axe-is-ready\"><head></head><body>\n</body><script>document.documentElement.classList.add(\"deque-axe-is-ready\");</script></html>",
"impact": "serious",
"none": [],
"target": [
"html"
]
}
],
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"ACT"
]
}
]
}
]
49 changes: 49 additions & 0 deletions src/test-resources/basic-axe-v4.2.0.reporter-raw.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
[
{
"id": "document-title",
"result": "failed",
"pageLevel": false,
"impact": "serious",
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"ACT"
],
"description": "Ensures each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.2/document-title?application=axe-puppeteer",
"inapplicable": [],
"passes": [],
"incomplete": [],
"violations": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document does not have a non-empty <title> element"
}
],
"all": [],
"none": [],
"node": {
"selector": [
"html"
],
"source": "<html><head></head><body>\n</body></html>",
"xpath": [
"/html"
],
"ancestry": [
"html"
]
},
"impact": "serious",
"result": "failed"
}
]
}
]
70 changes: 70 additions & 0 deletions src/test-resources/basic-axe-v4.2.0.reporter-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"testEngine": {
"name": "axe-core",
"version": "4.2.0"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/91.0.4469.0 Safari/537.36",
"windowWidth": 800,
"windowHeight": 600,
"orientationAngle": 0,
"orientationType": "portrait-primary"
},
"timestamp": "2000-01-02T03:04:05.006Z",
"url": "http://localhost/",
"toolOptions": {
"xpath": true,
"runOnly": {
"type": "rule",
"values": [
"document-title"
]
},
"reporter": "v1"
},
"violations": [
{
"id": "document-title",
"impact": "serious",
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"ACT"
],
"description": "Ensures each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.2/document-title?application=axe-puppeteer",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document does not have a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<html><head></head><body>\n</body></html>",
"target": [
"html"
],
"xpath": [
"/html"
],
"failureSummary": "Fix any of the following:\n Document does not have a non-empty <title> element"
}
]
}
],
"passes": [],
"incomplete": [],
"inapplicable": []
}
69 changes: 69 additions & 0 deletions src/test-resources/basic-axe-v4.2.0.reporter-v2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"testEngine": {
"name": "axe-core",
"version": "4.2.0"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/91.0.4469.0 Safari/537.36",
"windowWidth": 800,
"windowHeight": 600,
"orientationAngle": 0,
"orientationType": "portrait-primary"
},
"timestamp": "2000-01-02T03:04:05.006Z",
"url": "http://localhost/",
"toolOptions": {
"xpath": true,
"runOnly": {
"type": "rule",
"values": [
"document-title"
]
},
"reporter": "v2"
},
"violations": [
{
"id": "document-title",
"impact": "serious",
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"ACT"
],
"description": "Ensures each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.2/document-title?application=axe-puppeteer",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document does not have a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<html><head></head><body>\n</body></html>",
"target": [
"html"
],
"xpath": [
"/html"
]
}
]
}
],
"passes": [],
"incomplete": [],
"inapplicable": []
}
Loading

0 comments on commit 8fd8d6c

Please sign in to comment.