diff --git a/addon-test-support/setup-global-a11y-hooks.ts b/addon-test-support/setup-global-a11y-hooks.ts index 2416a509..1f7da665 100644 --- a/addon-test-support/setup-global-a11y-hooks.ts +++ b/addon-test-support/setup-global-a11y-hooks.ts @@ -1,4 +1,4 @@ -import { _registerHook, HookUnregister } from '@ember/test-helpers'; +import { _registerHook } from '@ember/test-helpers'; import { InvocationStrategy, AuditFunction } from './types'; import { getRunOptions } from './run-options'; import a11yAudit from './audit'; @@ -24,6 +24,10 @@ type HelperName = | 'typeIn' | 'visit'; +interface HookUnregister { + unregister: () => void; +} + let _unregisterHooks: HookUnregister[] = []; export const DEFAULT_A11Y_TEST_HELPER_NAMES: HelperName[] = [ diff --git a/addon-test-support/setup-middleware-reporter.ts b/addon-test-support/setup-middleware-reporter.ts index 9692f11c..d808bb24 100644 --- a/addon-test-support/setup-middleware-reporter.ts +++ b/addon-test-support/setup-middleware-reporter.ts @@ -76,7 +76,13 @@ export async function middlewareReporter(axeResults: AxeResults) { if (!currentTestResult) { let { module, testName } = QUnit.config.current; - let testMetaData = getTestMetadata(getContext()); + const context = getContext(); + if (!context) { + throw new Error( + 'You tried to run ember-a11y-testing without calling one of the `setupTest` helpers from `@ember/test-helpers`. Please make sure yoru test setup calls `setupTest()`, `setupRenderingTest()`, or `setupApplicationTest()`!' + ); + } + let testMetaData = getTestMetadata(context); let stack = (!DEBUG && new Error().stack) || ''; diff --git a/package.json b/package.json index 316398bc..4afc9ad5 100644 --- a/package.json +++ b/package.json @@ -77,13 +77,12 @@ }, "devDependencies": { "@ember/optional-features": "^2.0.0", - "@ember/test-helpers": "^2.6.0", + "@ember/test-helpers": "^2.9.3", "@embroider/test-setup": "^2.0.2", "@glimmer/component": "^1.0.4", "@glimmer/tracking": "^1.0.4", "@types/ember": "^3.16.0", "@types/ember-qunit": "^3.4.15", - "@types/ember__test-helpers": "2.6.0", "@types/qunit": "^2.11.3", "@types/rsvp": "^4.0.3", "@typescript-eslint/eslint-plugin": "^4.0.0", diff --git a/types/@ember/test-helpers.d.ts b/types/@ember/test-helpers.d.ts deleted file mode 100644 index cbe4bec9..00000000 --- a/types/@ember/test-helpers.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -type Hook = (...args: any[]) => void | Promise; - -interface BaseContext { - [key: string]: any; -} - -interface ITestMetadata { - testName?: string; - setupTypes: string[]; - usedHelpers: string[]; - [key: string]: any; - - readonly isRendering: boolean; - readonly isApplication: boolean; -} - -declare module '@ember/test-helpers' { - export type HookUnregister = { - unregister: () => void; - }; - - export function _registerHook( - helperName: string, - label: string, - hook: Hook - ): HookUnregister; - - export function _runHooks( - helperName: string, - label: string, - ...args: any[] - ): Promise; - - export function getTestMetadata(context: BaseContext): ITestMetadata; -} diff --git a/yarn.lock b/yarn.lock index 8287f83f..34cb6c91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1695,16 +1695,18 @@ mkdirp "^1.0.4" silent-error "^1.1.1" -"@ember/test-helpers@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-2.6.0.tgz#d687515c6ab49ba72717fc62046970ef4a72ea9c" - integrity sha512-N5sr3layWk60wB3maCy+/5hFHQRcTh8aqxcZTSs3Od9QkuHdWBtRgMGLP/35mXpJlgWuu3xqLpt6u3dGHc8gCg== +"@ember/test-helpers@^2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-2.9.3.tgz#c2a9d6ab1c367af92cf1a334f97eb19b8e06e6e1" + integrity sha512-ejVg4Dj+G/6zyLvQsYOvmGiOLU6AS94tY4ClaO1E2oVvjjtVJIRmVLFN61I+DuyBg9hS3cFoPjQRTZB9MRIbxQ== dependencies: "@ember/test-waiters" "^3.0.0" + "@embroider/macros" "^1.10.0" + "@embroider/util" "^1.9.0" broccoli-debug "^0.6.5" broccoli-funnel "^3.0.8" - ember-cli-babel "^7.26.6" - ember-cli-htmlbars "^5.7.1" + ember-cli-babel "^7.26.11" + ember-cli-htmlbars "^6.1.1" ember-destroyable-polyfill "^2.0.3" "@ember/test-waiters@^2.4.3 || ^3.0.0", "@ember/test-waiters@^3.0.0": @@ -1771,6 +1773,34 @@ resolve "^1.8.1" semver "^7.3.2" +"@embroider/macros@^1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-1.10.0.tgz#af3844d5db48f001b85cfb096c76727c72ad6c1e" + integrity sha512-LMbfQGk/a+f6xtvAv5fq/wf2LRxETnbgSCLUf/z6ebzmuskOUxrke+uP55chF/loWrARi9g6erFQ7RDOUoBMSg== + dependencies: + "@embroider/shared-internals" "2.0.0" + assert-never "^1.2.1" + babel-import-util "^1.1.0" + ember-cli-babel "^7.26.6" + find-up "^5.0.0" + lodash "^4.17.21" + resolve "^1.20.0" + semver "^7.3.2" + +"@embroider/shared-internals@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-2.0.0.tgz#d8205ec6944362aeecfbb51143db352430ced316" + integrity sha512-qZ2/xky9mWm5YC6noOa6AiAwgISEQ78YTZNv4SNu2PFgEK/H+Ha/3ddngzGSsnXkVnIHZyxIBzhxETonQYHY9g== + dependencies: + babel-import-util "^1.1.0" + ember-rfc176-data "^0.3.17" + fs-extra "^9.1.0" + js-string-escape "^1.0.1" + lodash "^4.17.21" + resolve-package-path "^4.0.1" + semver "^7.3.5" + typescript-memoize "^1.0.1" + "@embroider/shared-internals@^0.40.0": version "0.40.0" resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-0.40.0.tgz#2f768c60f4f35ba5f9228f046f70324851e8bfe2" @@ -1792,6 +1822,15 @@ lodash "^4.17.21" resolve "^1.20.0" +"@embroider/util@^1.9.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@embroider/util/-/util-1.10.0.tgz#8320d73651e7f5d48dac1b71fb9e6d21cac7c803" + integrity sha512-utAFKoq6ajI27jyqjvX3PiGL4m+ZyGVlVNbSbE/nOqi2llRyAkh5ltH1WkIK7jhdwQFJouo1NpOSj9J3/HDa3A== + dependencies: + "@embroider/macros" "^1.10.0" + broccoli-funnel "^3.0.5" + ember-cli-babel "^7.26.11" + "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" @@ -2461,16 +2500,6 @@ resolved "https://registry.yarnpkg.com/@types/ember__template/-/ember__template-3.16.1.tgz#30d7f50a49b190934db0f5a56dd76ad86c21efc6" integrity sha512-APQINizzizl2LHWGMFBCanRjKZQsdzqn7b+us17zbNhnx/R0IZAJq901x/i7eozCRwxsDKmGzNABSCIu6uc1Tg== -"@types/ember__test-helpers@2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@types/ember__test-helpers/-/ember__test-helpers-2.6.0.tgz#26a3e709502868fbf73d3cf06942335195f6408b" - integrity sha512-iLb4npBAi2nWdAgnL/lClJkZUXuS4pCpGq3a5yzWoNjzRZCJzLI+zbmNgfY3nQjsV8lXclgfEY0ZzGkRpHU+Xw== - dependencies: - "@types/ember" "*" - "@types/ember__application" "*" - "@types/ember__error" "*" - "@types/htmlbars-inline-precompile" "*" - "@types/ember__test@*": version "3.16.1" resolved "https://registry.yarnpkg.com/@types/ember__test/-/ember__test-3.16.1.tgz#8407e42b9835a13ef0c6ef7a7ce3aa3d7ebcb7ed" @@ -3380,7 +3409,7 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" -assert-never@^1.1.0: +assert-never@^1.1.0, assert-never@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== @@ -3578,6 +3607,11 @@ babel-import-util@^0.2.0: resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-0.2.0.tgz#b468bb679919601a3570f9e317536c54f2862e23" integrity sha512-CtWYYHU/MgK88rxMrLfkD356dApswtR/kWZ/c6JifG1m10e7tBBrs/366dFzWMAoqYmG5/JSh+94tUSpIwh+ag== +babel-import-util@^1.1.0, babel-import-util@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-1.3.0.tgz#dc9251ea39a7747bd586c1c13b8d785a42797f8e" + integrity sha512-PPzUT17eAI18zn6ek1R3sB4Krc/MbnmT1MkZQFmyhjoaEGBVwNABhfVU9+EKcDSKrrOm9OIpGhjxukx1GCiy1g== + babel-loader@^8.0.6: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -3640,6 +3674,13 @@ babel-plugin-ember-template-compilation@^1.0.0: magic-string "^0.25.7" string.prototype.matchall "^4.0.5" +babel-plugin-ember-template-compilation@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.0.2.tgz#632a082feac60fea1432fd6c9448e65bb7884fd5" + integrity sha512-/sQJbmOqfNfaEYrIayy8qpfi6GhsoMeBVR3IiihOTHaKFN9+EdTzED8fhUqfshBPu5Qz6zhPkY1aMJ3k/mAuxw== + dependencies: + babel-import-util "^1.3.0" + babel-plugin-filter-imports@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/babel-plugin-filter-imports/-/babel-plugin-filter-imports-4.0.0.tgz#068f8da15236a96a9602c36dc6f4a6eeca70a4f4" @@ -3648,17 +3689,6 @@ babel-plugin-filter-imports@^4.0.0: "@babel/types" "^7.7.2" lodash "^4.17.15" -babel-plugin-htmlbars-inline-precompile@^5.0.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-5.3.0.tgz#eeaff07c35415264aea4d6bafb5e71167f6ffb2f" - integrity sha512-WeLBQM5Y9rx2GbwfxKy47lWh+u23afdlb48sM+5RTMTLwO90oILA7znzzOls7e+bcj06Nw0H+xpRWuyhlS37hg== - dependencies: - babel-plugin-ember-modules-api-polyfill "^3.5.0" - line-column "^1.0.2" - magic-string "^0.25.7" - parse-static-imports "^1.1.0" - string.prototype.matchall "^4.0.4" - babel-plugin-htmlbars-inline-precompile@^5.2.1, babel-plugin-htmlbars-inline-precompile@^5.3.0: version "5.3.1" resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-5.3.1.tgz#5ba272e2e4b6221522401f5f1d98a73b1de38787" @@ -5965,18 +5995,17 @@ ember-cli-github-pages@^0.2.2: ember-cli-version-checker "^2.1.0" rsvp "^4.7.0" -ember-cli-htmlbars@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-5.7.1.tgz#eb5b88c7d9083bc27665fb5447a9b7503b32ce4f" - integrity sha512-9laCgL4tSy48orNoQgQKEHp93MaqAs9ZOl7or5q+8iyGGJHW6sVXIYrVv5/5O9HfV6Ts8/pW1rSoaeKyLUE+oA== +ember-cli-htmlbars@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-6.0.1.tgz#5487831d477e61682bc867fd138808269e5d2152" + integrity sha512-IDsl9uty+MXtMfp/BUTEc/Q36EmlHYj8ZdPekcoRa8hmdsigHnK4iokfaB7dJFktlf6luruei+imv7JrJrBQPQ== dependencies: "@ember/edition-utils" "^1.2.0" - babel-plugin-htmlbars-inline-precompile "^5.0.0" + babel-plugin-ember-template-compilation "^1.0.0" + babel-plugin-htmlbars-inline-precompile "^5.3.0" broccoli-debug "^0.6.5" broccoli-persistent-filter "^3.1.2" broccoli-plugin "^4.0.3" - common-tags "^1.8.0" - ember-cli-babel-plugin-helpers "^1.1.1" ember-cli-version-checker "^5.1.2" fs-tree-diff "^2.0.1" hash-for-dep "^1.5.1" @@ -5987,13 +6016,13 @@ ember-cli-htmlbars@^5.7.1: strip-bom "^4.0.0" walk-sync "^2.2.0" -ember-cli-htmlbars@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-6.0.1.tgz#5487831d477e61682bc867fd138808269e5d2152" - integrity sha512-IDsl9uty+MXtMfp/BUTEc/Q36EmlHYj8ZdPekcoRa8hmdsigHnK4iokfaB7dJFktlf6luruei+imv7JrJrBQPQ== +ember-cli-htmlbars@^6.1.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz#18ec48ee1c93f9eed862a64eb24a9d14604f1dfc" + integrity sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw== dependencies: "@ember/edition-utils" "^1.2.0" - babel-plugin-ember-template-compilation "^1.0.0" + babel-plugin-ember-template-compilation "^2.0.0" babel-plugin-htmlbars-inline-precompile "^5.3.0" broccoli-debug "^0.6.5" broccoli-persistent-filter "^3.1.2" @@ -6002,10 +6031,9 @@ ember-cli-htmlbars@^6.0.1: fs-tree-diff "^2.0.1" hash-for-dep "^1.5.1" heimdalljs-logger "^0.1.10" - json-stable-stringify "^1.0.1" + js-string-escape "^1.0.1" semver "^7.3.4" silent-error "^1.1.1" - strip-bom "^4.0.0" walk-sync "^2.2.0" ember-cli-inject-live-reload@^2.1.0: @@ -12069,7 +12097,7 @@ resolve-package-path@^3.1.0: path-root "^0.1.1" resolve "^1.17.0" -resolve-package-path@^4.0.0: +resolve-package-path@^4.0.0, resolve-package-path@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/resolve-package-path/-/resolve-package-path-4.0.3.tgz#31dab6897236ea6613c72b83658d88898a9040aa" integrity sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA== @@ -12955,7 +12983,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.matchall@^4.0.4, string.prototype.matchall@^4.0.5: +string.prototype.matchall@^4.0.5: version "4.0.6" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa" integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg== @@ -13627,6 +13655,11 @@ typescript-memoize@^1.0.0-alpha.3: resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.0.1.tgz#0a8199aa28f6fe18517f6e9308ef7bfbe9a98d59" integrity sha512-oJNge1qUrOK37d5Y6Ly2txKeuelYVsFtNF6U9kXIN7juudcQaHJQg2MxLOy0CqtkW65rVDYuTCOjnSIVPd8z3w== +typescript-memoize@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.1.1.tgz#02737495d5df6ebf72c07ba0d002e8f4cf5ccfa0" + integrity sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA== + typescript@^4.0.0: version "4.5.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8"