dequelabs / axe-core-npm

Mozilla Public License 2.0
592 stars 67 forks source link

webdriverjs 4.7.3 broke default export in CJS #948

Closed dequejenn closed 9 months ago

dequejenn commented 9 months ago

In v4.7.3 we released webdriverjs with a breaking change where we broke the default export and changed it to a .default export (in CJS). We need to fix this and go back to the default export, but since this is now released we also need to support the .default export so we don't break anyone using v4.7.3.

QA NOTES: We'll be supporting both default and .default exports in all our packages going forward, and some packages will also have a named export. Tests will need to be set up in both ESM and commonJS format to import / require (respectively) the default export and possibly named export, and in CJS require the .default export.

padmavemulapati commented 9 months ago

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

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(); ```

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)

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(); ```

Environment:

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