charles_demers
charles_demers

Reputation: 125

How to inject the store into an Ember.Service in unit tests?

In my app I have this initializer which injects the store into all services:

export function initialize(container, application) {
  application.inject('service', 'store', 'store:main');
}

export default {
  name: 'inject-store-in-services',
  initialize: initialize
};

My problem is that when I run unit tests, services don’t have the store property. So my question: is there a way to achieve what my initializer does but inside a unit test context?

Upvotes: 10

Views: 3998

Answers (1)

jmurphyau
jmurphyau

Reputation: 2309

In recent versions of Ember you can inject the store as a service, e.g:

Ember.Service.extend({
  store: Ember.inject.service()
});

It gets the service name from the property name, so if you call it something else you need to specify 'store'.. e.g:

Ember.Service.extend({
  banana: Ember.inject.service('store')
});

Upvotes: 13

Related Questions