Use enum validation instead of ArgumentError rescue for List replies policy check (#34452)

This commit is contained in:
Matt Jankowski 2025-04-14 17:11:10 -04:00 committed by GitHub
parent 5991caae87
commit 2eaef09166
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 5 additions and 6 deletions

View File

@ -7,10 +7,6 @@ class Api::V1::ListsController < Api::BaseController
before_action :require_user! before_action :require_user!
before_action :set_list, except: [:index, :create] before_action :set_list, except: [:index, :create]
rescue_from ArgumentError do |e|
render json: { error: e.to_s }, status: 422
end
def index def index
@lists = List.where(account: current_account).all @lists = List.where(account: current_account).all
render json: @lists, each_serializer: REST::ListSerializer render json: @lists, each_serializer: REST::ListSerializer

View File

@ -18,7 +18,7 @@ class List < ApplicationRecord
PER_ACCOUNT_LIMIT = 50 PER_ACCOUNT_LIMIT = 50
enum :replies_policy, { list: 0, followed: 1, none: 2 }, prefix: :show enum :replies_policy, { list: 0, followed: 1, none: 2 }, prefix: :show, validate: true
belongs_to :account belongs_to :account

View File

@ -132,9 +132,12 @@ RSpec.describe 'Lists' do
it 'returns http unprocessable entity' do it 'returns http unprocessable entity' do
subject subject
expect(response).to have_http_status(422) expect(response)
.to have_http_status(422)
expect(response.content_type) expect(response.content_type)
.to start_with('application/json') .to start_with('application/json')
expect(response.parsed_body)
.to include(error: /Replies policy is not included/)
end end
end end
end end