Fix HTTP 500 in /api/v1/polls/:id/votes (#25598)
		
	This commit is contained in:
		
					parent
					
						
							
								7542a134d5
							
						
					
				
			
			
				commit
				
					
						3875bd138d
					
				
			
		
					 2 changed files with 12 additions and 3 deletions
				
			
		|  | @ -8,7 +8,7 @@ class Api::V1::Polls::VotesController < Api::BaseController | ||||||
|   before_action :set_poll |   before_action :set_poll | ||||||
| 
 | 
 | ||||||
|   def create |   def create | ||||||
|     VoteService.new.call(current_account, @poll, vote_params[:choices]) |     VoteService.new.call(current_account, @poll, vote_params) | ||||||
|     render json: @poll, serializer: REST::PollSerializer |     render json: @poll, serializer: REST::PollSerializer | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  | @ -22,6 +22,6 @@ class Api::V1::Polls::VotesController < Api::BaseController | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def vote_params |   def vote_params | ||||||
|     params.permit(choices: []) |     params.require(:choices) | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -10,9 +10,10 @@ RSpec.describe 'API V1 Polls Votes' do | ||||||
| 
 | 
 | ||||||
|   describe 'POST /api/v1/polls/:poll_id/votes' do |   describe 'POST /api/v1/polls/:poll_id/votes' do | ||||||
|     let(:poll) { Fabricate(:poll) } |     let(:poll) { Fabricate(:poll) } | ||||||
|  |     let(:params) { { choices: %w(1) } } | ||||||
| 
 | 
 | ||||||
|     before do |     before do | ||||||
|       post "/api/v1/polls/#{poll.id}/votes", params: { choices: %w(1) }, headers: headers |       post "/api/v1/polls/#{poll.id}/votes", params: params, headers: headers | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'creates a vote', :aggregate_failures do |     it 'creates a vote', :aggregate_failures do | ||||||
|  | @ -24,6 +25,14 @@ RSpec.describe 'API V1 Polls Votes' do | ||||||
|       expect(poll.reload.cached_tallies).to eq [0, 1] |       expect(poll.reload.cached_tallies).to eq [0, 1] | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  |     context 'when the required choices param is not provided' do | ||||||
|  |       let(:params) { {} } | ||||||
|  | 
 | ||||||
|  |       it 'returns http bad request' do | ||||||
|  |         expect(response).to have_http_status(400) | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|     private |     private | ||||||
| 
 | 
 | ||||||
|     def vote |     def vote | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue