Browse Source

Authenticate soft validations controller

pull/143/head
baarkerlounger 4 years ago
parent
commit
a3345644d1
  1. 2
      app/controllers/soft_validations_controller.rb
  2. 24
      spec/requests/form_controller_spec.rb
  3. 22
      spec/requests/organisations_controller_spec.rb
  4. 57
      spec/requests/soft_validations_controller_spec.rb
  5. 32
      spec/requests/user_controller_spec.rb

2
app/controllers/soft_validations_controller.rb

@ -1,4 +1,6 @@
class SoftValidationsController < ApplicationController class SoftValidationsController < ApplicationController
before_action :authenticate_user!
def show def show
@case_log = CaseLog.find(params[:case_log_id]) @case_log = CaseLog.find(params[:case_log_id])
page_id = request.env["PATH_INFO"].split("/")[-2] page_id = request.env["PATH_INFO"].split("/")[-2]

24
spec/requests/form_controller_spec.rb

@ -21,19 +21,23 @@ RSpec.describe FormController, type: :request do
let(:headers) { { "Accept" => "text/html" } } let(:headers) { { "Accept" => "text/html" } }
context "a not signed in user" do context "a not signed in user" do
it "does not let you get case logs pages you don't have access to" do describe "GET" do
get "/case-logs/#{case_log.id}/person-1-age", headers: headers, params: {} it "does not let you get case logs pages you don't have access to" do
expect(response).to redirect_to("/users/sign-in") get "/case-logs/#{case_log.id}/person-1-age", headers: headers, params: {}
end expect(response).to redirect_to("/users/sign-in")
end
it "does not let you get case log check answer pages you don't have access to" do it "does not let you get case log check answer pages you don't have access to" do
get "/case-logs/#{case_log.id}/household-characteristics/check-answers", headers: headers, params: {} get "/case-logs/#{case_log.id}/household-characteristics/check-answers", headers: headers, params: {}
expect(response).to redirect_to("/users/sign-in") expect(response).to redirect_to("/users/sign-in")
end
end end
it "does not let you post form answers to case logs you don't have access to" do describe "POST" do
post "/case-logs/#{case_log.id}/form", params: {} it "does not let you post form answers to case logs you don't have access to" do
expect(response).to redirect_to("/users/sign-in") post "/case-logs/#{case_log.id}/form", params: {}
expect(response).to redirect_to("/users/sign-in")
end
end end
end end

22
spec/requests/organisations_controller_spec.rb

@ -8,17 +8,21 @@ RSpec.describe OrganisationsController, type: :request do
let(:user) { FactoryBot.create(:user, :data_coordinator) } let(:user) { FactoryBot.create(:user, :data_coordinator) }
context "a not signed in user" do context "a not signed in user" do
it "does not let you see organisation details" do describe "#show" do
get "/organisations/#{organisation.id}", headers: headers, params: {} it "does not let you see organisation details from org route" do
expect(response).to redirect_to("/users/sign-in") get "/organisations/#{organisation.id}", headers: headers, params: {}
expect(response).to redirect_to("/users/sign-in")
end
get "/organisations/#{organisation.id}/details", headers: headers, params: {} it "does not let you see organisation details from details route" do
expect(response).to redirect_to("/users/sign-in") get "/organisations/#{organisation.id}/details", headers: headers, params: {}
end expect(response).to redirect_to("/users/sign-in")
end
it "does not let you see organisation users" do it "does not let you see organisation users" do
get "/organisations/#{organisation.id}/users", headers: headers, params: {} get "/organisations/#{organisation.id}/users", headers: headers, params: {}
expect(response).to redirect_to("/users/sign-in") expect(response).to redirect_to("/users/sign-in")
end
end end
end end

57
spec/requests/soft_validations_controller_spec.rb

@ -3,36 +3,51 @@ require "rails_helper"
RSpec.describe SoftValidationsController, type: :request do RSpec.describe SoftValidationsController, type: :request do
let(:params) { { case_log_id: case_log.id } } let(:params) { { case_log_id: case_log.id } }
let(:url) { "/case-logs/#{case_log.id}/net-income/soft-validations" } let(:url) { "/case-logs/#{case_log.id}/net-income/soft-validations" }
let(:user) { FactoryBot.create(:user) }
before do context "a not signed in user" do
get url, params: {} let(:case_log) { FactoryBot.create(:case_log, :in_progress) }
end
describe "GET #show" do
context "Soft validation overide required" do
let(:case_log) { FactoryBot.create(:case_log, :soft_validations_triggered) }
it "returns a success response" do describe "GET #show" do
expect(response).to be_successful it "redirects to the sign in page" do
get url, headers: headers, params: {}
expect(response).to redirect_to("/users/sign-in")
end end
end
end
it "returns a json with the soft validation fields" do context "a signed in user" do
json_response = JSON.parse(response.body) before do
expect(json_response["show"]).to eq(true) sign_in user
expect(json_response["label"]).to match(/Are you sure this is correct?/) get url, params: {}
end
end end
context "Soft validation overide not required" do describe "GET #show" do
let(:case_log) { FactoryBot.create(:case_log, :in_progress) } context "Soft validation overide required" do
let(:case_log) { FactoryBot.create(:case_log, :soft_validations_triggered) }
it "returns a success response" do
expect(response).to be_successful
end
it "returns a success response" do it "returns a json with the soft validation fields" do
expect(response).to be_successful json_response = JSON.parse(response.body)
expect(json_response["show"]).to eq(true)
expect(json_response["label"]).to match(/Are you sure this is correct?/)
end
end end
it "returns a json with the soft validation fields" do context "Soft validation overide not required" do
json_response = JSON.parse(response.body) let(:case_log) { FactoryBot.create(:case_log, :in_progress) }
expect(json_response["show"]).to eq(false)
it "returns a success response" do
expect(response).to be_successful
end
it "returns a json with the soft validation fields" do
json_response = JSON.parse(response.body)
expect(json_response["show"]).to eq(false)
end
end end
end end
end end

32
spec/requests/user_controller_spec.rb

@ -10,24 +10,32 @@ RSpec.describe UsersController, type: :request do
let(:params) { { id: user.id, user: { name: new_value } } } let(:params) { { id: user.id, user: { name: new_value } } }
context "a not signed in user" do context "a not signed in user" do
it "does not let you see user details" do describe "#show" do
get "/users/#{user.id}", headers: headers, params: {} it "does not let you see user details" do
expect(response).to redirect_to("/users/sign-in") get "/users/#{user.id}", headers: headers, params: {}
expect(response).to redirect_to("/users/sign-in")
end
end end
it "does not let you edit user details" do describe "#edit" do
get "/users/#{user.id}/edit", headers: headers, params: {} it "does not let you edit user details" do
expect(response).to redirect_to("/users/sign-in") get "/users/#{user.id}/edit", headers: headers, params: {}
expect(response).to redirect_to("/users/sign-in")
end
end end
it "does not let you edit user passwords" do describe "#password" do
get "/users/#{user.id}/password/edit", headers: headers, params: {} it "does not let you edit user passwords" do
expect(response).to redirect_to("/users/sign-in") get "/users/#{user.id}/password/edit", headers: headers, params: {}
expect(response).to redirect_to("/users/sign-in")
end
end end
it "does not let you update user details" do describe "#patch" do
patch "/case-logs/#{user.id}", params: {} it "does not let you update user details" do
expect(response).to redirect_to("/users/sign-in") patch "/case-logs/#{user.id}", params: {}
expect(response).to redirect_to("/users/sign-in")
end
end end
end end

Loading…
Cancel
Save