9
votes

I am trying to test a model relationship in an ember-cli application but it keeps telling me: No model was found for 'rateType'. It appears that it can't find my models.

Files

~app/models/account.js
~app/models/rate-type.js

Account Model

export default DS.Model.extend({
    ...
    rateType: DS.belongsTo('rateType'),
});

Test

import Ember from 'ember';
import { test, moduleForModel } from 'ember-qunit';
import Account from 'app/models/account';
import RateType from 'app/models/rate-type';

moduleForModel('account', 'Account Model', {
  // Specify the other units that are required for this test.
  needs: ['model:rate-type']
});

test('rateType relationship', function() {
    expect(0);
    this.subject(); //error here
//    var relationships = Ember.get(Account, 'relationships');
//    deepEqual(relationships.get('rate-type'), [
//        { name: 'rateType', kind: 'belongsTo' }
//    ]);
});

I have tried camel casing the needs attribute butit does not like that at all. needs: ['model:rateType', 'model:fuelGroup']

2
Are you able to fix this issue? - Swati
@Swati not yet, I will try it again with ember-cli 0.0.40 next week. - jax

2 Answers

13
votes

I think what you need is the needs keyword:

moduleForModel('post', 'Unit | Model | post', {
  needs: ['model:comment', 'model:user']
});

I found it in the docs here: http://guides.emberjs.com/v1.10.0/testing/testing-models/

3
votes

Your issue is with the model. Try dasherizing 'rate-type' in the belongsTo relationship.

export default DS.Model.extend({
    ...
    rateType: DS.belongsTo('rate-type')
});