diff --git a/app/controllers/case_logs_controller.rb b/app/controllers/case_logs_controller.rb index f3753058e..b905d08b5 100644 --- a/app/controllers/case_logs_controller.rb +++ b/app/controllers/case_logs_controller.rb @@ -33,9 +33,17 @@ class CaseLogsController < ApplicationController end end - # We don't have a dedicated non-editable show view def show - edit + respond_to do |format| + format.html { edit } + format.json do + if (case_log = CaseLog.find_by(id: params[:id])) + render json: case_log, status: :ok + else + render json: { error: "Case Log #{params[:id]} not found" }, status: :not_found + end + end + end end def edit @@ -90,7 +98,7 @@ class CaseLogsController < ApplicationController private - API_ACTIONS = %w[create update destroy].freeze + API_ACTIONS = %w[create show update destroy].freeze def question_responses(questions_for_page) questions_for_page.each_with_object({}) do |(question_key, question_info), result| diff --git a/spec/requests/case_log_controller_spec.rb b/spec/requests/case_log_controller_spec.rb index 9dab538b0..dc67b76e1 100644 --- a/spec/requests/case_log_controller_spec.rb +++ b/spec/requests/case_log_controller_spec.rb @@ -99,6 +99,24 @@ RSpec.describe CaseLogsController, type: :request do end end + describe "GET" do + let(:case_log) { FactoryBot.create(:case_log, :completed) } + let(:id) { case_log.id } + + before do + get "/case_logs/#{id}", headers: headers + end + + it "returns http success" do + expect(response).to have_http_status(:success) + end + + it "returns a serialized Case Log" do + json_response = JSON.parse(response.body) + expect(json_response["status"]).to eq(case_log.status) + end + end + describe "PATCH" do let(:case_log) do FactoryBot.create(:case_log, :in_progress, tenant_code: "Old Value", property_postcode: "Old Value")