Skip to content

Commit

Permalink
Test outcome of unknown action when resending email
Browse files Browse the repository at this point in the history
  • Loading branch information
Kizr committed Jan 31, 2025
1 parent 4387832 commit 8d7e50b
Show file tree
Hide file tree
Showing 10 changed files with 41 additions and 24 deletions.
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
class Claims::Support::Claims::ClaimActivitiesController < Claims::Support::ApplicationController
def index
@pagy, @claim_activities = pagy(Claims::ClaimActivity.order(created_at: :desc))

authorize [:claims, @claim_activities]
claim_activities = Claims::ClaimActivity.order(created_at: :desc)
authorize [:claims, claim_activities]

@pagy, @claim_activities = pagy(claim_activities)
@claim_activities = @claim_activities.decorate
end

def show
authorize [:claims, claim_activity]

if claim_activity.sampling_uploaded?
@pagy, @provider_samplings = pagy(claim_activity.record.provider_samplings.order_by_provider_name)
end

authorize [:claims, claim_activity]

@claim_activity = claim_activity.decorate
end

Expand All @@ -23,6 +23,8 @@ def resend_payer_email
Claims::Payment::ResendEmail.call(payment: claim_activity.record)
when "clawback_request_delivered"
Claims::Clawback::ResendEmail.call(clawback: claim_activity.record)
else
raise "Unknown action: #{claim_activity.action}"
end

authorize [:claims, claim_activity]
Expand Down
4 changes: 4 additions & 0 deletions app/models/claims/claim_activity.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,8 @@ class Claims::ClaimActivity < ApplicationRecord
PAYMENT_AND_CLAWBACK_ACTIONS = %w[payment_request_delivered clawback_request_delivered clawback_response_uploaded].freeze
SAMPLING_ACTIONS = %w[sampling_uploaded sampling_response_uploaded].freeze
MANUAL_ACTIONS = %w[provider_approved_audit rejected_by_provider rejected_by_school clawback_requested rejected_by_payer paid_by_payer information_sent_to_payer].freeze

def claims_by_provider
record.claims.group_by(&:provider)
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
<%= render "payment_and_clawback_activities", claim_activity: @claim_activity %>
<% when *Claims::ClaimActivity::MANUAL_ACTIONS %>
<%= render "manual_activities", claim_activity: @claim_activity %>
<% when "payment_response_uploaded" %>
<%= render "payment_response_activity", claim_activity: @claim_activity %>
<% else %>
<%= render "base_response_activity", claim_activity: @claim_activity %>
<% end %>

<%= render PaginationComponent.new(pagy: @pagy) if @pagy %>
Expand Down
2 changes: 1 addition & 1 deletion config/locales/en/activerecord.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ en:
other: Provider audit response uploaded for %{count} claims
rejected_by_payer: Payer rejected payment for claim %{claim_reference}
paid_by_payer: Payer paid claim %{claim_reference}
information_sent_to_payer: Information sent to payer for claim 12345678
information_sent_to_payer: Information sent to payer for claim %{claim_reference}
claims/claim_activity/document:
payment_request_delivered: Claims sent to payer
payment_response_uploaded: Payer payment response
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ en:
claim_reference: Claim reference
number_of_mentors: Number of mentors
claim_amount: Claim amount
payment_response_activity:
base_response_activity:
download_csv: Download CSV
resend_payer_email:
success: An email has been sent to the payer
Expand Down
17 changes: 2 additions & 15 deletions spec/decorators/claims/claim_activity_decorator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

RSpec.describe Claims::ClaimActivityDecorator do
describe "#title" do
let(:decorated_claim_activity) { claim_activity.decorate }

context "when the claim activity action is payment_request_delivered" do
let(:claim_activity) { create(:claim_activity, :payment_request_delivered, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

context "when the claim activity has one claim" do
let(:record) { build(:claims_payment, claims: [build(:claim, :submitted)]) }
Expand Down Expand Up @@ -33,7 +34,6 @@

context "when the claim activity action is payment_response_uploaded" do
let(:claim_activity) { create(:claim_activity, :payment_response_uploaded, record: create(:claims_payment)) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for payment_response_uploaded" do
expect(decorated_claim_activity.title).to eq("Payer payment response uploaded")
Expand All @@ -42,7 +42,6 @@

context "when the claim activity action is sampling_uploaded" do
let(:claim_activity) { create(:claim_activity, :sampling_uploaded, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

context "when the claim activity has one claim" do
let(:provider_sampling) { build(:provider_sampling, provider_sampling_claims: [build(:claims_provider_sampling_claim)]) }
Expand Down Expand Up @@ -74,7 +73,6 @@

context "when the claim activity action is sampling_response_uploaded" do
let(:claim_activity) { create(:claim_activity, :sampling_response_uploaded, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

context "when the claim activity has one claim" do
let(:provider_sampling) { build(:provider_sampling, provider_sampling_claims: [build(:claims_provider_sampling_claim)]) }
Expand Down Expand Up @@ -106,7 +104,6 @@

context "when the claim activity action is clawback_request_delivered" do
let(:claim_activity) { create(:claim_activity, :clawback_request_delivered, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

context "when the claim activity has one claim" do
let(:record) { build(:claims_clawback, claims: [build(:claim, :submitted)]) }
Expand Down Expand Up @@ -135,7 +132,6 @@

context "when the claim activity action is clawback_response_uploaded" do
let(:claim_activity) { create(:claim_activity, :clawback_response_uploaded, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

context "when the claim activity has one claim" do
let(:record) { build(:claims_clawback, claims: [build(:claim, :submitted)]) }
Expand Down Expand Up @@ -165,7 +161,6 @@
context "when the claim activity action is provider_approved_audit" do
let(:record) { create(:claim, reference: "12345678") }
let(:claim_activity) { create(:claim_activity, :provider_approved_audit, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for provider_approved_audit" do
expect(decorated_claim_activity.title).to eq("Provider #{record.provider_name} approved audit for claim 12345678")
Expand All @@ -175,7 +170,6 @@
context "when the claim activity action is rejected_by_provider" do
let(:record) { create(:claim, reference: "12345678") }
let(:claim_activity) { create(:claim_activity, :rejected_by_provider, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for rejected_by_provider" do
expect(decorated_claim_activity.title).to eq("Provider #{record.provider_name} rejected audit for claim 12345678")
Expand All @@ -185,7 +179,6 @@
context "when the claim activity action is rejected_by_school" do
let(:record) { create(:claim, reference: "12345678") }
let(:claim_activity) { create(:claim_activity, :rejected_by_school, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for rejected_by_school" do
expect(decorated_claim_activity.title).to eq("School #{record.school_name} rejected audit for claim 12345678")
Expand All @@ -195,7 +188,6 @@
context "when the claim activity action is approved_by_school" do
let(:record) { create(:claim, reference: "12345678") }
let(:claim_activity) { create(:claim_activity, :approved_by_school, record:) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for approved_by_school" do
expect(decorated_claim_activity.title).to eq("School #{record.school_name} approved audit for claim 12345678")
Expand All @@ -204,7 +196,6 @@

context "when the claim activity action is clawback_requested" do
let(:claim_activity) { create(:claim_activity, :clawback_requested, record: build(:claim, reference: "12345678")) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for clawback_requested" do
expect(decorated_claim_activity.title).to eq("Clawback requested for claim 12345678")
Expand All @@ -213,7 +204,6 @@

context "when the claim activity action is rejected_by_payer" do
let(:claim_activity) { create(:claim_activity, :rejected_by_payer, record: build(:claim, reference: "12345678")) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for rejected_by_payer" do
expect(decorated_claim_activity.title).to eq("Payer rejected payment for claim 12345678")
Expand All @@ -222,7 +212,6 @@

context "when the claim activity action is paid_by_payer" do
let(:claim_activity) { create(:claim_activity, :paid_by_payer, record: build(:claim, reference: "12345678")) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for paid_by_payer" do
expect(decorated_claim_activity.title).to eq("Payer paid claim 12345678")
Expand All @@ -231,7 +220,6 @@

context "when the claim activity action is information_sent_to_payer" do
let(:claim_activity) { create(:claim_activity, :information_sent_to_payer, record: build(:claim, reference: "12345678")) }
let(:decorated_claim_activity) { claim_activity.decorate }

it "returns the translation for information_sent_to_payer" do
expect(decorated_claim_activity.title).to eq("Information sent to payer for claim 12345678")
Expand All @@ -240,7 +228,6 @@

context "when the action is not recognised" do
let(:claim_activity) { build(:claim_activity, action: "not_a_real_action") }
let(:decorated_claim_activity) { claim_activity.decorate }

it "raises an error" do
expect { decorated_claim_activity.title }.to raise_error("Unknown action: not_a_real_action")
Expand Down
18 changes: 18 additions & 0 deletions spec/requests/claims/support/claims/claim_activities_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
require "rails_helper"

RSpec.describe "Claim activities", type: :request do
describe "GET /resend_payer_email" do
context "when the action is unknown", service: :claims do
it "raises an error" do
claim_activity = create(:claim_activity, action: :sampling_uploaded, record: create(:claims_sampling))

claims_user = create(:claims_support_user)
sign_in_as claims_user

expect {
get resend_payer_email_claims_support_claims_claim_activity_path(claim_activity)
}.to raise_error("Unknown action: sampling_uploaded")
end
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ def given_clawback_request_delivered_activity_exists

@clawback = build(:clawback, claims: [@best_practice_network_claim, @niot_claim])
@activity_log = create(:claim_activity, :clawback_request_delivered, user: @colin, record: @clawback)

allow(Claims::Clawback::ResendEmail).to receive(:call).and_call_original
end

def and_i_am_signed_in
Expand Down Expand Up @@ -100,6 +102,7 @@ def when_i_click_on_resend_email_to_payer
end

def then_i_see_the_email_sent_success_message
expect(Claims::Clawback::ResendEmail).to have_received(:call).once
expect(page).to have_success_banner("An email has been sent to the payer")
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ def given_payment_request_delivered_activity_exists

@payment = build(:claims_payment, claims: [@best_practice_network_claim, @niot_claim])
@activity_log = create(:claim_activity, :payment_request_delivered, user: @colin, record: @payment)

allow(Claims::Payment::ResendEmail).to receive(:call).and_call_original
end

def and_i_am_signed_in
Expand Down Expand Up @@ -100,6 +102,7 @@ def when_i_click_on_resend_email_to_payer
end

def then_i_see_the_email_sent_success_message
expect(Claims::Payment::ResendEmail).to have_received(:call).once
expect(page).to have_success_banner("An email has been sent to the payer")
end

Expand Down

0 comments on commit 8d7e50b

Please sign in to comment.