diff --git a/app/controllers/admin/licenses_controller.rb b/app/controllers/admin/licenses_controller.rb index efd358000cd567429cf3ece16a0aafb3b1e7f6a7..687dd546d8aaac22f90147540919a2d23ef53d39 100644 --- a/app/controllers/admin/licenses_controller.rb +++ b/app/controllers/admin/licenses_controller.rb @@ -17,11 +17,11 @@ def new end def create - unless params[:license] - flash.now[:alert] = "No license was selected." + unless params[:license][:data].present? || params[:license][:data_file].present? + flash[:alert] = 'Please enter or upload a license.' @license = License.new - render :new + redirect_to new_admin_license_path return end diff --git a/changelogs/unreleased-ee/gracefully_handle_new_license_error.yml b/changelogs/unreleased-ee/gracefully_handle_new_license_error.yml new file mode 100644 index 0000000000000000000000000000000000000000..5b02eb4495c8729c69214dbe5babfa565a080e31 --- /dev/null +++ b/changelogs/unreleased-ee/gracefully_handle_new_license_error.yml @@ -0,0 +1,4 @@ +--- +title: Prevent 500 error when uploading/entering a blank license +merge_request: 1016 +author: diff --git a/spec/controllers/admin/licenses_controller_spec.rb b/spec/controllers/admin/licenses_controller_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..9487b7f4d37c841d8f1f5dbf719bdff5874ed824 --- /dev/null +++ b/spec/controllers/admin/licenses_controller_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +describe Admin::LicensesController do + let(:admin) { create(:admin) } + before { sign_in(admin) } + + describe 'Upload license' do + it 'redirects back when no license is entered/uploaded' do + post :create, license: { data: '' } + + expect(response).to redirect_to new_admin_license_path + expect(flash[:alert]).to include 'Please enter or upload a license.' + end + end +end