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

This commit is contained in:
Claire 2025-10-21 18:00:30 +02:00 committed by GitHub
parent de80a54555
commit aba30a85be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 2 deletions

View File

@ -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

View File

@ -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