From 0d311ce03ab0e2c15feeea5f680785f225bb729b Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Tue, 5 Mar 2019 18:13:47 +0000 Subject: [PATCH] Resolved "Use defineProperty to define computed properties" deprecations refs https://github.com/TryGhost/Ghost/issues/10310 - https://www.emberjs.com/deprecations/v3.x/#toc_ember-meta-descriptor-on-object - required to allow upgrading to Ember > 3.5 --- .../components/gh-task-button-test.js | 39 ++++++++++--------- .../tests/unit/controllers/editor-test.js | 9 +++-- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/ghost/admin/tests/integration/components/gh-task-button-test.js b/ghost/admin/tests/integration/components/gh-task-button-test.js index 70383ba6ec..2a540a341c 100644 --- a/ghost/admin/tests/integration/components/gh-task-button-test.js +++ b/ghost/admin/tests/integration/components/gh-task-button-test.js @@ -1,5 +1,6 @@ import hbs from 'htmlbars-inline-precompile'; import {click, find, render, settled} from '@ember/test-helpers'; +import {defineProperty} from '@ember/object'; import {describe, it} from 'mocha'; import {expect} from 'chai'; import {run} from '@ember/runloop'; @@ -37,13 +38,13 @@ describe('Integration: Component: gh-task-button', function () { }); it('shows spinner whilst running', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); })); await render(hbs`{{gh-task-button task=myTask}}`); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { expect(find('button')).to.have.descendants('svg'); @@ -53,13 +54,13 @@ describe('Integration: Component: gh-task-button', function () { }); it('shows running text when passed whilst running', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); })); await render(hbs`{{gh-task-button task=myTask runningText="Running"}}`); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { expect(find('button')).to.have.descendants('svg'); @@ -71,14 +72,14 @@ describe('Integration: Component: gh-task-button', function () { // skipped due to random failures on Travis - https://github.com/TryGhost/Ghost/issues/10308 it.skip('appears disabled whilst running', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); })); await render(hbs`{{gh-task-button task=myTask}}`); expect(find('button'), 'initial class').to.not.have.class('appear-disabled'); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { expect(find('button'), 'running class').to.have.class('appear-disabled'); @@ -92,14 +93,14 @@ describe('Integration: Component: gh-task-button', function () { }); it('shows success on success', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); return true; })); await render(hbs`{{gh-task-button task=myTask}}`); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { expect(find('button')).to.have.class('gh-btn-green'); @@ -110,14 +111,14 @@ describe('Integration: Component: gh-task-button', function () { }); it('assigns specified success class on success', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); return true; })); await render(hbs`{{gh-task-button task=myTask successClass="im-a-success"}}`); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { expect(find('button')).to.not.have.class('gh-btn-green'); @@ -129,7 +130,7 @@ describe('Integration: Component: gh-task-button', function () { }); it('shows failure when task errors', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { try { yield timeout(50); throw new ReferenceError('test error'); @@ -140,7 +141,7 @@ describe('Integration: Component: gh-task-button', function () { await render(hbs`{{gh-task-button task=myTask}}`); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { expect(find('button')).to.have.class('gh-btn-red'); @@ -151,14 +152,14 @@ describe('Integration: Component: gh-task-button', function () { }); it('shows failure on falsy response', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); return false; })); await render(hbs`{{gh-task-button task=myTask}}`); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { expect(find('button')).to.have.class('gh-btn-red'); @@ -169,14 +170,14 @@ describe('Integration: Component: gh-task-button', function () { }); it('assigns specified failure class on failure', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); return false; })); await render(hbs`{{gh-task-button task=myTask failureClass="im-a-failure"}}`); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { expect(find('button')).to.not.have.class('gh-btn-red'); @@ -190,7 +191,7 @@ describe('Integration: Component: gh-task-button', function () { it('performs task on click', async function () { let taskCount = 0; - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); taskCount = taskCount + 1; })); @@ -204,7 +205,7 @@ describe('Integration: Component: gh-task-button', function () { }); it.skip('keeps button size when showing spinner', async function () { - this.set('myTask', task(function* () { + defineProperty(this, 'myTask', task(function* () { yield timeout(50); })); @@ -213,7 +214,7 @@ describe('Integration: Component: gh-task-button', function () { let height = find('button').clientHeight; expect(find('button')).to.not.have.attr('style'); - this.get('myTask').perform(); + this.myTask.perform(); run.later(this, function () { // we can't test exact width/height because Chrome/Firefox use different rounding methods diff --git a/ghost/admin/tests/unit/controllers/editor-test.js b/ghost/admin/tests/unit/controllers/editor-test.js index d3b00a8476..ca355fa099 100644 --- a/ghost/admin/tests/unit/controllers/editor-test.js +++ b/ghost/admin/tests/unit/controllers/editor-test.js @@ -1,5 +1,6 @@ import EmberObject from '@ember/object'; import RSVP from 'rsvp'; +import {defineProperty} from '@ember/object'; import {describe, it} from 'mocha'; import {expect} from 'chai'; import {settled} from '@ember/test-helpers'; @@ -59,7 +60,7 @@ describe('Unit: Controller: editor', function () { let {controller} = this; controller.set('target', {send() {}}); - controller.set('generateSlug', task(function * () { + defineProperty(controller, 'generateSlug', task(function * () { this.set('post.slug', 'test-slug'); yield RSVP.resolve(); })); @@ -79,7 +80,7 @@ describe('Unit: Controller: editor', function () { let {controller} = this; controller.set('target', {send() {}}); - controller.set('generateSlug', task(function * () { + defineProperty(controller, 'generateSlug', task(function * () { this.set('post.slug', 'test-slug'); yield RSVP.resolve(); })); @@ -100,7 +101,7 @@ describe('Unit: Controller: editor', function () { let {controller} = this; controller.set('target', {send() {}}); - controller.set('generateSlug', task(function * () { + defineProperty(controller, 'generateSlug', task(function * () { expect(false, 'generateSlug should not be called').to.equal(true); yield RSVP.resolve(); })); @@ -124,7 +125,7 @@ describe('Unit: Controller: editor', function () { let {controller} = this; controller.set('target', {send() {}}); - controller.set('generateSlug', task(function * () { + defineProperty(controller, 'generateSlug', task(function * () { expect(false, 'generateSlug should not be called').to.equal(true); yield RSVP.resolve(); }));