From 7df5b66c42be3a6ddb561166a982c0bd48d9c6bf Mon Sep 17 00:00:00 2001 From: Matthew Beale Date: Wed, 9 Sep 2015 14:39:31 -0400 Subject: [PATCH] Do not register a router service for Ember <1.13 Versions of Ember prior to 1.13 require a full router booted by the app, or no router at all. This ensures they receive no router at all instead of the 1.13-safe one. --- lib/ember-test-helpers/has-ember-version.js | 8 ++++++++ lib/ember-test-helpers/test-module.js | 11 +++++++---- tests/test-module-for-component-test.js | 3 ++- tests/test-module-for-integration-test.js | 5 +++++ 4 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 lib/ember-test-helpers/has-ember-version.js diff --git a/lib/ember-test-helpers/has-ember-version.js b/lib/ember-test-helpers/has-ember-version.js new file mode 100644 index 000000000..7095b6996 --- /dev/null +++ b/lib/ember-test-helpers/has-ember-version.js @@ -0,0 +1,8 @@ +import Ember from 'ember'; + +export default function hasEmberVersion(major, minor) { + var numbers = Ember.VERSION.split('-')[0].split('.'); + var actualMajor = parseInt(numbers[0], 10); + var actualMinor = parseInt(numbers[1], 10); + return actualMajor > major || (actualMajor === major && actualMinor >= minor); +} diff --git a/lib/ember-test-helpers/test-module.js b/lib/ember-test-helpers/test-module.js index 6c28e4f2a..348425053 100644 --- a/lib/ember-test-helpers/test-module.js +++ b/lib/ember-test-helpers/test-module.js @@ -3,6 +3,7 @@ import { getContext, setContext, unsetContext } from './test-context'; import { Klass } from 'klassy'; import { getResolver } from './test-resolver'; import buildRegistry from './build-registry'; +import hasEmberVersion from './has-ember-version'; export default Klass.extend({ init: function(subjectName, description, callbacks) { @@ -234,10 +235,12 @@ export default Klass.extend({ this.container = items.container; this.registry = items.registry; - var thingToRegisterWith = this.registry || this.container; - var router = resolver.resolve('router:main'); - router = router || Ember.Router.extend(); - thingToRegisterWith.register('router:main', router); + if (hasEmberVersion(1, 13)) { + var thingToRegisterWith = this.registry || this.container; + var router = resolver.resolve('router:main'); + router = router || Ember.Router.extend(); + thingToRegisterWith.register('router:main', router); + } }, _setupIsolatedContainer: function() { diff --git a/tests/test-module-for-component-test.js b/tests/test-module-for-component-test.js index d29c96764..cc4ee1a55 100644 --- a/tests/test-module-for-component-test.js +++ b/tests/test-module-for-component-test.js @@ -1,5 +1,6 @@ import Ember from 'ember'; import { TestModuleForComponent } from 'ember-test-helpers'; +import hasEmberVersion from 'ember-test-helpers/has-ember-version'; import test from 'tests/test-support/qunit-test'; import qunitModuleFor from 'tests/test-support/qunit-module-for'; import { setResolverRegistry } from 'tests/test-support/resolver'; @@ -237,7 +238,7 @@ moduleForComponent('changing-color', 'component:changing-color -- handles closur integration: true }); -if (!/^1\.(11|12)/.test(Ember.VERSION)) { +if (hasEmberVersion(1,13)) { test('handles a closure actions', function() { expect(1); this.on('colorChange', function(arg) { equal(arg, 'foo'); }); diff --git a/tests/test-module-for-integration-test.js b/tests/test-module-for-integration-test.js index 070a5f365..80965e339 100644 --- a/tests/test-module-for-integration-test.js +++ b/tests/test-module-for-integration-test.js @@ -26,6 +26,11 @@ test('it can render a template', function() { equal(this.$('span').text(), 'Hello'); }); +test('it can render a link-to', function() { + this.render("{{link-to 'Hi' 'index'}}"); + ok(true, 'it renders without fail'); +}); + test('it complains if you try to use bare render', function() { var self = this; throws(function() {