App won't build with ember-exam 6.1.0 and ember-mocha
Build Error (Bundler)
ember-exam tried to import "ember-qunit" but the package was not resolvable from {directories}/node_modules/ember-exam
Stack Trace and Error Report: /var/folders/qf/lrfvnjyn57bf8fs0g908c0p40000gn/T/error.dump.5fcdb4584b886598cb025504493336b4.log
Steps to reproduce:
- Create new ember app from scratch
- Install
ember-examandember-mocha - Uninstall
ember-qunit - Start app
The log as well just in case it's desired:
ERROR Summary:
- broccoliBuilderErrorStack: Error: ember-exam tried to import "ember-qunit" but the package was not resolvable from /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-exam
at Package.resolve (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/package.js:163:19)
at Splitter.<anonymous> (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:76:38)
at Generator.next (<anonymous>)
at /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:4:12)
at Splitter.handleLiteralImport (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:75:16)
at Splitter.<anonymous> (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:65:32)
at Generator.next (<anonymous>)
at /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:8:71
- code: [undefined]
- codeFrame: ember-exam tried to import "ember-qunit" but the package was not resolvable from /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-exam
- errorMessage: ember-exam tried to import "ember-qunit" but the package was not resolvable from /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-exam
at Bundler
-~- created here: -~-
at new Plugin (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/node_modules/broccoli-plugin/dist/index.js:47:36)
at new Bundler (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/bundler.js:34:9)
at AutoImport.makeBundler (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/auto-import.js:57:16)
at AutoImport.addTo (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/auto-import.js:67:38)
at EmberApp.host.addonPostprocessTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/auto-import.js:101:29)
at EmberApp.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-cli/lib/broccoli/ember-app.js:1665:17)
at EmberApp.appInstance.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-classic-decorator/node_modules/@embroider/macros/src/ember-addon-main.js:48:35)
at EmberApp.appInstance.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-cli-mirage/node_modules/@embroider/macros/src/ember-addon-main.js:48:35)
at EmberApp.appInstance.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-exam/node_modules/@embroider/macros/src/ember-addon-main.js:48:35)
at EmberApp.appInstance.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-basic-dropdown/node_modules/@embroider/macros/src/ember-addon-main.js:48:35)
-~- (end) -~-
- errorType: Build Error
- location:
- column: [undefined]
- file: [undefined]
- line: [undefined]
- treeDir: [undefined]
- message: ember-exam tried to import "ember-qunit" but the package was not resolvable from /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-exam
at Bundler
-~- created here: -~-
at new Plugin (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/node_modules/broccoli-plugin/dist/index.js:47:36)
at new Bundler (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/bundler.js:34:9)
at AutoImport.makeBundler (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/auto-import.js:57:16)
at AutoImport.addTo (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/auto-import.js:67:38)
at EmberApp.host.addonPostprocessTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/auto-import.js:101:29)
at EmberApp.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-cli/lib/broccoli/ember-app.js:1665:17)
at EmberApp.appInstance.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-classic-decorator/node_modules/@embroider/macros/src/ember-addon-main.js:48:35)
at EmberApp.appInstance.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-cli-mirage/node_modules/@embroider/macros/src/ember-addon-main.js:48:35)
at EmberApp.appInstance.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-exam/node_modules/@embroider/macros/src/ember-addon-main.js:48:35)
at EmberApp.appInstance.toTree (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-basic-dropdown/node_modules/@embroider/macros/src/ember-addon-main.js:48:35)
-~- (end) -~-
- name: Error
- nodeAnnotation: [undefined]
- nodeName: Bundler
- originalErrorMessage: ember-exam tried to import "ember-qunit" but the package was not resolvable from /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-exam
- stack: Error: ember-exam tried to import "ember-qunit" but the package was not resolvable from /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-exam
at Package.resolve (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/package.js:163:19)
at Splitter.<anonymous> (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:76:38)
at Generator.next (<anonymous>)
at /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:4:12)
at Splitter.handleLiteralImport (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:75:16)
at Splitter.<anonymous> (/Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:65:32)
at Generator.next (<anonymous>)
at /Users/rbaxter/gg/client/src/greenlight/node_modules/ember-auto-import/js/splitter.js:8:71
=================================================================================
Works fine on 6.0.1. This broke our app on upgrading to 6.1.0 and a colleague (@jeffhertzler) and I reproduced it in minimal format.
It looks like that a change is needed on this line -> https://github.com/ember-cli/ember-exam/blob/master/index.js#L23
Tested on your project which is using mocha
let options = {
exclude: ['ember-mocha', 'mocha', 'ember-qunit', 'qunit']
};
Works fine (your app build, test run correctly), tested same code on a project using ember-qunit > 5 and it is working fine
I guess that an additional check need to be done here
- if project is using
ember-mochathenoptions.excludeshould be set to['ember-mocha', 'mocha', 'ember-qunit', 'qunit'] - if project is using
ember-qunit<5.0.0-beta.1, thenoptions.excludeshould be set to['ember-mocha', 'mocha', 'ember-qunit'] - if project is using
ember-qunit>5.0.0-beta.1, thenoptions.excludeshould be set to['ember-mocha', 'mocha', 'ember-qunit', 'qunit']
Not sure about the why, will try to take some times to better understand it and, in that case, suggest a PR
ping @robertpbaxter if you wanna try https://github.com/ember-cli/ember-exam/pull/699
this PR fixes the issue on the codebase @robertpbaxter was referring to