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  }