Skip to content

Commit

Permalink
feat(mon-pix): add new page to display loader before campaign results
Browse files Browse the repository at this point in the history
  • Loading branch information
frinyvonnick committed Oct 22, 2024
1 parent 88b7848 commit 321036c
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 3 deletions.
20 changes: 20 additions & 0 deletions mon-pix/app/components/pages/campaigns/results-loader.gjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { on } from '@ember/modifier';
import { action } from '@ember/object';
import { service } from '@ember/service';
import Component from '@glimmer/component';

export default class ResultsLoader extends Component {
@service router;

@action
onClick() {
this.router.replaceWith('campaigns.assessment.skill-review', this.args.code);
}

<template>
<main role="main">
Loading...
<button {{on "click" this.onClick}}>Continuer</button>
</main>
</template>
}
1 change: 1 addition & 0 deletions mon-pix/app/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ Router.map(function () {
this.route('fill-in-participant-external-id', { path: '/identifiant' });
});
this.route('entrance', { path: '/entree' });
this.route('results-loader', { path: '/chargement-resultats' });
this.route('profiles-collection', { path: '/collecte' }, function () {
this.route('start-or-resume', { path: '/' });
this.route('send-profile', { path: '/envoi-profil' });
Expand Down
2 changes: 1 addition & 1 deletion mon-pix/app/routes/assessments/resume.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ export default class ResumeRoute extends Route {
if (assessment.isCertification) {
this.router.replaceWith('authenticated.certifications.results', assessment.certificationNumber);
} else if (assessment.isForCampaign) {
this.router.replaceWith('campaigns.assessment.skill-review', assessment.codeCampaign);
this.router.replaceWith('campaigns.results-loader', assessment.codeCampaign);
} else if (assessment.isCompetenceEvaluation) {
this.router.replaceWith('authenticated.competences.results', assessment.competenceId, assessment.id);
} else {
Expand Down
38 changes: 38 additions & 0 deletions mon-pix/app/routes/campaigns/results-loader.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import Route from '@ember/routing/route';
import { service } from '@ember/service';

export default class ResultsLoaderRoute extends Route {
@service currentUser;
@service session;
@service router;
@service store;

beforeModel(transition) {
this.session.requireAuthenticationAndApprovedTermsOfService(transition);
}

async model() {
const campaign = this.modelFor('campaigns');
const campaignParticipation = await this.store.queryRecord('campaignParticipation', {
campaignId: campaign.id,
userId: this.currentUser.user.id,
});
return {
campaign,
campaignParticipation,
};
}

async afterModel({ campaign, campaignParticipation }) {
if (!campaignParticipation) {
this.router.replaceWith('campaigns.campaign-landing-page', campaign.code);
}
if (campaignParticipation.sharedAt !== null) {
this.router.replaceWith('campaigns.assessment.skill-review', campaign.code);
}
const assessment = await campaignParticipation.assessment;
if (campaignParticipation && !assessment.isCompleted) {
this.router.replaceWith('campaigns.assessment.start-or-resume', campaign.code);
}
}
}
1 change: 1 addition & 0 deletions mon-pix/app/templates/campaigns/results-loader.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<Pages::Campaigns::ResultsLoader @code={{@model.campaign.code}} />
4 changes: 2 additions & 2 deletions mon-pix/tests/unit/routes/assessments/resume-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ module('Unit | Route | Assessments | Resume', function (hooks) {

// then
return promise.then(() => {
sinon.assert.calledWith(route.router.replaceWith, 'campaigns.assessment.skill-review', 'konami');
sinon.assert.calledWith(route.router.replaceWith, 'campaigns.results-loader', 'konami');
assert.ok(true);
});
});
Expand Down Expand Up @@ -197,7 +197,7 @@ module('Unit | Route | Assessments | Resume', function (hooks) {
route.redirect(assessment);

// then
sinon.assert.calledWith(route.router.replaceWith, 'campaigns.assessment.skill-review', 'konami');
sinon.assert.calledWith(route.router.replaceWith, 'campaigns.results-loader', 'konami');
assert.ok(true);
});
});
Expand Down

0 comments on commit 321036c

Please sign in to comment.