Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 58 additions & 58 deletions spec/callbacks/case_contact_metadata_callback_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "rails_helper"
require 'rails_helper'

RSpec.describe CaseContactMetadataCallback do
let(:past) { Date.new(2020, 1, 1).in_time_zone }
Expand All @@ -14,127 +14,127 @@
# with metadata surrounding cases that are not processed in the correct order.
# A user would not be able to replicate this behavior.
#
describe "after_commit" do
it "sets started metadata when case contact is created" do
describe 'after_commit' do
it 'sets started metadata when case contact is created' do
cc = create(:case_contact)

expect(cc.metadata.dig("status", "active")).to eq(parsed_present)
expect(cc.metadata.dig('status', 'active')).to eq(parsed_present)
end

context "case contact is in started status" do
context 'case contact is in started status' do
let(:case_contact) { create(:case_contact, :started, created_at: past) }

context "updates to started status" do
before { case_contact.update(status: "started") }
context 'updates to started status' do
before { case_contact.update(status: 'started') }

it "does not update the metadata" do
expect(case_contact.metadata.dig("status", "started")).to eq(parsed_past)
it 'does not update the metadata' do
expect(case_contact.metadata.dig('status', 'started')).to eq(parsed_past)
end
end

context "updates to details status" do
before { case_contact.update(status: "details") }
context 'updates to details status' do
before { case_contact.update(status: 'details') }

it { expect(case_contact.metadata.dig("status", "details")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'details')).to eq(parsed_present) }
end

context "updates to notes status" do
before { case_contact.update(status: "notes") }
context 'updates to notes status' do
before { case_contact.update(status: 'notes') }

it { expect(case_contact.metadata.dig("status", "notes")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'notes')).to eq(parsed_present) }
end

context "updates to expenses status" do
before { case_contact.update(status: "expenses") }
context 'updates to expenses status' do
before { case_contact.update(status: 'expenses') }

it { expect(case_contact.metadata.dig("status", "expenses")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'expenses')).to eq(parsed_present) }
end

context "updates to active status" do
before { case_contact.update(status: "active") }
context 'updates to active status' do
before { case_contact.update(status: 'active') }

it { expect(case_contact.metadata.dig("status", "active")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'active')).to eq(parsed_present) }
end
end

context "case contact is in details status" do
context 'case contact is in details status' do
let(:case_contact) { create(:case_contact, :details, created_at: past) }

context "updates to details status" do
before { case_contact.update(status: "details") }
context 'updates to details status' do
before { case_contact.update(status: 'details') }

it "does not update the metadata" do
expect(case_contact.metadata.dig("status", "details")).to eq(parsed_past)
it 'does not update the metadata' do
expect(case_contact.metadata.dig('status', 'details')).to eq(parsed_past)
end
end

context "updates to notes status" do
before { case_contact.update(status: "notes") }
context 'updates to notes status' do
before { case_contact.update(status: 'notes') }

it { expect(case_contact.metadata.dig("status", "notes")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'notes')).to eq(parsed_present) }
end

context "updates to expenses status" do
before { case_contact.update(status: "expenses") }
context 'updates to expenses status' do
before { case_contact.update(status: 'expenses') }

it { expect(case_contact.metadata.dig("status", "expenses")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'expenses')).to eq(parsed_present) }
end

context "updates to active status" do
before { case_contact.update(status: "active") }
context 'updates to active status' do
before { case_contact.update(status: 'active') }

it { expect(case_contact.metadata.dig("status", "active")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'active')).to eq(parsed_present) }
end
end

context "case contact is in notes status" do
context 'case contact is in notes status' do
let(:case_contact) { create(:case_contact, :notes, created_at: past) }

context "updates to notes status" do
before { case_contact.update(status: "notes") }
context 'updates to notes status' do
before { case_contact.update(status: 'notes') }

it { expect(case_contact.metadata.dig("status", "notes")).to eq(parsed_past) }
it { expect(case_contact.metadata.dig('status', 'notes')).to eq(parsed_past) }
end

context "updates to expenses status" do
before { case_contact.update(status: "expenses") }
context 'updates to expenses status' do
before { case_contact.update(status: 'expenses') }

it { expect(case_contact.metadata.dig("status", "expenses")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'expenses')).to eq(parsed_present) }
end

context "updates to active status" do
before { case_contact.update(status: "active") }
context 'updates to active status' do
before { case_contact.update(status: 'active') }

it { expect(case_contact.metadata.dig("status", "active")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'active')).to eq(parsed_present) }
end
end

context "case contact is in expenses status" do
context 'case contact is in expenses status' do
let!(:case_contact) { create(:case_contact, :expenses, created_at: past) }

context "updates to expenses status" do
before { case_contact.update(status: "expenses") }
context 'updates to expenses status' do
before { case_contact.update(status: 'expenses') }

it "does not update the metadata" do
expect(case_contact.metadata.dig("status", "expenses")).to eq(parsed_past)
it 'does not update the metadata' do
expect(case_contact.metadata.dig('status', 'expenses')).to eq(parsed_past)
end
end

context "updates to active status" do
before { case_contact.update(status: "active") }
context 'updates to active status' do
before { case_contact.update(status: 'active') }

it { expect(case_contact.metadata.dig("status", "active")).to eq(parsed_present) }
it { expect(case_contact.metadata.dig('status', 'active')).to eq(parsed_present) }
end
end

context "case contact is in active status" do
context 'case contact is in active status' do
let(:case_contact) { create(:case_contact, created_at: past) }

context "updates to active status" do
before { case_contact.update(status: "active") }
context 'updates to active status' do
before { case_contact.update(status: 'active') }

it "does not update the metadata" do
expect(case_contact.metadata.dig("status", "active")).to eq(parsed_past)
it 'does not update the metadata' do
expect(case_contact.metadata.dig('status', 'active')).to eq(parsed_past)
end
end
end
Expand Down
Loading