Skip to content

Commit

Permalink
Avoid MODEL_FACTORY_INJECTION deprecations in tests on Ember >= 2.14.
Browse files Browse the repository at this point in the history
  • Loading branch information
rwjblue committed Aug 14, 2017
1 parent 7d1b251 commit 854c298
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 22 deletions.
5 changes: 4 additions & 1 deletion tests/dummy/app/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@ import Ember from 'ember';
import Resolver from './resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';
import {
setup as setupModelFactoryInjections
} from 'dummy/tests/helpers/model-factory-injection';

let App;

Ember.MODEL_FACTORY_INJECTIONS = true;
setupModelFactoryInjections();

App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
Expand Down
14 changes: 14 additions & 0 deletions tests/helpers/model-factory-injection.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Ember from 'ember';
import hasEmberVersion from 'ember-test-helpers/has-ember-version';

let ORIGINAL_MODEL_FACTORY_INJECTIONS = Ember.MODEL_FACTORY_INJECTIONS;

export function setup(value = true) {
if (!hasEmberVersion(2, 14)) {
Ember.MODEL_FACTORY_INJECTIONS = value;
}
}

export function reset() {
setup(ORIGINAL_MODEL_FACTORY_INJECTIONS);
}
9 changes: 6 additions & 3 deletions tests/integration/injection-test.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import {
setup as setupModelFactoryInjections,
reset as resetModelFactoryInjections
} from 'dummy/tests/helpers/model-factory-injection';
import setupStore from 'dummy/tests/helpers/store';
import Ember from 'ember';
import DS from 'ember-data';
import { module, test } from 'qunit';

let env, hasFactoryFor, originalLookupFactory, originalOwnerLookupFactory, originalFactoryFor;
let originalMODEL_FACTORY_INJECTIONS = Ember.MODEL_FACTORY_INJECTIONS;
const { run } = Ember;

const model = {
Expand Down Expand Up @@ -79,7 +82,7 @@ test('modelFor', function(assert) {

module('integration/injection eager injections', {
setup() {
Ember.MODEL_FACTORY_INJECTIONS = true;
setupModelFactoryInjections();
env = setupStore();

env.registry.injection('model:foo', 'apple', 'service:apple');
Expand All @@ -90,7 +93,7 @@ module('integration/injection eager injections', {

teardown() {
// can be removed once we no longer support ember versions without lookupFactory
Ember.MODEL_FACTORY_INJECTIONS = originalMODEL_FACTORY_INJECTIONS;
resetModelFactoryInjections();

run(env.store, 'destroy');
}
Expand Down
9 changes: 7 additions & 2 deletions tests/integration/relationships/belongs-to-test.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import {
setup as setupModelFactoryInjections,
reset as resetModelFactoryInjections
} from 'dummy/tests/helpers/model-factory-injection';
import setupStore from 'dummy/tests/helpers/store';
import Ember from 'ember';

Expand All @@ -11,10 +15,11 @@ const { attr, hasMany, belongsTo } = DS;
const { hash } = RSVP;

let env, store, User, Message, Post, Comment, Book, Chapter, Author, NewMessage;
const injectionValue = Ember.MODEL_FACTORY_INJECTIONS;

module("integration/relationship/belongs_to Belongs-To Relationships", {
beforeEach() {
setupModelFactoryInjections();

User = DS.Model.extend({
name: attr('string'),
messages: hasMany('message', { polymorphic: true, async: false }),
Expand Down Expand Up @@ -83,7 +88,7 @@ module("integration/relationship/belongs_to Belongs-To Relationships", {
},

afterEach() {
Ember.MODEL_FACTORY_INJECTIONS = injectionValue;
resetModelFactoryInjections();
run(env.container, 'destroy');
}
});
Expand Down
9 changes: 6 additions & 3 deletions tests/integration/relationships/has-many-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
/*eslint no-unused-vars: ["error", { "args": "none", "varsIgnorePattern": "(page)" }]*/

import {
setup as setupModelFactoryInjections,
reset as resetModelFactoryInjections
} from 'dummy/tests/helpers/model-factory-injection';
import setupStore from 'dummy/tests/helpers/store';
import Ember from 'ember';

Expand Down Expand Up @@ -1338,8 +1342,7 @@ test("When a polymorphic hasMany relationship is accessed, the store can call mu
test("polymorphic hasMany type-checks check the superclass when MODEL_FACTORY_INJECTIONS is enabled", function(assert) {
assert.expect(1);

let injectionValue = Ember.MODEL_FACTORY_INJECTIONS;
Ember.MODEL_FACTORY_INJECTIONS = true;
setupModelFactoryInjections();

try {
run(function () {
Expand All @@ -1351,7 +1354,7 @@ test("polymorphic hasMany type-checks check the superclass when MODEL_FACTORY_IN
assert.equal(igor.get('messages.firstObject.body'), "Well I thought the title was fine");
});
} finally {
Ember.MODEL_FACTORY_INJECTIONS = injectionValue;
resetModelFactoryInjections();
}
});

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
import {
setup as setupModelFactoryInjections,
reset as resetModelFactoryInjections
} from 'dummy/tests/helpers/model-factory-injection';

import setupStore from 'dummy/tests/helpers/store';
import Ember from 'ember';

Expand Down Expand Up @@ -155,8 +160,7 @@ testInDebug("Setting the polymorphic belongsTo with an object that does not impl

test("Setting the polymorphic belongsTo gets propagated to the inverse side - model injections true", function(assert) {
assert.expect(2);
var injectionValue = Ember.MODEL_FACTORY_INJECTIONS;
Ember.MODEL_FACTORY_INJECTIONS = true;
setupModelFactoryInjections();

try {
var user, video;
Expand Down Expand Up @@ -190,13 +194,12 @@ test("Setting the polymorphic belongsTo gets propagated to the inverse side - mo
});
});
} finally {
Ember.MODEL_FACTORY_INJECTIONS = injectionValue;
resetModelFactoryInjections();
}
});

testInDebug("Setting the polymorphic belongsTo with an object that does not implement the mixin errors out - model injections true", function(assert) {
var injectionValue = Ember.MODEL_FACTORY_INJECTIONS;
Ember.MODEL_FACTORY_INJECTIONS = true;
setupModelFactoryInjections();

try {
var user, video;
Expand Down Expand Up @@ -226,6 +229,6 @@ testInDebug("Setting the polymorphic belongsTo with an object that does not impl
}, /You cannot add a record of modelClass 'not-message' to the 'user.bestMessage' relationship \(only 'message' allowed\)/);
});
} finally {
Ember.MODEL_FACTORY_INJECTIONS = injectionValue;
resetModelFactoryInjections();
}
});
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
import {
setup as setupModelFactoryInjections,
reset as resetModelFactoryInjections
} from 'dummy/tests/helpers/model-factory-injection';

import setupStore from 'dummy/tests/helpers/store';
import Ember from 'ember';

Expand Down Expand Up @@ -170,8 +175,7 @@ testInDebug("Pushing a an object that does not implement the mixin to the mixin
});

test("Pushing to the hasMany reflects the change on the belongsTo side - model injections true", function(assert) {
var injectionValue = Ember.MODEL_FACTORY_INJECTIONS;
Ember.MODEL_FACTORY_INJECTIONS = true;
setupModelFactoryInjections();

try {
var user, video;
Expand Down Expand Up @@ -209,16 +213,15 @@ test("Pushing to the hasMany reflects the change on the belongsTo side - model i
});
});
} finally {
Ember.MODEL_FACTORY_INJECTIONS = injectionValue;
resetModelFactoryInjections();
}
});

/*
Local edits
*/
testInDebug("Pushing a an object that does not implement the mixin to the mixin accepting array errors out - model injections true", function(assert) {
var injectionValue = Ember.MODEL_FACTORY_INJECTIONS;
Ember.MODEL_FACTORY_INJECTIONS = true;
setupModelFactoryInjections();

try {
var user,notMessage;
Expand Down Expand Up @@ -255,7 +258,6 @@ testInDebug("Pushing a an object that does not implement the mixin to the mixin
});
});
} finally {
Ember.MODEL_FACTORY_INJECTIONS = injectionValue;
resetModelFactoryInjections();
}
});

0 comments on commit 854c298

Please sign in to comment.