From 39712009ad7f52dbe9cf45a228b83750159f766e Mon Sep 17 00:00:00 2001 From: Pavel Goloblia Date: Tue, 19 Sep 2023 15:59:34 +0300 Subject: [PATCH] Removed "Assigned To" column from My Cases table for volunteers --- app/views/casa_cases/index.html.erb | 21 ++++++++-------- spec/system/dashboard/show_spec.rb | 25 ++++++++++++++++---- spec/views/casa_cases/index.html.erb_spec.rb | 18 ++++++++++++++ 3 files changed, 49 insertions(+), 15 deletions(-) diff --git a/app/views/casa_cases/index.html.erb b/app/views/casa_cases/index.html.erb index 899d324bf6..44ebabed36 100644 --- a/app/views/casa_cases/index.html.erb +++ b/app/views/casa_cases/index.html.erb @@ -68,7 +68,9 @@ Judge Status Transition Aged Youth - Assigned To + <% unless current_user.volunteer? %> + Assigned To + <% end %> @@ -80,20 +82,17 @@ <%= casa_case.judge_name %> <%= casa_case.decorate.status %> <%= casa_case.decorate.transition_aged_youth %> - - <% if casa_case.active? %> - <% if current_user.volunteer? %> - <%= safe_join(casa_case.assigned_volunteers.map { |vol| - vol.display_name }, ", ") %> - <% else %> + <% unless current_user.volunteer? %> + + <% if casa_case.active? %> <%= safe_join(casa_case.assigned_volunteers.map { |vol| link_to(vol.display_name, edit_volunteer_path(vol)) }, ", ") %> + <% else %> + Case was deactivated on: <%= I18n.l(casa_case.updated_at, format: :standard, default: nil) %> <% end %> - <% else %> - Case was deactivated on: <%= I18n.l(casa_case.updated_at, format: :standard, default: nil) %> - <% end %> - + + <% end %> <%= link_to "Edit", edit_casa_case_path(casa_case), class: 'text-danger' %> diff --git a/spec/system/dashboard/show_spec.rb b/spec/system/dashboard/show_spec.rb index 02515114f4..f7f7a50f59 100644 --- a/spec/system/dashboard/show_spec.rb +++ b/spec/system/dashboard/show_spec.rb @@ -2,6 +2,8 @@ RSpec.describe "dashboard/show", type: :system do let(:volunteer) { create(:volunteer, display_name: "Bob Loblaw") } + let(:casa_admin) { create(:casa_admin, display_name: "John Doe") } + context "volunteer user" do before do sign_in volunteer @@ -21,15 +23,13 @@ expect(page).not_to have_text(casa_case_3.case_number) end - it "sees volunteer names in Cases table as plain text" do + it "volunteer does not see his name in Cases table" do casa_case = build(:casa_case, active: true, casa_org: volunteer.casa_org, case_number: "CINA-1") create(:case_assignment, volunteer: volunteer, casa_case: casa_case) visit casa_cases_path - expect(page).to have_text("Bob Loblaw") - expect(page).to have_no_link("Bob Loblaw") - expect(page).to have_css("td", text: "Bob Loblaw") + expect(page).not_to have_css("td", text: "Bob Loblaw") end it "displays 'No active cases' when they don't have any assignments", js: true do @@ -39,4 +39,21 @@ expect(page).not_to have_text("Detail View") end end + + context "admin user" do + before do + sign_in casa_admin + end + + it "sees volunteer names in Cases table as a link" do + casa_case = build(:casa_case, active: true, casa_org: volunteer.casa_org, case_number: "CINA-1") + create(:case_assignment, volunteer: volunteer, casa_case: casa_case) + + visit casa_cases_path + + expect(page).to have_text("Bob Loblaw") + expect(page).to have_link("Bob Loblaw") + expect(page).to have_css("td", text: "Bob Loblaw") + end + end end diff --git a/spec/views/casa_cases/index.html.erb_spec.rb b/spec/views/casa_cases/index.html.erb_spec.rb index a11abb9738..881a5a9515 100644 --- a/spec/views/casa_cases/index.html.erb_spec.rb +++ b/spec/views/casa_cases/index.html.erb_spec.rb @@ -1,6 +1,24 @@ require "rails_helper" RSpec.describe "casa_cases/index", type: :view do + context "when accessed by a volunteer" do + it "can not see the Assigned To column" do + user = create(:volunteer, display_name: "Bob Loblaw") + enable_pundit(view, user) + allow(view).to receive(:current_user).and_return(user) + + casa_case = build(:casa_case, active: true, casa_org: user.casa_org, case_number: "CINA-1") + create(:case_assignment, volunteer: user, casa_case: casa_case) + assign :casa_cases, [casa_case] + assign :duties, OtherDuty.none + + render template: "casa_cases/index" + + expect(rendered).not_to have_text "Assigned To" + expect(rendered).not_to have_text("Bob Loblaw") + end + end + context "when accessed by an admin" do it "can see the New Case button" do organization = create(:casa_org)