From 34996b4eff623ec874d482a019365f2fd8d2aa00 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Tue, 13 Jun 2017 22:29:02 +0530 Subject: [PATCH] FIX: show invite validation error message in response --- app/controllers/invites_controller.rb | 2 +- spec/controllers/invites_controller_spec.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/controllers/invites_controller.rb b/app/controllers/invites_controller.rb index 0a53b075e02..b32ae4acbf9 100644 --- a/app/controllers/invites_controller.rb +++ b/app/controllers/invites_controller.rb @@ -76,7 +76,7 @@ class InvitesController < ApplicationController else render json: failed_json, status: 422 end - rescue Invite::UserExists => e + rescue Invite::UserExists, ActiveRecord::RecordInvalid => e render json: {errors: [e.message]}, status: 422 end end diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb index efb69302d5e..eb28ddb3094 100644 --- a/spec/controllers/invites_controller_spec.rb +++ b/spec/controllers/invites_controller_spec.rb @@ -74,6 +74,8 @@ describe InvitesController do invite.reload post :create, email: invite.email expect(response).not_to be_success + json = JSON.parse(response.body) + expect(json["failed"]).to be_present end it "allows admins to invite to groups" do @@ -91,6 +93,14 @@ describe InvitesController do post :create, email: invite.email expect(response).to be_success end + + it "responds with error message in case of validation failure" do + log_in(:admin) + post :create, email: "test@mailinator.com" + expect(response).not_to be_success + json = JSON.parse(response.body) + expect(json["errors"]).to be_present + end end end