diff --git a/addon/components/bs-link-to.js b/addon/components/bs-link-to.js index 84bb72d12..c8c544d9e 100644 --- a/addon/components/bs-link-to.js +++ b/addon/components/bs-link-to.js @@ -2,7 +2,7 @@ import Component from '@ember/component'; import { tagName } from '@ember-decorators/component'; import { inject as service } from '@ember/service'; -import { assert } from '@ember/debug'; +import { assert, deprecate } from '@ember/debug'; import ComponentChild from '../mixins/component-child'; import { dependentKeyCompat } from '@ember/object/compat'; @@ -70,6 +70,17 @@ class LinkComponent extends Component.extend(ComponentChild) { return; } + deprecate( + `Positional arguments for ember-bootstrap's link-to components are deprecated. Switch to angle bracket invocation and named arguments.`, + false, + { + id: `ember-bootstrap.link-to.positional-args`, + until: '5.0.0', + since: '4.7.0', + for: 'ember-bootstrap', + } + ); + params = params.slice(); // taken from original Ember.LnkComponent diff --git a/tests/integration/components/bs-dropdown/menu/link-to-test.js b/tests/integration/components/bs-dropdown/menu/link-to-test.js index 07d5297e4..b67f7d48f 100644 --- a/tests/integration/components/bs-dropdown/menu/link-to-test.js +++ b/tests/integration/components/bs-dropdown/menu/link-to-test.js @@ -7,6 +7,8 @@ import setupNoDeprecations from '../../../../helpers/setup-no-deprecations'; module('Integration | Component | bs-dropdown/menu/link-to', function (hooks) { setupRenderingTest(hooks); + setupNoDeprecations(hooks); + hooks.beforeEach(function () { this.owner.setupRouter(); }); @@ -39,7 +41,10 @@ module('Integration | Component | bs-dropdown/menu/link-to', function (hooks) { assert.dom('a.dropdown-item').exists({ count: 1 }, 'renders as plain element with dropdown item class'); }); - module('positional params', function () { + module('positional params', function (hooks) { + hooks.afterEach(function (assert) { + assert.deprecationsInclude(`Positional arguments for ember-bootstrap's link-to components are deprecated.`); + }); test('simple route link', async function (assert) { await render(hbs` @@ -83,9 +88,7 @@ module('Integration | Component | bs-dropdown/menu/link-to', function (hooks) { }); }); - module(' properties', function (hooks) { - setupNoDeprecations(hooks); - + module(' properties', function () { test('simple route link', async function (assert) { await render(hbs` diff --git a/tests/integration/components/bs-nav/link-to-test.js b/tests/integration/components/bs-nav/link-to-test.js index 37cf93a4e..c4b4e68a3 100644 --- a/tests/integration/components/bs-nav/link-to-test.js +++ b/tests/integration/components/bs-nav/link-to-test.js @@ -7,11 +7,15 @@ import { testNotBS3 } from '../../../helpers/bootstrap'; module('Integration | Component | bs-nav/link-to', function (hooks) { setupRenderingTest(hooks); + setupNoDeprecations(hooks); hooks.beforeEach(function () { this.owner.setupRouter(); }); - module('positional params', function () { + module('positional params', function (hooks) { + hooks.afterEach(function (assert) { + assert.deprecationsInclude(`Positional arguments for ember-bootstrap's link-to components are deprecated.`); + }); test('simple route link', async function (assert) { await render(hbs` @@ -62,9 +66,7 @@ module('Integration | Component | bs-nav/link-to', function (hooks) { }); }); - module(' properties', function (hooks) { - setupNoDeprecations(hooks); - + module(' properties', function () { test('simple route link', async function (assert) { await render(hbs`