From 73ec7b0d1b90735cfc3dce86e8565c77f44617e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie-H=C3=A9l=C3=A8ne?= Date: Mon, 8 Jul 2024 15:33:05 +0200 Subject: [PATCH] fix(orga): display targetProfiles categories in multi-select options when duplicating a campaign --- orga/app/components/campaign/create-form.js | 12 ++---------- orga/app/routes/authenticated/campaigns/new.js | 5 +++-- .../unit/routes/authenticated/campaigns/new_test.js | 2 ++ 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/orga/app/components/campaign/create-form.js b/orga/app/components/campaign/create-form.js index 3fdddd660b6..9635f471941 100644 --- a/orga/app/components/campaign/create-form.js +++ b/orga/app/components/campaign/create-form.js @@ -9,14 +9,6 @@ export default class CreateForm extends Component { @service intl; @tracked wantIdPix = Boolean(this.args.campaign.idPixLabel); - @tracked targetProfiles = []; - - constructor() { - super(...arguments); - Promise.resolve(this.args.targetProfiles).then((targetProfiles) => { - this.targetProfiles = targetProfiles; - }); - } get isMultipleSendingAssessmentEnabled() { return this.currentUser.prescriber.enableMultipleSendingAssessment; @@ -27,7 +19,7 @@ export default class CreateForm extends Component { } get targetOwnerOptions() { - const options = this.targetProfiles.map((targetProfile) => { + const options = this.args.targetProfiles.map((targetProfile) => { return { value: targetProfile.id, label: targetProfile.name, @@ -94,7 +86,7 @@ export default class CreateForm extends Component { @action selectTargetProfile(targetProfileId) { - this.args.campaign.targetProfile = this.targetProfiles.find( + this.args.campaign.targetProfile = this.args.targetProfiles.find( (targetProfile) => targetProfile.id === targetProfileId, ); } diff --git a/orga/app/routes/authenticated/campaigns/new.js b/orga/app/routes/authenticated/campaigns/new.js index 750f204d517..973f51cbb31 100644 --- a/orga/app/routes/authenticated/campaigns/new.js +++ b/orga/app/routes/authenticated/campaigns/new.js @@ -1,6 +1,7 @@ import Route from '@ember/routing/route'; import { service } from '@ember/service'; import pick from 'lodash/pick'; +import RSVP from 'rsvp'; export default class NewRoute extends Route { @service currentUser; @@ -45,7 +46,7 @@ export default class NewRoute extends Route { } } - return { + return RSVP.hash({ campaign: this.store.createRecord('campaign', { organization, ownerId: this.currentUser.prescriber.id, @@ -53,7 +54,7 @@ export default class NewRoute extends Route { }), targetProfiles: organization.targetProfiles, membersSortedByFullName, - }; + }); } resetController(controller, isExiting) { diff --git a/orga/tests/unit/routes/authenticated/campaigns/new_test.js b/orga/tests/unit/routes/authenticated/campaigns/new_test.js index ad53dfb65f8..ddbca035f2a 100644 --- a/orga/tests/unit/routes/authenticated/campaigns/new_test.js +++ b/orga/tests/unit/routes/authenticated/campaigns/new_test.js @@ -91,6 +91,7 @@ module('Unit | Route | authenticated/campaigns/new', function (hooks) { const organization = EmberObject.create({ id: 12345, + targetProfiles: new Promise((resolve) => resolve([])), }); class CurrentUserStub extends Service { @@ -142,6 +143,7 @@ module('Unit | Route | authenticated/campaigns/new', function (hooks) { assert.strictEqual(await model.campaign, duplicatedCampaignRecord); sinon.assert.calledWithExactly(createRecordStub, 'campaign', expectedCampaignAttributes); + assert.false(model.targetProfiles instanceof Promise); }); });