From aba30a85beac1fcf70fc14bb7131583c50120ef1 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 21 Oct 2025 18:00:30 +0200 Subject: [PATCH] Fix value of `quote_approval_policy` and `quoted_status_id` in ScheduledStatus serializer (#36549) --- app/serializers/rest/scheduled_status_serializer.rb | 7 +++++++ spec/serializers/rest/scheduled_status_serializer_spec.rb | 8 ++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/serializers/rest/scheduled_status_serializer.rb b/app/serializers/rest/scheduled_status_serializer.rb index 7c54f39c0d1..71ddb7b3e17 100644 --- a/app/serializers/rest/scheduled_status_serializer.rb +++ b/app/serializers/rest/scheduled_status_serializer.rb @@ -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 diff --git a/spec/serializers/rest/scheduled_status_serializer_spec.rb b/spec/serializers/rest/scheduled_status_serializer_spec.rb index 2cf00986542..6fc2f2eca9c 100644 --- a/spec/serializers/rest/scheduled_status_serializer_spec.rb +++ b/spec/serializers/rest/scheduled_status_serializer_spec.rb @@ -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