ember.js - Ember-Qunit: solo puedes descargar un registro que no está en vuelo
(1)
Tengo algunas pruebas de unidad que acceden a la tienda. Pensé que todo estaría bien, siempre que los envuelva en una devolución de llamada. Lamentablemente, ese no es el caso. Me aparece este error:
afterEach failed on #foo: Assertion Failed: solo puede descargar un registro que no sea inFlight.
Según lo entiendo, esto es exactamente lo que debería evitar el funcionamiento. Mi prueba se ve así:
test(''#foo'', function(assert) {
var store = this.store();
var model = this.subject();
Ember.run(function() {
var secondModel = store.createRecord(''secondModel'', { foo: ''bar'' });
model.set(''secondModel'', secondModel);
var foo = model.get(''secondModelFoo'');
assert.equal(foo, ''bar'');
});
});
Parece que esto ya no es un problema en Ember Data v1.13.8 en combinación con Ember v1.13.7.
Para la siguiente configuración:
models / first-model.js
import DS from ''ember-data'';
export default DS.Model.extend({
secondModel: DS.belongsTo(''second-model'')
});
modelos / second-model.js
import DS from ''ember-data'';
export default DS.Model.extend({
foo: DS.attr(''string'')
});
pruebas / unidad / modelos / first-model-test.js
import Ember from ''ember'';
import { moduleForModel, test } from ''ember-qunit'';
moduleForModel(''first-model'', ''Unit | Model | first model'', {
// Specify the other units that are required for this test.
needs: [''model:second-model'']
});
test(''it exists'', function(assert) {
var model = this.subject();
// var store = this.store();
assert.ok(!!model);
});
test(''#foo'', function(assert) {
var store = this.store();
var model = this.subject();
Ember.run(function() {
assert.expect(1);
var secondModel = store.createRecord(''second-model'', { foo: ''bar'' });
model.set(''secondModel'', secondModel);
var foo = model.get(''secondModel.foo'');
assert.equal(foo, ''bar'');
});
});
Pruebas pasan Repositorio de proyectos de demostración en GitHub.