Browse Source

Fix test, support user was creating an extra org, remove orgs filter for specific org

pull/557/head
Kat 3 years ago
parent
commit
9223b5b5ae
  1. 4
      app/controllers/helpers/filter.rb
  2. 2
      app/controllers/organisations_controller.rb
  3. 4
      app/models/user.rb
  4. 2
      app/views/case_logs/_log_filters.erb
  5. 1
      spec/features/user_spec.rb
  6. 15
      spec/requests/organisations_controller_spec.rb

4
app/controllers/helpers/filter.rb

@ -13,9 +13,9 @@ module Helpers::Filter
current_user.support? ? logs.all.includes(:owning_organisation, :managing_organisation) : logs current_user.support? ? logs.all.includes(:owning_organisation, :managing_organisation) : logs
end end
def set_session_filters def set_session_filters(specific_org = false)
new_filters = session[:case_logs_filters].present? ? JSON.parse(session[:case_logs_filters]) : {} new_filters = session[:case_logs_filters].present? ? JSON.parse(session[:case_logs_filters]) : {}
current_user.case_logs_filters.each { |filter| new_filters[filter] = params[filter] if params[filter].present? } current_user.case_logs_filters(specific_org).each { |filter| new_filters[filter] = params[filter] if params[filter].present? }
new_filters = new_filters.except("organisation") if params["organisation_select"] == "all" new_filters = new_filters.except("organisation") if params["organisation_select"] == "all"
session[:case_logs_filters] = new_filters.to_json session[:case_logs_filters] = new_filters.to_json

2
app/controllers/organisations_controller.rb

@ -45,7 +45,7 @@ class OrganisationsController < ApplicationController
end end
def logs def logs
set_session_filters set_session_filters(true)
if current_user.support? if current_user.support?
organisation_logs = CaseLog.all.where(owning_organisation_id: @organisation.id) organisation_logs = CaseLog.all.where(owning_organisation_id: @organisation.id)

4
app/models/user.rb

@ -108,8 +108,8 @@ class User < ApplicationRecord
ROLES.except(:support) ROLES.except(:support)
end end
def case_logs_filters def case_logs_filters(specific_org = false)
if support? if support? && !specific_org
%w[status years user organisation] %w[status years user organisation]
else else
%w[status years user] %w[status years user]

2
app/views/case_logs/_log_filters.erb

@ -10,7 +10,7 @@
<%= render partial: "filters/checkbox_filter", locals: { f: f, options: years, label: "Collection year", category: "years" } %> <%= render partial: "filters/checkbox_filter", locals: { f: f, options: years, label: "Collection year", category: "years" } %>
<%= render partial: "filters/checkbox_filter", locals: { f: f, options: status_filters, label: "Status", category: "status" } %> <%= render partial: "filters/checkbox_filter", locals: { f: f, options: status_filters, label: "Status", category: "status" } %>
<%= render partial: "filters/radio_filter", locals: { f: f, options: all_or_yours, label: "Logs", category: "user", } %> <%= render partial: "filters/radio_filter", locals: { f: f, options: all_or_yours, label: "Logs", category: "user", } %>
<% if @current_user.support? %> <% if @current_user.support? && request.path == "/logs" %>
<%= render partial: "filters/radio_filter", locals: { <%= render partial: "filters/radio_filter", locals: {
f: f, f: f,
options: { options: {

1
spec/features/user_spec.rb

@ -549,6 +549,7 @@ RSpec.describe "User Features" do
end end
end end
end end
context "when the user is logged in as a support user" do context "when the user is logged in as a support user" do
let!(:support_user) { FactoryBot.create(:user, :support) } let!(:support_user) { FactoryBot.create(:user, :support) }
let!(:test_org_1) { FactoryBot.create(:organisation, name: "Test1") } let!(:test_org_1) { FactoryBot.create(:organisation, name: "Test1") }

15
spec/requests/organisations_controller_spec.rb

@ -349,11 +349,11 @@ RSpec.describe OrganisationsController, type: :request do
end end
context "with a support user" do context "with a support user" do
let(:support_user) { FactoryBot.create(:user, :support) } let(:user) { FactoryBot.create(:user, :support) }
before do before do
allow(support_user).to receive(:need_two_factor_authentication?).and_return(false) allow(user).to receive(:need_two_factor_authentication?).and_return(false)
sign_in support_user sign_in user
get "/organisations" get "/organisations"
end end
@ -388,6 +388,15 @@ RSpec.describe OrganisationsController, type: :request do
expect(page).not_to have_link case_log_id.to_s, href: "/logs/#{case_log_id}" expect(page).not_to have_link case_log_id.to_s, href: "/logs/#{case_log_id}"
end end
end end
it "has filters" do
expect(page).to have_content("Filters")
expect(page).to have_content("Collection year")
end
it "does not have specific organisation filter" do
expect(page).not_to have_content("Specific organisation")
end
end end
end end

Loading…
Cancel
Save