From 4b7395e0fab8e35436957e41929b44f948a1c41a Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Thu, 22 Dec 2016 10:54:35 +0100 Subject: Fix format of Slack when result is nil --- .../slack_slash_commands_service.rb | 2 +- .../slack_slash_commands_service.rb | 40 --------------------- .../slack_slash_commands_service_spec.rb | 41 ++++++++++++++++++++++ 3 files changed, 42 insertions(+), 41 deletions(-) delete mode 100644 spec/models/project_services/slack_slash_commands_service.rb create mode 100644 spec/models/project_services/slack_slash_commands_service_spec.rb diff --git a/app/models/project_services/slack_slash_commands_service.rb b/app/models/project_services/slack_slash_commands_service.rb index cb19ebf4cad..5a7cc0fb329 100644 --- a/app/models/project_services/slack_slash_commands_service.rb +++ b/app/models/project_services/slack_slash_commands_service.rb @@ -16,7 +16,7 @@ class SlackSlashCommandsService < ChatSlashCommandsService def trigger(params) # Format messages to be Slack-compatible super.tap do |result| - result[:text] = format(result[:text]) + result[:text] = format(result[:text]) if result.is_a?(Hash) end end diff --git a/spec/models/project_services/slack_slash_commands_service.rb b/spec/models/project_services/slack_slash_commands_service.rb deleted file mode 100644 index 5775e439906..00000000000 --- a/spec/models/project_services/slack_slash_commands_service.rb +++ /dev/null @@ -1,40 +0,0 @@ -require 'spec_helper' - -describe SlackSlashCommandsService, :models do - it_behaves_like "chat slash commands service" - - describe '#trigger' do - context 'when an auth url is generated' do - let(:project) { create(:empty_project) } - let(:params) do - { - team_domain: 'http://domain.tld', - team_id: 'T3423423', - user_id: 'U234234', - user_name: 'mepmep', - token: 'token' - } - end - - let(:service) do - project.create_slack_slash_commands_service( - properties: { token: 'token' } - ) - end - - let(:authorize_url) do - 'http://authorize.example.com/' - end - - before do - allow(service).to receive(:authorize_chat_name_url).and_return(authorize_url) - end - - it 'uses slack compatible links' do - response = service.trigger(params) - - expect(response[:text]).to include("<#{authorize_url}|connect your GitLab account>") - end - end - end -end diff --git a/spec/models/project_services/slack_slash_commands_service_spec.rb b/spec/models/project_services/slack_slash_commands_service_spec.rb new file mode 100644 index 00000000000..5766aa340e2 --- /dev/null +++ b/spec/models/project_services/slack_slash_commands_service_spec.rb @@ -0,0 +1,41 @@ +require 'spec_helper' + +describe SlackSlashCommandsService, :models do + it_behaves_like "chat slash commands service" + + describe '#trigger' do + context 'when an auth url is generated' do + let(:project) { create(:empty_project) } + let(:params) do + { + team_domain: 'http://domain.tld', + team_id: 'T3423423', + user_id: 'U234234', + user_name: 'mepmep', + token: 'token' + } + end + + let(:service) do + project.create_slack_slash_commands_service( + properties: { token: 'token' }, + active: true + ) + end + + let(:authorize_url) do + 'http://authorize.example.com/' + end + + before do + allow(service).to receive(:authorize_chat_name_url).and_return(authorize_url) + end + + it 'uses slack compatible links' do + response = service.trigger(params) + + expect(response[:text]).to include("<#{authorize_url}|connect your GitLab account>") + end + end + end +end -- cgit v1.2.1