Skip to content

Commit

Permalink
On affiche l’aide au RDV de suivi que si nécessaire (#4918)
Browse files Browse the repository at this point in the history
  • Loading branch information
AntoineGirard authored Dec 26, 2024
1 parent 9a3f37e commit 6f2c691
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 11 deletions.
4 changes: 4 additions & 0 deletions app/services/concerns/users/creneaux_wizard_concern.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ def services
@services ||= matching_motifs.includes(:service).map(&:service).uniq.sort_by(&:name)
end

def follow_up_motifs?
@follow_up_motifs ||= Motif.where(service: services).where.not(bookable_by: :agents).exists?(follow_up: true, deleted_at: nil)
end

def next_availability_by_lieux
return @next_availability_by_lieux if @next_availability_by_lieux

Expand Down
11 changes: 6 additions & 5 deletions app/views/search/_referent_booking_card.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
span>
| vos rendez-vous
- else
.card
.m-2
| Pour prendre un RDV de suivi avec un de vos agents référent,
span>
= link_to("connectez-vous", users_rdvs_path)
- if context.follow_up_motifs?
.card
.m-2
| Pour prendre un RDV de suivi avec un de vos agents référents,
span>
= link_to("connectez-vous", users_rdvs_path)
54 changes: 48 additions & 6 deletions spec/requests/prendre_rdv_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,30 @@
expect(response.body).to include("Sélectionnez le service avec qui vous voulez prendre un RDV")
end

it "shows a hint to help find a rdv with a referent agent in case the user is looking for the service of a follow_up motifs" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).to include("Pour prendre un RDV de suivi avec un de vos agents référent")
context "lorsqu’il n’y a pas de motif de suivi associé aux services" do
it "n’affiche pas l’invitation à se connecter pour prendre un RDV de suivi" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).not_to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end
end

context "lorsqu’il y a un motif de suivi associé aux services" do
let(:bookable_by) { :everyone }
let!(:follow_up_motif) { create(:motif, organisation: organisation, service: motif.service, follow_up: true, bookable_by:) }

it "affiche l’invitation à se connecter pour prendre un RDV de suivi" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end

context "lorsque le motif est réservable que par un agent" do
let(:bookable_by) { :agents }

it "n’affiche pas l’invitation à se connecter" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).not_to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end
end
end
end

Expand All @@ -63,9 +84,30 @@
expect(response.body).to include("Sélectionnez le motif de votre RDV")
end

it "shows a hint to help find a rdv with a referent agent in case the user is looking for follow_up motifs" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).to include("Pour prendre un RDV de suivi avec un de vos agents référent")
context "lorsqu’il n’y a pas de motif de suivi associé aux services" do
it "n’affiche pas l’invitation à se connecter" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).not_to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end
end

context "lorsqu’il y a un motif de suivi associé aux services" do
let(:bookable_by) { :everyone }
let!(:follow_up_motif) { create(:motif, organisation: organisation, service: motif.service, follow_up: true, bookable_by:) }

it "affiche l’invitation à se connecter pour prendre un RDV de suivi" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end

context "lorsque le motif est réservable que par un agent" do
let(:bookable_by) { :agents }

it "n’affiche pas l’invitation à se connecter" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).not_to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end
end
end
end
end
Expand Down

0 comments on commit 6f2c691

Please sign in to comment.