From 85f0229b157a26f4cd954ce5ca20588a9dae29f6 Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Fri, 23 Dec 2016 11:13:30 +0100 Subject: [PATCH] Fix inconsistent return type --- app/controllers/projects/mattermosts_controller.rb | 5 ++++- .../project_services/mattermost_slash_commands_service.rb | 4 ++-- lib/mattermost/client.rb | 4 ++-- spec/controllers/projects/mattermosts_controller_spec.rb | 4 ++-- .../mattermost_slash_commands_service_spec.rb | 5 +---- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/controllers/projects/mattermosts_controller.rb b/app/controllers/projects/mattermosts_controller.rb index 01d99c7df35..20161e1cfd8 100644 --- a/app/controllers/projects/mattermosts_controller.rb +++ b/app/controllers/projects/mattermosts_controller.rb @@ -34,7 +34,10 @@ class Projects::MattermostsController < Projects::ApplicationController end def teams - @teams ||= @service.list_teams(current_user) + @teams ||= begin + teams, error_message = @service.list_teams(current_user) + error_message ? error_message : teams + end end def service diff --git a/app/models/project_services/mattermost_slash_commands_service.rb b/app/models/project_services/mattermost_slash_commands_service.rb index 50a011db74e..548163f38fa 100644 --- a/app/models/project_services/mattermost_slash_commands_service.rb +++ b/app/models/project_services/mattermost_slash_commands_service.rb @@ -30,8 +30,8 @@ class MattermostSlashCommandsService < ChatSlashCommandsService def list_teams(user) Mattermost::Team.new(user).all - rescue Mattermost::Error => e - [[], e.message] + rescue Mattermost::Error + [] end private diff --git a/lib/mattermost/client.rb b/lib/mattermost/client.rb index ec2903b7ec6..7552856f37a 100644 --- a/lib/mattermost/client.rb +++ b/lib/mattermost/client.rb @@ -27,12 +27,12 @@ module Mattermost end def json_response(response) - json_response = JSON.parse(response.body) - unless response.success? raise Mattermost::ClientError.new(json_response['message'] || 'Undefined error') end + json_response = JSON.parse(response.body) + json_response rescue JSON::JSONError raise Mattermost::ClientError.new('Cannot parse response') diff --git a/spec/controllers/projects/mattermosts_controller_spec.rb b/spec/controllers/projects/mattermosts_controller_spec.rb index 2ae635a1244..cae733f0cfb 100644 --- a/spec/controllers/projects/mattermosts_controller_spec.rb +++ b/spec/controllers/projects/mattermosts_controller_spec.rb @@ -13,13 +13,13 @@ describe Projects::MattermostsController do before do allow_any_instance_of(MattermostSlashCommandsService). to receive(:list_teams).and_return([]) + end + it 'accepts the request' do get(:new, namespace_id: project.namespace.to_param, project_id: project.to_param) - end - it 'accepts the request' do expect(response).to have_http_status(200) end end diff --git a/spec/models/project_services/mattermost_slash_commands_service_spec.rb b/spec/models/project_services/mattermost_slash_commands_service_spec.rb index c879edddfdd..57ac63932e6 100644 --- a/spec/models/project_services/mattermost_slash_commands_service_spec.rb +++ b/spec/models/project_services/mattermost_slash_commands_service_spec.rb @@ -113,10 +113,7 @@ describe MattermostSlashCommandsService, :models do end it 'shows error messages' do - teams, message = subject - - expect(teams).to be_empty - expect(message).to eq('Failed to get team list.') + expect(subject).to eq([]) end end end -- GitLab