github.com/blixtra/nomad@v0.7.2-0.20171221000451-da9a1d7bb050/ui/tests/helpers/module-for-serializer.js (about) 1 import Ember from 'ember'; 2 import { moduleForModel } from 'ember-qunit'; 3 import { initialize as fragmentSerializerInitializer } from 'nomad-ui/initializers/fragment-serializer'; 4 5 const { getOwner } = Ember; 6 7 export default function(modelName, description, options = { needs: [] }) { 8 // moduleForModel correctly wires up #Serializer.store, 9 // but module does not. 10 moduleForModel(modelName, description, { 11 unit: true, 12 needs: options.needs, 13 beforeEach() { 14 const model = this.subject(); 15 16 // Initializers don't run automatically in unit tests 17 fragmentSerializerInitializer(getOwner(model)); 18 19 // Reassign the subject to provide the serializer 20 this.subject = () => model.store.serializerFor(modelName); 21 22 if (options.beforeEach) { 23 options.beforeEach.apply(this, arguments); 24 } 25 }, 26 afterEach() { 27 if (options.beforeEach) { 28 options.beforeEach.apply(this, arguments); 29 } 30 }, 31 }); 32 }