Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[BUGFIX] Inverser les en-têtes de deux colonnes et conditionne un des…
Browse files Browse the repository at this point in the history
… affichages (PIX-11752)

 #8483
pix-service-auto-merge authored Mar 22, 2024
2 parents 127855a + 88a456d commit f6f357b
Showing 7 changed files with 176 additions and 8 deletions.
9 changes: 6 additions & 3 deletions orga/app/components/campaign/results/assessment-list.hbs
Original file line number Diff line number Diff line change
@@ -35,12 +35,14 @@
<Table::Header>{{@campaign.idPixLabel}}</Table::Header>
{{/if}}
<Table::Header>{{t "pages.campaign-results.table.column.results.label"}}</Table::Header>
{{#if this.displayParticipationCount}}
<Table::Header aria-label={{t "pages.campaign-results.table.column.ariaSharedResultCount"}}>
{{t "pages.campaign-results.table.column.sharedResultCount"}}
</Table::Header>
{{/if}}
{{#if @campaign.hasBadges}}
<Table::Header>{{t "pages.campaign-results.table.column.badges"}}</Table::Header>
{{/if}}
<Table::Header aria-label={{t "pages.campaign-results.table.column.ariaSharedResultCount"}}>
{{t "pages.campaign-results.table.column.sharedResultCount"}}
</Table::Header>
</tr>
</thead>

@@ -55,6 +57,7 @@
@campaignId={{@campaign.id}}
@stages={{@campaign.stages}}
@onClickParticipant={{@onClickParticipant}}
@displayParticipationCount={{this.displayParticipationCount}}
/>
{{/each}}
</tbody>
6 changes: 6 additions & 0 deletions orga/app/components/campaign/results/assessment-list.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import Component from '@glimmer/component';
export default class AssessmentList extends Component {
get displayParticipationCount() {
return this.args.campaign.multipleSendings;
}
}
8 changes: 5 additions & 3 deletions orga/app/components/campaign/results/assessment-row.hbs
Original file line number Diff line number Diff line change
@@ -23,9 +23,11 @@
@isTableDisplay={{true}}
/>
</td>
<td class="table__column--small">
{{@participation.sharedResultCount}}
</td>
{{#if @displayParticipationCount}}
<td class="table__column--small">
{{@participation.sharedResultCount}}
</td>
{{/if}}
{{#if @hasBadges}}
<td class="participant-list__badges">
<Campaign::Badges @badges={{@participation.badges}} />
Original file line number Diff line number Diff line change
@@ -68,7 +68,6 @@ module('Integration | Component | Campaign::Results::AssessmentList', function (
lastName: 'Doe',
masteryRate: 0.8,
isShared: true,
sharedResultCount: 3,
},
];
participations.meta = {
@@ -134,6 +133,64 @@ module('Integration | Component | Campaign::Results::AssessmentList', function (
// then
assert.ok(screen.getByRole('img', { src: 'url-badge', description: 'je suis un badge' }));
});

module('campaign has multiple sending enabled', function () {
test('it should display shared result count header', async function (assert) {
// given
const campaign = store.createRecord('campaign', {
multipleSendings: true,
});

this.set('campaign', campaign);
this.set('participations', []);

// when
const screen = await render(
hbs`<Campaign::Results::AssessmentList
@campaign={{this.campaign}}
@participations={{this.participations}}
@onClickParticipant={{this.noop}}
@onFilter={{this.noop}}
@selectedDivisions={{this.divisions}}
@selectedGroups={{this.groups}}
@selectedBadges={{this.badges}}
@selectedStages={{this.stages}}
/>`,
);
// then
assert.ok(screen.getByText(this.intl.t('pages.campaign-results.table.column.sharedResultCount')));
assert.ok(screen.getByLabelText(this.intl.t('pages.campaign-results.table.column.ariaSharedResultCount')));
});
});

module('campaign has multiple sending not enabled', function () {
test('it should display shared result count header', async function (assert) {
// given
const campaign = store.createRecord('campaign', {
multipleSendings: false,
});

this.set('campaign', campaign);
this.set('participations', []);

// when
const screen = await render(
hbs`<Campaign::Results::AssessmentList
@campaign={{this.campaign}}
@participations={{this.participations}}
@onClickParticipant={{this.noop}}
@onFilter={{this.noop}}
@selectedDivisions={{this.divisions}}
@selectedGroups={{this.groups}}
@selectedBadges={{this.badges}}
@selectedStages={{this.stages}}
/>`,
);
// then
assert.notOk(screen.queryByText(this.intl.t('pages.campaign-results.table.column.sharedResultCount')));
assert.notOk(screen.queryByLabelText(this.intl.t('pages.campaign-results.table.column.ariaSharedResultCount')));
});
});
});

module('when the campaign asked for an external id', function () {
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import { render } from '@1024pix/ember-testing-library';
import { hbs } from 'ember-cli-htmlbars';
import { module, test } from 'qunit';
import sinon from 'sinon';

import setupIntlRenderingTest from '../../../../helpers/setup-intl-rendering';

module('Integration | Component | Campaign::Results::AssessmentRow', function (hooks) {
setupIntlRenderingTest(hooks);

hooks.beforeEach(function () {
this.set('noop', sinon.stub());
});

module('when the campaign has multiple sending enabled', function () {
test('it should display shared result count', async function (assert) {
// given
const participation = { sharedResultCount: 10 };

this.set('displayParticipationCount', true);
this.set('campaign', {});
this.set('participation', participation);

// when
const screen = await render(
hbs`<Campaign::Results::AssessmentRow
@hasStages={{this.campaign.hasStages}}
@hasBadges={{this.campaign.hasBadges}}
@hasExternalId={{this.campaign.hasExternalId}}
@participation={{this.participation}}
@campaignId={{this.campaign.id}}
@stages={{this.campaign.stages}}
@onClickParticipant={{this.noop}}
@displayParticipationCount={{this.displayParticipationCount}}
/>`,
);
// then
assert.ok(screen.getByText('10'));
});
});

module('when the campaign has multiple sending not enabled', function () {
test('it should not display shared result count', async function (assert) {
// given
const participation = { sharedResultCount: 10 };

this.set('displayParticipationCount', false);
this.set('campaign', {});
this.set('participation', participation);

// when
const screen = await render(
hbs`<Campaign::Results::AssessmentRow
@hasStages={{this.campaign.hasStages}}
@hasBadges={{this.campaign.hasBadges}}
@hasExternalId={{this.campaign.hasExternalId}}
@participation={{this.participation}}
@campaignId={{this.campaign.id}}
@stages={{this.campaign.stages}}
@onClickParticipant={{this.noop}}
@displayParticipationCount={{this.displayParticipationCount}}
/>`,
);
// then
assert.notOk(screen.queryByText('10'));
});
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { setupTest } from 'ember-qunit';
import { module, test } from 'qunit';

import createGlimmerComponent from '../../../../helpers/create-glimmer-component';

module('Unit | Component | AssessmentList', (hooks) => {
setupTest(hooks);

let component;

hooks.beforeEach(function () {
component = createGlimmerComponent('component:campaign/results/assessment-list');
});

module('get displayParticipationCount', () => {
test('should return true when campaign has multiple sending enabled', function (assert) {
//when
component.args.campaign = { multipleSendings: true };

// then
assert.true(component.displayParticipationCount);
});

test('should return false when campaign has multiple sending not enabled', function (assert) {
//when
component.args.campaign = { multipleSendings: false };

// then
assert.false(component.displayParticipationCount);
});
});
});
2 changes: 1 addition & 1 deletion orga/translations/fr.json
Original file line number Diff line number Diff line change
@@ -510,7 +510,7 @@
"table": {
"title": "Liste des résultats reçus",
"column": {
"ariaSharedResultCount": "Nombre de résultats envoyés",
"ariaSharedResultCount": "Nombre de résultats envoyés",
"badges": "Résultats Thématiques",
"first-name": "Prénom",
"last-name": "Nom",

0 comments on commit f6f357b

Please sign in to comment.