Я переписываю проект ember для использования ember-cli. Поскольку функция Mocha describeModel
вводит хранилище, а describeModule
нет, я как бы застрял на переписывании тестов сериализатора.
import { expect, assert } from 'chai';
import { describeModel,it } from 'ember-mocha';
describeModel('connection','Connection Desc', { needs: ['model:result'] },
function() {
it('exists', function() {
var model = this.subject();
var store = this.store();
expect(model).to.be.ok;
});
});
В качестве обходного пути я вручную создаю магазин, но думаю, это не очень удобно, и я уверен, что есть более читаемый способ сделать это:
import App from '../../../app';
import { expect, assert } from 'chai';
import { describeModule, it } from 'ember-mocha';
describeModule( 'serializer:result', 'Result Serializer', { needs: ['model:result'] },
function() {
it('converts a single item on a result to a one element array', function(){
var serializer = this.subject();
App.ApplicationStore = DS.Store.extend({
adapter: DS.MochaAdapter
});
var store = App.ApplicationStore.create({
container: this.container
});
expect(
serializer.extractArray( store, store.modelFor('result'), {"results":[]})
).to.be.an.instanceOf(Array).and.have.lengthOf(0);
});
it("changes the recycle mode properly.", function () {
Mediator.ApplicationStore = DS.Store.extend({
adapter: DS.MochaAdapter
});
var store = Mediator.ApplicationStore.create({
container: this.container
});
var model = store.createRecord('result', {});
// ...
});
});
Существует возможность имитировать, но имитировать каждый возможный метод хранилища не кажется заманчивым.
Есть ли более короткий способ получить экземпляр DS.Store
(аналогичный subject
) для приведенного выше примера?