Fix value of quote_approval_policy and quoted_status_id in ScheduledStatus serializer (#36549)

This commit is contained in:
Claire authored and GitHub committed 2025-10-21 16:00:30 +00:00
1 parent de80a54555
commit aba30a85be
2 files changed
+13 -2

No files matched your search

@@ -8,4 +8,11 @@ class REST::ScheduledStatusSerializer < ActiveModel::Serializer
def id
object.id.to_s
end
def params
object.params.merge(
quoted_status_id: object.params['quoted_status_id']&.to_s,
quote_approval_policy: Status::QUOTE_APPROVAL_POLICY_FLAGS.keys.find { |key| object.params['quote_approval_policy']&.anybits?(Status::QUOTE_APPROVAL_POLICY_FLAGS[key] << 16) }&.to_s || 'nobody'
)
end
end
@@ -10,14 +10,18 @@ RSpec.describe REST::ScheduledStatusSerializer do
)
end
let(:scheduled_status) { Fabricate.build(:scheduled_status, scheduled_at: 4.minutes.from_now, params: { application_id: 123 }) }
let(:scheduled_status) { Fabricate.build(:scheduled_status, scheduled_at: 4.minutes.from_now, params: { application_id: 123, quoted_status_id: 456, quote_approval_policy: Status::QUOTE_APPROVAL_POLICY_FLAGS[:public] << 16 }) }
describe 'serialization' do
it 'returns expected values and removes application_id from params' do
expect(subject.deep_symbolize_keys)
.to include(
scheduled_at: be_a(String).and(match_api_datetime_format),
params: include(:application_id)
params: a_hash_including(
application_id: 123,
quoted_status_id: '456',
quote_approval_policy: 'public'
)
)
end
end