diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/sessions-grid-row.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/sessions-grid-row.js index d2a56e3132..654273f3fb 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/sessions-grid-row.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/sessions-grid-row.js @@ -17,6 +17,10 @@ const definition = { firstOffering: text('span', { at: 6 }), offeringCount: text('span', { at: 7 }), status: text('span', { at: 8 }), + statusIcon: { + scope: '[data-test-status]', + title: text('svg title'), + }, trash: clickable('[data-test-actions] .remove'), hasInstructionalNotes: isPresent('[data-test-status] .instructional-notes'), hasPrerequisites: isPresent('[data-test-status] [data-test-prerequisites]'), diff --git a/packages/ilios-common/addon/components/sessions-grid-row.gjs b/packages/ilios-common/addon/components/sessions-grid-row.gjs index 4e24987f32..2c92c285c7 100644 --- a/packages/ilios-common/addon/components/sessions-grid-row.gjs +++ b/packages/ilios-common/addon/components/sessions-grid-row.gjs @@ -17,6 +17,7 @@ import not from 'ember-truth-helpers/helpers/not'; export default class SessionsGridRowComponent extends Component { @service permissionChecker; + @service intl; @cached get canDeleteData() { @@ -35,6 +36,23 @@ export default class SessionsGridRowComponent extends Component { get canUpdate() { return this.canUpdateData.isResolved ? this.canUpdateData.value : false; } + + @cached + get sessionPrerequisitesData() { + return new TrackedAsyncData(this.args.session.prerequisites); + } + + get sessionPrerequisites() { + return this.sessionPrerequisitesData.isResolved ? this.sessionPrerequisitesData.value : null; + } + + get prerequisitesLabelAndTitle() { + const titles = this.sessionPrerequisites + .map((prereq) => prereq.title) + .sort() + .join(', '); + return `${this.intl.t('general.prerequisites')}: ${titles}`; + } , + ); + + assert.strictEqual(component.sessions[1].row.statusIcon.title, 'Prerequisites: session 0'); + }); + test('clicking expand fires action', async function (assert) { assert.expect(1); const session = this.server.create('session');