Upgrading from Ember 2.11 to Ember 2.12 LTS -- Component Integration Test Issue


#1

Hi All,

I am a newbie in the Ember space, and my first interaction is about upgrading from Ember 2.11 to Ember 2.12 LTS for a big project with around 15000 tests.

I have resolved a lot issues including: -. “Attempting to inject an unknown injection: ‘service:someService’” (fixed as suggested here: https://github.com/emberjs/ember.js/issues/15030)

Now I am trying to fix some issues only around the Component Integration testing (unit tests all good)

I get this error:

message: You passed controller: 'application' into the render method, but no such controller could be found. Log: | ** { type: ‘error’,** ** text: ‘‘Property set failed: object in path “session” could not be found or was destroyed.’\n’ }**

The code has been working fine at Ember 2.11 for quite a long time in a prod environment.

I need to come up with a sample for the code, as I cannot post it as it is here.

For now, has anyone faced similar issue, how did you fix it?

Sample code: moduleForComponent(‘sample-data’, ‘sample data’, { integration: true, beforeEach() { this.set(‘permChecker’, this.container.lookup(‘service:perm-checker’)); setupRouter(this); }});

The issue is with all test where I pass this to the setupRouter function.

Thanks,


#2

Hmmm. This is indeed tricky without some form of reproduction…


#3

Sorry for the late reply,

I got away with the issue by changing my helpers/setup-router.js to:

export default function({ container }) {

const router = container.lookup('router:main');
router.setupRouter();

}

from:

export default function({ container }) {

const router = container.lookup('router:main');
router.startRouting();

}