From c583cff6174c1be66b15bf8edabf78d0bba148a6 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Fri, 3 Nov 2023 12:33:58 -0700 Subject: [PATCH] fix: conditional tests --- .../src/services/engine-router-service.js | 7 +++-- test-app/package.json | 1 + .../routeable-engine-demo-refresh-test.js | 29 +++++++++++++++---- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/ember-engines-router-service/src/services/engine-router-service.js b/ember-engines-router-service/src/services/engine-router-service.js index a1d8823..e9f72d9 100644 --- a/ember-engines-router-service/src/services/engine-router-service.js +++ b/ember-engines-router-service/src/services/engine-router-service.js @@ -10,6 +10,9 @@ import { namespaceEngineRouteName } from '../utils/namespace-engine-route-name'; import { getRootOwner } from '../utils/root-owner'; import { resemblesURL } from '../utils/resembles-url'; +const warningMessage = + 'Refresh method is not available in ember-source below v4.1'; + export default class EngineRouterService extends Service.extend(Evented) { constructor(...args) { super(...args); @@ -77,7 +80,7 @@ export default class EngineRouterService extends Service.extend(Evented) { ...args ); } else { - assert('Refresh method is not available in ember-source below v4.1'); + assert(warningMessage); } } @@ -88,7 +91,7 @@ export default class EngineRouterService extends Service.extend(Evented) { ...args ); } else { - assert('Refresh method is not available in ember-source below v4.1'); + assert(warningMessage); } } diff --git a/test-app/package.json b/test-app/package.json index 970e1ab..f95edd6 100644 --- a/test-app/package.json +++ b/test-app/package.json @@ -37,6 +37,7 @@ "@ember/optional-features": "^2.0.0", "@ember/string": "^3.1.1", "@ember/test-helpers": "^2.9.3", + "@embroider/macros": "^1.13.2", "@embroider/test-setup": "^2.0.2", "@glimmer/component": "^1.1.2", "@glimmer/tracking": "^1.1.2", diff --git a/test-app/tests/acceptance/routeable-engine-demo-refresh-test.js b/test-app/tests/acceptance/routeable-engine-demo-refresh-test.js index fd14c3c..ae13e37 100644 --- a/test-app/tests/acceptance/routeable-engine-demo-refresh-test.js +++ b/test-app/tests/acceptance/routeable-engine-demo-refresh-test.js @@ -1,20 +1,37 @@ import { module, test } from 'qunit'; import { setupApplicationTest } from 'ember-qunit'; import { visit, find, click } from '@ember/test-helpers'; +import { macroCondition, dependencySatisfies } from '@embroider/macros'; + +const warningMessage = + 'Refresh method is not available in ember-source below v4.1'; module('Acceptance | Engine Router Service | Refresh Method', function (hooks) { setupApplicationTest(hooks); test('refresh without params triggers refresh with current route', async function (assert) { + assert.expect(1); await visit('/routable-engine-demo/ember-blog/new'); let counter = await find('.route-refresh-counter').textContent; - await click('.refresh'); - - counter = parseInt(counter, 10); - counter = ++counter; - counter = counter.toString(); - assert.dom('.route-refresh-counter').hasText(counter); + if (macroCondition(dependencySatisfies('ember-source', '>= 4.1.0'))) { + await click('.refresh'); + + counter = parseInt(counter, 10); + counter = ++counter; + counter = counter.toString(); + assert.dom('.route-refresh-counter').hasText(counter); + } else { + // eslint-disable-next-line qunit/no-conditional-assertions + assert.throws( + async () => { + await click('.refresh'); + }, + (error) => { + assert.strictEqual(error.message, warningMessage); + } + ); + } }); test('refresh with params triggers refresh on provided route', async function (assert) {