dequelabs / axe-core-npm

Mozilla Public License 2.0
592 stars 67 forks source link

Fix default commonJs export #940

Closed dequejenn closed 9 months ago

dequejenn commented 9 months ago

In 4.7.3 we accidentally released a breaking change in the @axe-core/webdriverjs package by no longer having a default export. Need to add it back in so the following works:

const AxeBuilder = require('@axe-core/webdriverjs');
const WebDriver = require('selenium-webdriver');

const driver = new WebDriver.Builder().forBrowser('firefox').build();

driver.get('https://dequeuniversity.com/demo/mars/').then(() => {
  new AxeBuilder(driver).analyze((err, results) => {
    console.log(results);
  });
});

QA Notes: Ensure you can require the package using the default export without errors

padmavemulapati commented 9 months ago

Verified with the latest canary build (axe-core-npm_4.8.2-4af4d7d.0)

WebdriverJS
1. CJS 1. Implicit Export - Const implicitDefaultExport = require(‘@axe-core/webdriverjs’); - test snippet: ``` await driver.get('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitExport(driver).analyze(); ``` 2. Explicit Export - Const explicitDefaultExport = require(‘@axe-core/webdriverjs’).default; testSnippet: ``` await driver.get('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new explicitExport(driver).analyze(); ``` 3. Named Export - Const { AxeBuilder } = require(‘@axe-core/webdriverjs’); (or)Const AxeBuilder = require(‘@axe-core/webdriverjs’).AxeBuilder; test snippet: ``` await driver.get('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder(driver).analyze(); ```
2. MJS 1. Implicit Export - import AxeBuilder from '@axe-core/webdriverjs'; - test snippet: ``` await driver.get('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitExport(driver).analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/webdriverjs'; test snippet: ``` await driver.get('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder(driver).analyze(); ```
3. TS 1. Implicit Export - import AxeBuilder from '@axe-core/webdriverjs'; - test snippet: ``` await driver.get('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitExport(driver).analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/webdriverjs'; test snippet: ``` await driver.get('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder(driver).analyze(); ```
WebdriverIO
1. CJS 1. Implicit Export - Const implicitDefaultExport = require(‘@axe-core/webdriverio’); - test snippet: ``` wait client.url('http://qateam.dequecloud.com/attest/api/test.html'); const builder = new implicitDefaultExport({client}); const results = await builder.analyze(); ``` 2. Explicit Export - Const explicitDefaultExport = require(‘@axe-core/webdriverio’).default; testSnippet: ``` await client.url('http://qateam.dequecloud.com/attest/api/test.html'); const builder = new explicitDefaultExport({client}); const results = await builder.analyze(); ``` 3. Named Export - Const { AxeBuilder } = require(‘@axe-core/webdriverio’); (or)Const AxeBuilder = require(‘@axe-core/webdriverjs’).AxeBuilder; test snippet: ``` await client.url('http://qateam.dequecloud.com/attest/api/test.html'); const builder = new AxeBuilder({client}); const results = await builder.analyze(); ```
2. MJS 1. Implicit Export - import AxeBuilder from '@axe-core/webdriverio'; - test snippet: ``` await client.url('http://qateam.dequecloud.com/attest/api/test.html'); const builder = new explicitDefaultExport({client}); const results = await builder.analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/webdriverio'; test snippet: ``` await client.url('http://qateam.dequecloud.com/attest/api/test.html'); const builder = new AxeBuilder({client}); const results = await builder.analyze(); ```
3. TS 1. Implicit Export - import AxeBuilder from '@axe-core/webdriverio'; - test snippet: ``` await client.url('http://qateam.dequecloud.com/attest/api/test.html'); const builder = new explicitDefaultExport({client}); const results = await builder.analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/webdriverio'; test snippet: ``` await client.url('http://qateam.dequecloud.com/attest/api/test.html'); const builder = new AxeBuilder({client}); const results = await builder.analyze(); ```
Puppeteer
1. CJS 1. Implicit Export - Const implicitDefaultExport = require(‘@axe-core/puppeteer’); - test snippet: ``` await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitDefaultExport(page).analyze(); ``` 2. Explicit Export - Const explicitDefaultExport = require(‘@axe-core/puppeteer’).default; testSnippet: ``` await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new explicitDefaultExport(page).analyze(); ``` 3. Named Export - Const { AxeBuilder } = require(‘@axe-core/puppeteer’); (or)Const AxeBuilder = require(‘@axe-core/puppeteer’).AxeBuilder; test snippet: ``` await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder(page).analyze(); ```
2. MJS 1. Implicit Export - import AxeBuilder from '@axe-core/puppeteer'; - test snippet: ``` await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitDefaultExport(page).analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/puppeteer'; test snippet: ``` await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder(page).analyze(); ```
3. TS 1. Implicit Export - import AxeBuilder from '@axe-core/puppeteer'; - test snippet: ``` await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitDefaultExport(page).analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/puppeteer'; test snippet: ``` await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder(page).analyze(); ```
Playwright
1. CJS 1. Implicit Export - Const implicitDefaultExport = require(‘@axe-core/playwright’); - test snippet: ``` const page = await context.newPage(); await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitDefaultExport({ page }).analyze() ``` 2. Explicit Export - Const explicitDefaultExport = require(‘@axe-core/playwright’).default; testSnippet: ``` const page = await context.newPage(); await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new explicitDefaultExport({ page }).analyze() ``` 3. Named Export - Const { AxeBuilder } = require(‘@axe-core/playwright’); (or)Const AxeBuilder = require(‘@axe-core/playwright’).AxeBuilder; test snippet: ``` const page = await context.newPage(); await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder({ page }).analyze() ```
2. MJS 1. Implicit Export - import AxeBuilder from '@axe-core/playwright'; - test snippet: ``` const page = await context.newPage(); await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitDefaultExport({ page }).analyze() ``` 2. Named Export - import { AxeBuilder } from '@axe-core/playwright'; test snippet: ``` const page = await context.newPage(); await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder({ page }).analyze() ```
3. TS 1. Implicit Export - import AxeBuilder from '@axe-core/playwright'; - test snippet: ``` const page = await context.newPage(); await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new implicitDefaultExport({ page }).analyze() ``` 2. Named Export - import { AxeBuilder } from '@axe-core/playwright'; test snippet: ``` const page = await context.newPage(); await page.goto('http://qateam.dequecloud.com/attest/api/test.html'); const results = await new AxeBuilder({ page }).analyze() ```

Environment:

Label Value
Product axe-core/webdriverio
Version 4.8.2-4af4d7d.0
OS-Details MAC- Intel Core i7 - 11.6.8
BrowserDetails Chrome Version 119.0.1 (Official Build) (64-bit) (edited)
padmavemulapati commented 7 months ago

Verified with the latest canary build (axe-core-npm_4.8.3-6b60442.0)

WebdriverJS
1. CJS 1. Implicit Export - Const implicitDefaultExport = require(‘@axe-core/webdriverjs’); - test snippet: ``` await driver.get('http://abcdcomputech.dequecloud.com/'); const results = await new implicitExport(driver).analyze(); ``` 2. Explicit Export - Const explicitDefaultExport = require(‘@axe-core/webdriverjs’).default; testSnippet: ``` await driver.get('http://abcdcomputech.dequecloud.com/'); const results = await new explicitExport(driver).analyze(); ``` 3. Named Export - Const { AxeBuilder } = require(‘@axe-core/webdriverjs’); (or)Const AxeBuilder = require(‘@axe-core/webdriverjs’).AxeBuilder; test snippet: ``` await driver.get('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder(driver).analyze(); ```
2. MJS 1. Implicit Export - import AxeBuilder from '@axe-core/webdriverjs'; - test snippet: ``` await driver.get('http://abcdcomputech.dequecloud.com/'); const results = await new implicitExport(driver).analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/webdriverjs'; test snippet: ``` await driver.get('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder(driver).analyze(); ```
3. TS 1. Implicit Export - import AxeBuilder from '@axe-core/webdriverjs'; - test snippet: ``` await driver.get('http://abcdcomputech.dequecloud.com/'); const results = await new implicitExport(driver).analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/webdriverjs'; test snippet: ``` await driver.get('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder(driver).analyze(); ```
WebdriverIO
1. CJS 1. Implicit Export - Const implicitDefaultExport = require(‘@axe-core/webdriverio’); - test snippet: ``` wait client.url('http://abcdcomputech.dequecloud.com/'); const builder = new implicitDefaultExport({client}); const results = await builder.analyze(); ``` 2. Explicit Export - Const explicitDefaultExport = require(‘@axe-core/webdriverio’).default; testSnippet: ``` await client.url('http://abcdcomputech.dequecloud.com/'); const builder = new explicitDefaultExport({client}); const results = await builder.analyze(); ``` 3. Named Export - Const { AxeBuilder } = require(‘@axe-core/webdriverio’); (or)Const AxeBuilder = require(‘@axe-core/webdriverjs’).AxeBuilder; test snippet: ``` await client.url('http://abcdcomputech.dequecloud.com/'); const builder = new AxeBuilder({client}); const results = await builder.analyze(); ```
2. MJS 1. Implicit Export - import AxeBuilder from '@axe-core/webdriverio'; - test snippet: ``` await client.url('http://abcdcomputech.dequecloud.com/'); const builder = new explicitDefaultExport({client}); const results = await builder.analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/webdriverio'; test snippet: ``` await client.url('http://abcdcomputech.dequecloud.com/'); const builder = new AxeBuilder({client}); const results = await builder.analyze(); ```
3. TS 1. Implicit Export - import AxeBuilder from '@axe-core/webdriverio'; - test snippet: ``` await client.url('http://abcdcomputech.dequecloud.com/'); const builder = new explicitDefaultExport({client}); const results = await builder.analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/webdriverio'; test snippet: ``` await client.url('http://abcdcomputech.dequecloud.com/'); const builder = new AxeBuilder({client}); const results = await builder.analyze(); ```
Puppeteer
1. CJS 1. Implicit Export - Const implicitDefaultExport = require(‘@axe-core/puppeteer’); - test snippet: ``` await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new implicitDefaultExport(page).analyze(); ``` 2. Explicit Export - Const explicitDefaultExport = require(‘@axe-core/puppeteer’).default; testSnippet: ``` await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new explicitDefaultExport(page).analyze(); ``` 3. Named Export - Const { AxeBuilder } = require(‘@axe-core/puppeteer’); (or)Const AxeBuilder = require(‘@axe-core/puppeteer’).AxeBuilder; test snippet: ``` await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder(page).analyze(); ```
2. MJS 1. Implicit Export - import AxeBuilder from '@axe-core/puppeteer'; - test snippet: ``` await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new implicitDefaultExport(page).analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/puppeteer'; test snippet: ``` await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder(page).analyze(); ```
3. TS 1. Implicit Export - import AxeBuilder from '@axe-core/puppeteer'; - test snippet: ``` await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new implicitDefaultExport(page).analyze(); ``` 2. Named Export - import { AxeBuilder } from '@axe-core/puppeteer'; test snippet: ``` await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder(page).analyze(); ```
Playwright
1. CJS 1. Implicit Export - Const implicitDefaultExport = require(‘@axe-core/playwright’); - test snippet: ``` const page = await context.newPage(); await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new implicitDefaultExport({ page }).analyze() ``` 2. Explicit Export - Const explicitDefaultExport = require(‘@axe-core/playwright’).default; testSnippet: ``` const page = await context.newPage(); await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new explicitDefaultExport({ page }).analyze() ``` 3. Named Export - Const { AxeBuilder } = require(‘@axe-core/playwright’); (or)Const AxeBuilder = require(‘@axe-core/playwright’).AxeBuilder; test snippet: ``` const page = await context.newPage(); await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder({ page }).analyze() ```
2. MJS 1. Implicit Export - import AxeBuilder from '@axe-core/playwright'; - test snippet: ``` const page = await context.newPage(); await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new implicitDefaultExport({ page }).analyze() ``` 2. Named Export - import { AxeBuilder } from '@axe-core/playwright'; test snippet: ``` const page = await context.newPage(); await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder({ page }).analyze() ```
3. TS 1. Implicit Export - import AxeBuilder from '@axe-core/playwright'; - test snippet: ``` const page = await context.newPage(); await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new implicitDefaultExport({ page }).analyze() ``` 2. Named Export - import { AxeBuilder } from '@axe-core/playwright'; test snippet: ``` const page = await context.newPage(); await page.goto('http://abcdcomputech.dequecloud.com/'); const results = await new AxeBuilder({ page }).analyze() ```

Environment:

Label Value
Product axe-core/webdriverio
Version 4.8.3-6b60442.0
OS-Details MAC- Intel Core i7 - 11.6.8
BrowserDetails CChrome Version 120.0.6099.129 & Firefox 121.0