- <% @authorization_requests.each do |authorization_request| %>
-
diff --git a/site/app/views/shared/authorization_requests/show.html.erb b/site/app/views/shared/authorization_requests/show.html.erb
index 9080a9b13..85ff24427 100644
--- a/site/app/views/shared/authorization_requests/show.html.erb
+++ b/site/app/views/shared/authorization_requests/show.html.erb
@@ -1,327 +1,154 @@
<% content_for :page_title, @authorization_request.intitule %>
-
diff --git a/site/app/views/shared/tokens/_detail_short.html.erb b/site/app/views/shared/tokens/_detail_short.html.erb
index 5de08d9ca..a34cfbcd8 100644
--- a/site/app/views/shared/tokens/_detail_short.html.erb
+++ b/site/app/views/shared/tokens/_detail_short.html.erb
@@ -14,6 +14,6 @@
).html_safe %>
<% unless local_assigns[:hide_reveal_token] %>
- <%= render partial: "shared/tokens/reveal_token_button", locals: { token: token } %>
+ <%= render partial: "shared/tokens/reveal_token_button", locals: { token: token, extra_classes: 'fr-mt-2w' } %>
<% end %>
<% end %>
diff --git a/site/app/views/shared/tokens/_reveal_token_button.html.erb b/site/app/views/shared/tokens/_reveal_token_button.html.erb
index bc02dd833..f37497c5b 100644
--- a/site/app/views/shared/tokens/_reveal_token_button.html.erb
+++ b/site/app/views/shared/tokens/_reveal_token_button.html.erb
@@ -1,10 +1,10 @@
diff --git a/site/app/views/shared/tokens/_show.html.erb b/site/app/views/shared/tokens/_show.html.erb
index f9370db02..282e0dd3c 100644
--- a/site/app/views/shared/tokens/_show.html.erb
+++ b/site/app/views/shared/tokens/_show.html.erb
@@ -1,5 +1,5 @@
- <%= render partial: 'shared/authorization_requests/header', locals: { authorization_request: token.authorization_request, to_datapass: false} %>
+ <%= render partial: 'shared/authorization_requests/header', locals: { authorization_request: token.authorization_request } %>
">
diff --git a/site/config/locales/fr.yml b/site/config/locales/fr.yml
index c0cde42e3..a181b73fa 100644
--- a/site/config/locales/fr.yml
+++ b/site/config/locales/fr.yml
@@ -162,10 +162,10 @@ fr:
prolong_token_wizard:
display_cta: Prolonger le jeton
requires_update_cta: Terminer la mise à jour pour prolonger votre jeton
- updates_requested_cta: Demande de mise à jour de l'habilitation en attente d'instruction
+ updates_requested_cta: Demande de mise à jour en attente d'instruction
header:
title: Prolonger le jeton
- description: Votre jeton expire le %{humanize_date}. Avant de prolonger votre jeton, nous avons besoin de savoir si les conditions indiquées dans votre habilitation %{link_to_datapass} ont évolué.
+ description: Votre jeton expire le %{humanize_date}. Avant de prolonger votre jeton, nous avons besoin de savoir si les conditions indiquées dans votre demande %{link_to_datapass} ont évolué.
Veuillez répondre aux questions suivantes, ce formulaire vous engage en regard des CGU d'%{api_name}
steps:
owner: Responsable de la demande
@@ -174,15 +174,15 @@ fr:
summary: Bilan et confirmation
prolonged:
title: Votre jeton a été prolongé jusqu'au %{humanized_date}
- description: Merci ! Suite à vos réponses, les conditions de votre habilitation à l'%{api_name} n'ayant pas évolué, votre jeton a été prolongé de 18 mois.
+ description: Merci ! Suite à vos réponses, les conditions de votre demande à l'%{api_name} n'ayant pas évolué, votre jeton a été prolongé de 18 mois.
link:
- authorization_request: Revenir à votre demande d'habilitation
+ authorization_request: Revenir à votre demande
summary:
prolonged:
owner_not_in_charge: "Suite aux réponses indiquées, vous déclarez que le contact principal a changé. Bien que cela ne soit pas bloquant pour
- poursuivre la prolongation de votre jeton, l'équipe support vous contactera rapidement afin de procéder au transfert de vos habilitations. Vous pouvez démarrer cette démarche en autonomie
+ poursuivre la prolongation de votre jeton, l'équipe support vous contactera rapidement afin de procéder au transfert de vos demandes. Vous pouvez démarrer cette démarche en autonomie
via votre espace personnel."
- description: Suite aux réponses indiquées, vous déclarez qu'aucune des informations indiquées dans votre habilitation no%{external_id} n'a évolué.
+ description: Suite aux réponses indiquées, vous déclarez qu'aucune des informations indiquées dans votre demande no%{external_id} n'a évolué.
cgu: ⚠️ Vos réponses vous engagent en regard des CGU
finished: Confirmer
requires_update:
@@ -213,19 +213,19 @@ fr:
change_contact_technique: A changé
change_contact_metier: A changé
project_purpose:
- label: "Cette habilitation a été attribuée pour la finalité suivante :"
- no_description: Vous n'avez pas renseigné de description pour cette habilitation.
+ label: "Cette demande a été attribuée pour la finalité suivante :"
+ no_description: Vous n'avez pas renseigné de description pour cette demande.
radio:
- project_purpose: Oui, le projet bénéficiant de cette habilitation a toujours la même finalité.
+ project_purpose: Oui, le projet bénéficiant de cette demande a toujours la même finalité.
change_project_purpose: Non, le projet a changé.
owner:
label: Êtes-vous toujours en charge de la demande %{link_to_datapass} ?
radio:
still_in_charge: Oui, je suis toujours en charge
will_change_soon: Oui, je suis toujours en charge mais pourrais passer la main d'ici quelques mois
- not_in_charge: Non, je ne suis plus en charge de cette habilitation %{api}
+ not_in_charge: Non, je ne suis plus en charge de cette demande %{api}
not_in_charge_alert:
- text: Si vous n'êtes plus en charge de cette habilitation, vous devez la transférer à une autre personne de votre organisation depuis le site de DataPass.
Cette démarche prend 2 minutes. La nouvelle personne en charge devra alors effectuer la prolongation du jeton.
+ text: Si vous n'êtes plus en charge de cette demande, vous devez la transférer à une autre personne de votre organisation depuis le site de DataPass.
Cette démarche prend 2 minutes. La nouvelle personne en charge devra alors effectuer la prolongation du jeton.
build:
wizard_buttons:
previous: Précédent
@@ -233,15 +233,15 @@ fr:
users:
user:
links:
- authorization_requests: Vos habilitations
+ authorization_requests: Vos demandes
title: "Vos informations"
internal_id: "Identifiant interne : %{id}"
transfer_account:
- title: "Votre équipe évolue ? Vous quittez votre service ? Transmettez vos habilitations à une autre personne :"
- subtitle_if_demandeur: "Habilitations où je suis demandeur :"
- description_if_demandeur: Pour transmettre votre rôle de demandeur à une autre personne de votre organisation, veuillez vous rendre sur DataPass et transférer chacune de vos habilitations.
- subtitle_if_other_roles: "Habilitations où je ne suis pas demandeur :"
- description_if_other_roles: "Vous êtes contact métier et/ou technique d'une habilitation et souhaitez léguer ce rôle à une autre personne de votre organisation ? C'est au demandeur de l'habilitation d'effectuer une demande de modification des contacts. En savoir plus."
+ title: "Votre équipe évolue ? Vous quittez votre service ? Transmettez vos demandes à une autre personne :"
+ subtitle_if_demandeur: "Demandes où je suis demandeur :"
+ description_if_demandeur: Pour transmettre votre rôle de demandeur à une autre personne de votre organisation, veuillez vous rendre sur DataPass et transférer chacune de vos demandes.
+ subtitle_if_other_roles: "Demandes où je ne suis pas demandeur :"
+ description_if_other_roles: "Vous êtes contact métier et/ou technique d'une demande et souhaitez léguer ce rôle à une autre personne de votre organisation ? C'est au demandeur de la demande d'effectuer une demande de modification des contacts. En savoir plus."
demandeur: "Demandeur"
contact_metier: "Contact métier"
contact_technique: "Contact technique"
@@ -267,10 +267,12 @@ fr:
title: Jeton(s) non trouvés
description: Le jeton ou les jetons demandé(s) n'ont pas été trouvés. Veuillez contacter le support.
tokens:
+ reveal_token_button:
+ cta: Afficher le jeton
renew:
title: Demander l'accès à d'autres API
description: |+
- Vous souhaitez demander de nouvelles API pour le même cas d'usage ? Cette fonctionnalité vous permet de demander une mise à jour de votre habilitation, dans laquelle vous pourrez cocher de nouvelles API.
+ Vous souhaitez demander de nouvelles API pour le même cas d'usage ? Cette fonctionnalité vous permet de demander une mise à jour de votre demande, dans laquelle vous pourrez cocher de nouvelles API.
En cliquant sur "Continuer" vous serez transféré sur le site DataPass.
@@ -283,7 +285,7 @@ fr:
last_30_hours: 30 dernières heures
last_8_days: 8 derniers jours
links:
- user_tokens: Retour à l'habilitation No%{external_id}
+ user_tokens: Retour à la demande No%{external_id}
details:
internal_id: "Identifiant technique du jeton : %{id}"
requests_details:
@@ -291,10 +293,10 @@ fr:
cannot_show:
title: Utiliser le jeton
description: "En tant que contact métier, vous n'avez pas l'autorisation d'utiliser la clé d'accès.
- Si le jeton arrive à expiration ou nécessite une action, veuillez contacter le demandeur et le contact technique de cette habilitation :"
+ Si le jeton arrive à expiration ou nécessite une action, veuillez contacter le demandeur et le contact technique de cette demande :"
demandeur: "demandeur : %{demandeur}"
contact_technique: "Contact technique : %{contact_technique}"
- authorization_request_link: "Lien de l'habilitation à transmettre :"
+ authorization_request_link: "Lien de la demande à transmettre :"
ask_for_prolongation:
title: Relancer le demandeur
description: "Malgré nos nombreuses relances, %{demandeur} n'a pas prolongé le jeton ID : %{token_id},
@@ -331,11 +333,11 @@ fr:
description:
future: "Votre jeton expire dans %{remaining_time}.
Avant de prolonger votre jeton, nous avons besoin de savoir si les conditions
- indiquées dans votre habilitation %{link_to_datapass}
+ indiquées dans votre demande %{link_to_datapass}
ont évolué."
past: "Votre jeton a expiré il y a %{remaining_time}.
Avant de prolonger votre jeton, nous avons besoin de savoir si les conditions
- indiquées dans votre habilitation %{link_to_datapass}
+ indiquées dans votre demande %{link_to_datapass}
ont évolué."
warning_description: "Pour prolonger votre jeton, veuillez compléter le formulaire suivant :"
warning: ⚠️ Vos réponses au formulaire vous engagent en regard des CGU d'%{api_name}.
@@ -398,8 +400,8 @@ fr:
display_cta_replace_legacy: "Remplacer votre ancien jeton avec le nouveau jeton"
display_cta_new_token: "Utiliser le nouveau jeton"
display_cta_replace: "Remplacer le jeton banni par le nouveau jeton"
- no_authorization_requests: "Vous n'avez aucune habilitation"
- title: "Habilitations %{api_label} (%{count})"
+ no_authorization_requests: "Vous n'avez aucune demande"
+ title: "Demandes %{api_label}"
entreprise: API Entreprise
particulier: API Particulier
no_action: Aucune action attendue
@@ -408,13 +410,13 @@ fr:
profile: Vos informations
table:
head:
- authorization_request: "Habilitation"
+ authorization_request: "Demande"
token: Jeton principal
actions: Actions attendues
detail: Page détaillée
breadcrumb:
- index: Habilitations
- current_page: Habilitation n°%{datapass_id}
+ index: Demandes
+ current_page: Demande n°%{datapass_id}
summary:
access: Droits d'accès
active_tokens: Jetons
@@ -430,47 +432,40 @@ fr:
submitted: yellow-canari
label:
refused: 📃 Demande refusée
- revoked: 📃 Habilitation révoquée
- archived: 📃 Habilitation archivée
- validated: 📃 Habilitation active
- submitted: 🕐 Habilitation en cours d'instruction
+ revoked: 📃 Demande révoquée
+ archived: 📃 Demande archivée
+ validated: 📃 Demande active
+ submitted: 🕐 Demande en cours d'instruction
header:
- delivered_at: "Délivré le : %{humanized_date}"
+ request_number_html: "Demande n° : %{external_id}"
+ form_used_html: "Formulaire utilisé : %{name}"
+ delivered_at_html: "Délivré le : %{humanized_date}"
show:
- access: "Vos droits d'accès :"
- modal:
- renew:
- display_cta: Demander l'accès à d'autres API
- show:
- display_cta: "Voir le jeton"
- ask_for_prolongation:
- display_cta: Relancer le demandeur pour prolonger le jeton
- main_token:
- title: "Jeton principal :"
- attestations:
- title: "Télécharger manuellement les attestations sociales et fiscales"
- description: "Saisissez manuellement le SIREN de l'unité légale recherchée et vous aurez directement accès aux PDF des attestations :"
- cta: "Utiliser l'interface de téléchargement"
- other_tokens:
- title: Voir les autres jetons
+ datapass_cta: "Voir sur DataPass n°%{external_id}"
+ tokens:
+ title: "Jetons"
table:
- identifier: "Identifiant du jeton"
+ identifier: "Identifiant"
status: "Statut"
created_at: "Date de délivrance"
exp: "Date d'expiration"
- see_more: "Voir plus"
+ actions: "Actions"
+ stats: "Statistiques"
+ transfer: "Transmettre"
contacts:
title: "Contacts associés :"
+ description: "Vous pouvez modifier ces contacts en amendant votre demande sur DataPass :"
+ datapass_link: "modifier sur DataPass"
demandeur:
- title: "Demandeur :"
+ title: "Demandeur :"
contact_technique:
- title: "Contact technique :"
+ title: "Contact technique :"
contact_metier:
- title: "Contact metier :"
- its_me: "✋ C'est moi !"
+ title: "Contact métier :"
+ its_me: "c'est moi"
delegations:
title: "Délégations :"
- description: "Vous pouvez déléguer votre habilitation à un éditeur de logiciel. Celui-ci pourra alors interagir avec l'API au travers de votre demande en utilisant ses propres accès."
+ description: "Vous pouvez déléguer votre demande à un éditeur de logiciel. Celui-ci pourra alors interagir avec l'API au travers de votre demande en utilisant ses propres accès."
editor: Éditeur
status: Statut
actions: Actions
diff --git a/site/spec/features/api_particulier/authorization_request_index_spec.rb b/site/spec/features/api_particulier/authorization_request_index_spec.rb
index d064680b1..bc8e025fd 100644
--- a/site/spec/features/api_particulier/authorization_request_index_spec.rb
+++ b/site/spec/features/api_particulier/authorization_request_index_spec.rb
@@ -4,33 +4,6 @@
end
let!(:authenticated_user) { create(:user) }
- let!(:non_authenticated_user) { create(:user, :demandeur) }
-
- let!(:authorization_request) do
- create(
- :authorization_request,
- :with_demandeur,
- demandeur: non_authenticated_user,
- api: 'entreprise'
- )
- end
-
- let!(:authorization_request_active) { nil }
- let!(:authorization_request_expired) { nil }
- let!(:authorization_request_blacklisted) { nil }
- let!(:authorization_request_archived) { nil }
- let!(:authorization_requests) do
- [
- authorization_request_active,
- authorization_request_expired,
- authorization_request_blacklisted,
- authorization_request_archived
- ]
- end
-
- let!(:token) do
- create(:token, authorization_request:)
- end
describe 'when user is not authenticated' do
it 'redirects to the login' do
@@ -45,153 +18,62 @@
end
describe 'when the user does not have authorization requests' do
- it 'displays the page' do
+ it 'displays the empty state' do
go_to_authorization_requests_index
- expect(page).to have_current_path(api_particulier_authorization_requests_path, ignore_query: true)
- expect(page).to have_text("Vous n'avez aucune habilitation")
+ expect(page).to have_text("Vous n'avez aucune demande")
end
end
describe 'when the user has authorization requests' do
- let!(:tokens) do
- [
- token_active,
- token_blacklisted_later,
- token_expired,
- token_blacklisted
- ]
- end
-
- let!(:token_blacklisted_later) { create(:token, :blacklisted, blacklisted_at: 1.day.from_now, authorization_request:) }
- let!(:token_active) { create(:token, authorization_request:, exp: 70.days.from_now) }
let!(:authorization_request_active) do
create(
:authorization_request,
:with_demandeur,
:validated,
- intitule: 'active',
- tokens: [token_active, token_blacklisted_later],
- demandeur: authenticated_user,
- api: 'particulier'
- )
- end
-
- let!(:token_expired) { create(:token, :expired, authorization_request:) }
- let!(:authorization_request_expired) do
- create(
- :authorization_request,
- :with_demandeur,
- :validated,
- tokens: [token_expired],
- demandeur: authenticated_user,
- api: 'particulier'
- )
- end
-
- let!(:token_blacklisted) { create(:token, :blacklisted, authorization_request:) }
- let!(:authorization_request_blacklisted) do
- create(
- :authorization_request,
- :with_demandeur,
- :validated,
- tokens: [token_blacklisted],
+ intitule: 'Mon habilitation active',
demandeur: authenticated_user,
api: 'particulier'
)
end
- let!(:token_archived) { create(:token, authorization_request:) }
let!(:authorization_request_archived) do
create(
:authorization_request,
:with_demandeur,
:submitted,
status: 'archived',
- tokens: [token_archived],
+ intitule: 'Mon habilitation archivée',
demandeur: authenticated_user,
api: 'particulier'
)
end
- let!(:prolong_wizard) { create(:prolong_token_wizard, :requires_update, token: authorization_request_active.token, status:) }
- let!(:status) { 'owner' }
-
- let!(:approved_authorization_request_without_token) do
- user_authorization_request_role = create(:user_authorization_request_role, authorization_request: create(:authorization_request, :validated, api: :particulier), user: authenticated_user, role: 'contact_technique')
- user_authorization_request_role.authorization_request.tokens.delete_all
- user_authorization_request_role.authorization_request
- end
-
- it 'displays the page' do
+ it 'displays all authorization requests as cards' do
go_to_authorization_requests_index
- expect(page).to have_current_path(api_particulier_authorization_requests_path, ignore_query: true)
-
- expect(page).to have_text('Habilitations API Particulier (5)')
-
- authorization_requests.each do |ar|
- expect(page).to have_css('#' << dom_id(ar))
- end
+ expect(page).to have_text('Demandes API Particulier')
- tokens.each do |token|
- expect(page).to have_css('#' << dom_id(token))
- end
+ expect(page).to have_css('#' << dom_id(authorization_request_active))
+ expect(page).to have_css('#' << dom_id(authorization_request_archived))
- within('#' << dom_id(token_archived)) do
- expect(page).to have_text('Aucun jeton actif')
- end
+ expect(page).to have_text('Mon habilitation active')
+ expect(page).to have_text('Mon habilitation archivée')
- expect(page).to have_text('☠️ Expiré')
- expect(page).to have_text('🚫 Banni')
- expect(page).to have_text('🔑 Nouveau jeton à utiliser')
-
- expect(page).to have_text('Cette demande ayant été archivée, aucun jeton ne peut être demandé')
+ expect(page).to have_text('Demande active')
+ expect(page).to have_text('Demande archivée')
end
- it 'displays the button to view the token details' do
+ it 'displays the user role on each card' do
go_to_authorization_requests_index
- expect(page).to have_css('#' << dom_id(authorization_request_active, :show_token_modal_link))
- expect(page).to have_no_css('#' << dom_id(authorization_request_blacklisted, :show_token_modal_link))
- expect(page).to have_no_css('#' << dom_id(authorization_request_archived, :show_token_modal_link))
+ expect(page).to have_text('demandeur')
end
- describe 'displays the button to prolong the token' do
- it 'displays the button to prolong the token' do
- go_to_authorization_requests_index
-
- expect(page).to have_css('#' << dom_id(authorization_request_active, :prolong_token_modal_link))
- expect(page).to have_no_css('#' << dom_id(authorization_request_archived, :prolong_token_modal_link))
- end
-
- describe 'when there is no prolong wizard' do
- it 'displays the default label' do
- go_to_authorization_requests_index
-
- expect(page).to have_text('Prolonger le jeton')
- end
- end
-
- describe 'when there is a requires update prolong wizard' do
- let!(:status) { 'requires_update' }
-
- it 'displays the correct label' do
- go_to_authorization_requests_index
-
- expect(page).to have_text('Terminer la mise à jour')
- end
- end
-
- describe 'when there is a changes requested prolong wizard' do
- let!(:status) { 'updates_requested' }
-
- it 'displays the correct label' do
- go_to_authorization_requests_index
+ it 'links to the authorization request detail page' do
+ go_to_authorization_requests_index
- expect(page).to have_text('Demande de mise à jour')
- end
- end
+ expect(page).to have_link('Mon habilitation active', href: api_particulier_authorization_request_path(authorization_request_active))
end
end
end
diff --git a/site/spec/features/api_particulier/authorization_request_show_spec.rb b/site/spec/features/api_particulier/authorization_request_show_spec.rb
index 808136e00..aee5a47e0 100644
--- a/site/spec/features/api_particulier/authorization_request_show_spec.rb
+++ b/site/spec/features/api_particulier/authorization_request_show_spec.rb
@@ -13,36 +13,10 @@
)
end
- let!(:access_logs) do
- [
- create(:access_log, token:, timestamp: 1.day.ago),
- create(:access_log, token:, timestamp: 2.days.ago),
- create(:access_log, token:, timestamp: 3.days.ago),
- create(:access_log, token:, timestamp: 4.days.ago),
- create(:access_log, token:, timestamp: 8.days.ago)
- ]
- end
-
let!(:token) do
- create(:token, authorization_request:, exp:, blacklisted_at:, scopes:)
- end
-
- let!(:other_tokens) do
- [
- create(:token, authorization_request:, exp: 1.day.ago, blacklisted_at: 1.day.from_now, scopes:),
- create(:token, authorization_request:, exp: 1.day.from_now, blacklisted_at: 1.day.ago, scopes:),
- create(:token, authorization_request:, exp: 1.day.ago, blacklisted_at: 1.day.ago, scopes:),
- create(:token, authorization_request:, exp: 2.days.from_now, blacklisted_at: 1.day.ago, scopes:)
- ]
+ create(:token, authorization_request:, exp: 1.day.from_now.to_i)
end
- let!(:scopes) { [] }
-
- let!(:banned_token) { create(:token, authorization_request:, exp:, blacklisted_at: 1.day.ago) }
-
- let(:exp) { 1.day.from_now.to_i }
- let(:blacklisted_at) { nil }
-
describe 'when user is not authenticated' do
it 'redirects to the login' do
go_to_authorization_request
@@ -57,13 +31,13 @@
end
describe 'when authorization_request does not belong to current_user' do
- it 'redirects to the profile' do
+ it 'redirects to the index' do
expect(page).to have_current_path(api_particulier_authorization_requests_path, ignore_query: true)
end
end
describe 'when authorization_request belongs to current_user' do
- describe 'when it not viewable by users' do
+ describe 'when it is not viewable by users' do
let!(:authorization_request) do
create(
:authorization_request,
@@ -74,126 +48,52 @@
)
end
- it 'redirects to the profile' do
+ it 'redirects to the index' do
expect(page).to have_current_path(api_particulier_authorization_requests_path, ignore_query: true)
end
end
- describe 'when authorization_request is from api_entreprise' do
+ describe 'when authorization_request is from api_particulier' do
let!(:authorization_request) do
create(
:authorization_request,
:with_demandeur,
demandeur: authenticated_user,
- api: 'entreprise',
+ api: 'particulier',
status: 'validated'
)
end
- it 'redirects to the profile' do
- expect(page).to have_current_path(api_particulier_authorization_requests_path, ignore_query: true)
+ it 'displays basic information' do
+ expect(page).to have_current_path(api_particulier_authorization_request_path(id: authorization_request.id), ignore_query: true)
+ expect(page).to have_text('Demande active')
+ expect(page).to have_text(friendly_format_from_timestamp(authorization_request.created_at))
end
- end
- describe 'when authorization_request is from api_particulier' do
- let!(:authorization_request) do
- create(
- :authorization_request,
- :with_demandeur,
- demandeur: authenticated_user,
- api: 'particulier',
- status:,
- scopes:
- )
+ it 'displays a link to DataPass' do
+ expect(page).to have_link(href: datapass_authorization_request_url(authorization_request))
end
- describe 'when the authorization request is not viewable by user' do
- let(:status) { 'draft' }
+ describe 'tokens table' do
+ let!(:other_token) { create(:token, authorization_request:, exp: 2.days.from_now.to_i, intitule: authorization_request.intitule) }
+
+ it 'displays all tokens' do
+ visit api_particulier_authorization_request_path(id: authorization_request.id)
- it 'redirects to the profile' do
- expect(page).to have_current_path(api_particulier_authorization_requests_path, ignore_query: true)
+ expect(page).to have_css('#' << dom_id(token))
+ expect(page).to have_css('#' << dom_id(other_token))
end
end
- describe 'when the authorization request is validated' do
- let(:status) { 'validated' }
-
- it 'diplays basic information on the page' do
- expect(page).to have_current_path(api_particulier_authorization_request_path(id: authorization_request.id), ignore_query: true)
- expect(page).to have_text('Habilitation active')
- expect(page).to have_link(href: datapass_authorization_request_url(authorization_request))
- expect(page).to have_text(friendly_format_from_timestamp(authorization_request.created_at))
-
- expect(page).to have_text('Jeton principal :')
- expect(page).to have_text('Actif')
- expect(page).to have_text('4 appels les 7 derniers jours')
- expect(page).to have_text(distance_of_time_in_words(Time.zone.now, token.exp))
-
- expect(page).to have_css('#' << dom_id(token, :stats_link))
-
- expect(page).to have_text('Banni')
- expect(page).to have_text(distance_of_time_in_words(Time.zone.now, banned_token.blacklisted_at))
+ describe 'contacts section' do
+ it 'displays the demandeur' do
+ expect(page).to have_text(authorization_request.demandeur.full_name)
+ expect(page).to have_text(authorization_request.demandeur.email)
end
- describe 'when the user is demandeur' do
- describe 'when the token has less than 90 days left' do
- it 'displays the button to prolong the token' do
- expect(page).to have_css('#prolong-token-modal-link')
-
- click_link 'prolong-token-modal-link'
-
- expect(page).to have_text('Prolonger le jeton')
- end
- end
-
- describe 'when the token has more than 90 days left' do
- let(:exp) { 93.days.from_now.to_i }
-
- it 'does not display the button to prolong the token' do
- expect(page).to have_no_css('#prolong-token-modal-link')
- end
- end
-
- it 'displays the show token modal button' do
- expect(page).to have_css('#' << dom_id(token, :show))
-
- click_link dom_id(token, :show)
-
- expect(page).to have_text('Utiliser le jeton')
- expect(page).to have_text("Jeton d'accès")
- end
-
- it 'does not displays the ask for prolongation modal button' do
- expect(page).to have_no_css('#ask-for-prolongation-token-modal-link')
- end
-
- describe 'when the token has no attestations scopes' do
- it 'does not display the attestations block' do
- expect(page).to have_no_css('#attestations_sociales_et_fiscales')
- end
- end
-
- describe 'when the token has attestations scopes' do
- let!(:scopes) { %w[attestations_sociales attestations_fiscales] }
-
- it 'displays the attestations block' do
- expect(page).to have_css('#attestations_sociales_et_fiscales')
- expect(page).to have_css('#attestations_sociales_et_fiscales_link')
- end
- end
-
- it 'displays the contact informations' do
- expect(page).to have_css('#contact_demandeur')
- expect(page).to have_css('#contact_demandeur_its_me')
- expect(page).to have_no_css('#contact_metier')
- expect(page).to have_no_css('#contact_technique')
- end
-
- it 'displays the summary' do
- expect(page).to have_css('#summary')
- expect(page).to have_css('#habilitation_main_token_infos_link')
- expect(page).to have_css('#habilitation_contacts_infos_link')
- expect(page).to have_no_css('#attestations_sociales_et_fiscales_link')
+ describe 'when the user is the demandeur' do
+ it 'shows the "its me" indicator' do
+ expect(page).to have_text('c\'est moi')
end
end
@@ -206,131 +106,12 @@
demandeur: non_authenticated_user,
contact_technique: authenticated_user,
api: 'particulier',
- status:,
- scopes:
- )
- end
-
- it 'displays the page' do
- expect(page).to have_current_path(api_particulier_authorization_request_path(id: authorization_request.id), ignore_query: true)
- end
-
- it 'does not display the button to prolong the token' do
- expect(page).to have_no_css('#prolong-token-modal-link')
- end
-
- it 'displays the show modal button' do
- expect(page).to have_css('#' << dom_id(token, :show))
-
- click_link dom_id(token, :show)
-
- expect(page).to have_text('Utiliser le jeton')
- expect(page).to have_text("Jeton d'accès")
- end
-
- it 'displays the ask for prolongation modal button' do
- expect(page).to have_css('#ask-for-prolongation-token-modal-link')
-
- click_link 'ask-for-prolongation-token-modal-link'
-
- expect(page).to have_text('Relancer le demandeur')
- end
-
- describe 'when the token has no attestations scopes' do
- it 'does not display the attestations block' do
- expect(page).to have_no_css('#attestations_sociales_et_fiscales')
- end
- end
-
- describe 'when the token has attestations scopes' do
- let!(:scopes) { %w[attestations_sociales attestations_fiscales] }
-
- it 'does not display the attestations block' do
- expect(page).to have_no_css('#attestations_sociales_et_fiscales')
- end
- end
-
- it 'displays the contact informations' do
- expect(page).to have_css('#contact_demandeur')
- expect(page).to have_no_css('#contact_demandeur_its_me')
- expect(page).to have_no_css('#contact_metier')
- expect(page).to have_css('#contact_technique')
- expect(page).to have_css('#contact_technique_its_me')
- end
-
- it 'displays others tokens accordion' do
- expect(page).to have_css('#other_tokens_accordion_button')
-
- other_tokens.each do |other_token|
- expect(page).to have_css('#' << dom_id(other_token))
- end
-
- expect(page).to have_no_css('#' << dom_id(token))
- end
- end
-
- describe 'when the user is contact metier' do
- let!(:authorization_request) do
- create(
- :authorization_request,
- :with_demandeur,
- :with_contact_technique,
- :with_contact_metier,
- demandeur: non_authenticated_user,
- contact_metier: authenticated_user,
- contact_technique: non_authenticated_user,
- api: 'particulier',
- status:,
- scopes:
+ status: 'validated'
)
end
- it 'displays the page' do
- expect(page).to have_current_path(api_particulier_authorization_request_path(id: authorization_request.id), ignore_query: true)
- end
-
- it 'does not display the button to prolong the token' do
- expect(page).to have_no_css('#prolong-token-modal-link')
- end
-
- it 'displays the show modal button' do
- expect(page).to have_css('#' << dom_id(token, :show))
-
- click_link dom_id(token, :show)
-
- expect(page).to have_text('Utiliser le jeton')
- expect(page).to have_text('demandeur')
- end
-
- it 'displays the ask for prolongation modal button' do
- expect(page).to have_css('#ask-for-prolongation-token-modal-link')
-
- click_link 'ask-for-prolongation-token-modal-link'
-
- expect(page).to have_text('Relancer le demandeur')
- end
-
- describe 'when the token has no attestations scopes' do
- it 'does not display the attestations block' do
- expect(page).to have_no_css('#attestations_sociales_et_fiscales')
- end
- end
-
- describe 'when the token has attestations scopes' do
- let!(:scopes) { %w[attestations_sociales attestations_fiscales] }
-
- it 'displays the attestations block' do
- expect(page).to have_css('#attestations_sociales_et_fiscales')
- end
- end
-
- it 'displays the contact informations' do
- expect(page).to have_css('#contact_demandeur')
- expect(page).to have_no_css('#contact_demandeur_its_me')
- expect(page).to have_css('#contact_metier')
- expect(page).to have_css('#contact_metier_its_me')
- expect(page).to have_css('#contact_technique')
- expect(page).to have_no_css('#contact_technique_its_me')
+ it 'displays contact technique info' do
+ expect(page).to have_text(authenticated_user.full_name)
end
end
end
diff --git a/site/spec/support/shared_examples/features/create_token_magic_link.rb b/site/spec/support/shared_examples/features/create_token_magic_link.rb
index a2b36149e..93464b654 100644
--- a/site/spec/support/shared_examples/features/create_token_magic_link.rb
+++ b/site/spec/support/shared_examples/features/create_token_magic_link.rb
@@ -45,10 +45,8 @@
let(:email) { 'valid@email.com' }
describe 'with javascript actived', :js do
- it 'from authorization_request page, displays modal on click' do
- visit send(authorization_request_path_helper, authorization_request)
- click_link dom_id(token, :show)
- click_link dom_id(token, :transfer_modal_button)
+ it 'from transfer page, displays transfer form' do
+ visit send(token_transfer_path_helper, token)
expect(page).to have_button(I18n.t('shared.transfer_tokens.new.modal.transfer.cta'))
end
end