Commit 78709bb9 authored by Luke "Jared" Bennett's avatar Luke "Jared" Bennett Committed by Clement Ho
Browse files

Added small improvments to the chat slash command services

Updated specs
parent 375d07699435
......@@ -307,3 +307,7 @@ ul.controls {
}
}
}
ul.indent-list {
padding: 10px 0 0 30px;
}
......@@ -23,7 +23,7 @@ def can_test?
def fields
[
{ type: 'text', name: 'token', placeholder: '' }
{ type: 'text', name: 'token', placeholder: 'XXxxXXxxXXxxXXxxXXxxXXxx' }
]
end
......
......@@ -8,11 +8,11 @@ def can_test?
end
def title
'Mattermost Command'
'Mattermost slash commands'
end
def description
"Perform common operations on GitLab in Mattermost"
"Perform common operations in Mattermost"
end
def self.to_param
......
......@@ -2,11 +2,11 @@ class SlackSlashCommandsService < ChatSlashCommandsService
include TriggersHelper
def title
'Slack Command'
'Slack slash commands'
end
def description
"Perform common operations on GitLab in Slack"
"Perform common operations in Slack"
end
def self.to_param
......
- run_actions_text = "Perform common operations on this project: #{@project.name_with_namespace}"
- run_actions_text = "Perform common operations on GitLab project: #{@project.name_with_namespace}"
To setup this service:
%ul.list-unstyled
%p To setup this service:
%ul.list-unstyled.indent-list
%li
1.
= link_to 'Enable custom slash commands', 'https://docs.mattermost.com/developer/slash-commands.html#enabling-custom-commands'
= link_to 'https://docs.mattermost.com/developer/slash-commands.html#enabling-custom-commands', target: '_blank', rel: 'noreferrer noopener nofollow' do
Enable custom slash commands
= icon('external-link')
on your Mattermost installation
%li
2.
= link_to 'Add a slash command', 'https://docs.mattermost.com/developer/slash-commands.html#set-up-a-custom-command'
in Mattermost with these options:
= link_to 'https://docs.mattermost.com/developer/slash-commands.html#set-up-a-custom-command', target: '_blank', rel: 'noreferrer noopener nofollow' do
Add a slash command
= icon('external-link')
in your Mattermost team with these options:
%hr
.help-form
......@@ -83,9 +86,14 @@ To setup this service:
%hr
%ul.list-unstyled
%ul.list-unstyled.indent-list
%li
3. After adding the slash command, paste the
%strong token
3. Paste the
%strong Token
into the field below
%li
4. Select the
%strong Active
checkbox, press
%strong Save changes
and start using GitLab inside Mattermost!
- enabled = Gitlab.config.mattermost.enabled
.well
This service allows GitLab users to perform common operations on this
project by entering slash commands in Mattermost.
%br
See list of available commands in Mattermost after setting up this service,
by entering
%code /&lt;command_trigger_word&gt; help
%p
This service allows users to perform common operations on this
project by entering slash commands in Mattermost.
= link_to help_page_path('user/project/integrations/mattermost_slash_commands.md'), target: '_blank', ref: 'noreferrer nofollow noopener' do
View documentation
= icon('external-link')
%p.inline
See list of available commands in Mattermost after setting up this service,
by entering
%kbd.inline /&lt;trigger&gt; help
- unless enabled || @service.template?
= render 'projects/services/mattermost_slash_commands/detailed_help', subject: @service
......
- pretty_name = defined?(@project) ? @project.name_with_namespace : "namespace / path"
- run_actions_text = "Perform common operations on this project: #{pretty_name}"
- pretty_name = defined?(@project) ? @project.name_with_namespace : 'namespace / path'
- run_actions_text = "Perform common operations on GitLab project: #{pretty_name}"
.well
This service allows GitLab users to perform common operations on this
project by entering slash commands in Slack.
%br
See list of available commands in Slack after setting up this service,
by entering
%code /&lt;command&gt; help
%br
%br
%p
This service allows users to perform common operations on this
project by entering slash commands in Slack.
= link_to help_page_path('user/project/integrations/slack_slash_commands.md'), target: '_blank', ref: 'noreferrer nofollow noopener' do
View documentation
= icon('external-link')
%p.inline
See list of available commands in Slack after setting up this service,
by entering
%kbd.inline /&lt;command&gt; help
- unless @service.template?
To setup this service:
%ul.list-unstyled
%p To setup this service:
%ul.list-unstyled.indent-list
%li
1.
= link_to 'Add a slash command', 'https://my.slack.com/services/new/slash-commands'
= link_to 'https://my.slack.com/services/new/slash-commands', target: '_blank', rel: 'noreferrer noopener nofollow' do
Add a slash command
= icon('external-link')
in your Slack team with these options:
%hr
......@@ -82,7 +86,7 @@
%hr
%ul.list-unstyled
%ul.list-unstyled.indent-list
%li
2. Paste the
%strong Token
......
require 'spec_helper'
feature 'Setup Mattermost slash commands', feature: true do
include WaitForAjax
let(:user) { create(:user) }
let(:project) { create(:empty_project) }
let(:service) { project.create_mattermost_slash_commands_service }
......@@ -15,11 +13,15 @@
visit edit_namespace_project_service_path(project.namespace, project, service)
end
describe 'user visits the mattermost slash command config page', js: true do
describe 'user visits the mattermost slash command config page' do
it 'shows a help message' do
wait_for_ajax
expect(page).to have_content("This service allows users to perform common")
end
it 'shows a token placeholder' do
token_placeholder = find_field('service_token')['placeholder']
expect(page).to have_content("This service allows GitLab users to perform common")
expect(token_placeholder).to eq('XXxxXXxxXXxxXXxxXXxxXXxx')
end
it 'shows the token after saving' do
......@@ -64,7 +66,7 @@
select_element = find('select#mattermost_team_id')
selected_option = select_element.find('option[selected]')
expect(select_element['disabled']).to be(true)
expect(select_element['disabled']).to eq('disabled')
expect(selected_option).to have_content(team_name.to_s)
end
......@@ -93,7 +95,7 @@
select_element = find('select#mattermost_team_id')
selected_option = select_element.find('option[selected]')
expect(select_element['disabled']).to be(false)
expect(select_element['disabled']).to be(nil)
expect(selected_option).to have_content('Select team...')
# The 'Select team...' placeholder is item `0`.
expect(select_element.all('option').count).to eq(3)
......@@ -135,6 +137,12 @@ def create_teams(count = 0)
expect(value).to match("api/v3/projects/#{project.id}/services/mattermost_slash_commands/trigger")
end
it 'shows a token placeholder' do
token_placeholder = find_field('service_token')['placeholder']
expect(token_placeholder).to eq('XXxxXXxxXXxxXXxxXXxxXXxx')
end
end
end
......
require 'spec_helper'
feature 'Slack slash commands', feature: true do
include WaitForAjax
given(:user) { create(:user) }
given(:project) { create(:project) }
given(:service) { project.create_slack_slash_commands_service }
......@@ -10,19 +8,20 @@
background do
project.team << [user, :master]
login_as(user)
end
scenario 'user visits the slack slash command config page and shows a help message', js: true do
visit edit_namespace_project_service_path(project.namespace, project, service)
end
wait_for_ajax
it 'shows a token placeholder' do
token_placeholder = find_field('service_token')['placeholder']
expect(page).to have_content('This service allows GitLab users to perform common')
expect(token_placeholder).to eq('XXxxXXxxXXxxXXxxXXxxXXxx')
end
scenario 'shows the token after saving' do
visit edit_namespace_project_service_path(project.namespace, project, service)
it 'shows a help message' do
expect(page).to have_content('This service allows users to perform common')
end
it 'shows the token after saving' do
fill_in 'service_token', with: 'token'
click_on 'Save'
......@@ -31,9 +30,7 @@
expect(value).to eq('token')
end
scenario 'shows the correct trigger url' do
visit edit_namespace_project_service_path(project.namespace, project, service)
it 'shows the correct trigger url' do
value = find_field('url').value
expect(value).to match("api/v3/projects/#{project.id}/services/slack_slash_commands/trigger")
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment