Add non-matching cases to Report#history spec (#33253)

This commit is contained in:
Matt Jankowski 2024-12-11 03:24:50 -05:00 committed by GitHub
parent f12b3a9cef
commit f6daf73286
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -105,25 +105,32 @@ RSpec.describe Report do
describe 'history' do describe 'history' do
subject(:action_logs) { report.history } subject(:action_logs) { report.history }
let(:report) { Fabricate(:report, target_account_id: target_account.id, status_ids: [status.id], created_at: 3.days.ago, updated_at: 1.day.ago) } let(:report) { Fabricate(:report, target_account_id: target_account.id, status_ids: [status.id]) }
let(:target_account) { Fabricate(:account) } let(:target_account) { Fabricate(:account) }
let(:status) { Fabricate(:status) } let(:status) { Fabricate(:status) }
let(:account_warning) { Fabricate(:account_warning, report_id: report.id) } let(:account_warning) { Fabricate(:account_warning, report_id: report.id) }
before do let!(:matched_type_account_warning) { Fabricate(:action_log, target_type: 'AccountWarning', target_id: account_warning.id) }
Fabricate(:action_log, target_type: 'Report', account_id: target_account.id, target_id: report.id, created_at: 2.days.ago) let!(:matched_type_account) { Fabricate(:action_log, target_type: 'Account', target_id: report.target_account_id) }
Fabricate(:action_log, target_type: 'Account', account_id: target_account.id, target_id: report.target_account_id, created_at: 2.days.ago) let!(:matched_type_report) { Fabricate(:action_log, target_type: 'Report', target_id: report.id) }
Fabricate(:action_log, target_type: 'Status', account_id: target_account.id, target_id: status.id, created_at: 2.days.ago) let!(:matched_type_status) { Fabricate(:action_log, target_type: 'Status', target_id: status.id) }
Fabricate(:action_log, target_type: 'AccountWarning', account_id: target_account.id, target_id: account_warning.id, created_at: 2.days.ago)
end let!(:unmatched_type_account_warning) { Fabricate(:action_log, target_type: 'AccountWarning') }
let!(:unmatched_type_account) { Fabricate(:action_log, target_type: 'Account') }
let!(:unmatched_type_report) { Fabricate(:action_log, target_type: 'Report') }
let!(:unmatched_type_status) { Fabricate(:action_log, target_type: 'Status') }
it 'returns expected logs' do it 'returns expected logs' do
expect(action_logs) expect(action_logs)
.to have_attributes(count: 4) .to have_attributes(count: 4)
.and include(have_attributes(target_type: 'Account')) .and include(matched_type_account_warning)
.and include(have_attributes(target_type: 'AccountWarning')) .and include(matched_type_account)
.and include(have_attributes(target_type: 'Report')) .and include(matched_type_report)
.and include(have_attributes(target_type: 'Status')) .and include(matched_type_status)
.and not_include(unmatched_type_account_warning)
.and not_include(unmatched_type_account)
.and not_include(unmatched_type_report)
.and not_include(unmatched_type_status)
end end
end end