Added integration tests

This commit is contained in:
Luke "Jared" Bennett 2016-12-19 16:54:14 +00:00
parent 9d7744594f
commit b67ad2db87
No known key found for this signature in database
GPG Key ID: 402ED51FB5D306C2
1 changed files with 53 additions and 14 deletions

View File

@ -10,23 +10,18 @@ feature 'Setup Mattermost slash commands', feature: true do
before do
project.team << [user, :master]
login_as(user)
visit edit_namespace_project_service_path(project.namespace, project, service)
end
describe 'user visites the mattermost slash command config page', js: true do
describe 'user visits the mattermost slash command config page', js: true do
it 'shows a help message' do
visit edit_namespace_project_service_path(project.namespace, project, service)
wait_for_ajax
expect(page).to have_content("This service allows GitLab users to perform common")
end
end
describe 'saving a token' do
let(:token) { ('a'..'z').to_a.join }
it 'shows the token after saving' do
visit edit_namespace_project_service_path(project.namespace, project, service)
token = ('a'..'z').to_a.join
fill_in 'service_token', with: token
click_on 'Save'
@ -35,14 +30,58 @@ feature 'Setup Mattermost slash commands', feature: true do
expect(value).to eq(token)
end
end
describe 'the trigger url' do
it 'shows the correct url' do
visit edit_namespace_project_service_path(project.namespace, project, service)
describe 'mattermost service is enabled' do
let(:info) { find('.services-installation-info') }
value = find_field('request_url').value
expect(value).to match("api/v3/projects/#{project.id}/services/mattermost_slash_commands/trigger")
before do
Gitlab.config.mattermost.enabled = true
end
it 'shows the correct mattermost url' do
expect(page).to have_content Gitlab.config.mattermost.host
end
describe 'mattermost service is active' do
before do
service.active = true
end
it 'shows that mattermost is active' do
expect(info).to have_content 'Installed'
expect(info).not_to have_content 'Not installed'
end
it 'shows the edit mattermost button' do
expect(info).to have_button 'Edit Mattermost'
end
end
describe 'mattermost service is not active' do
before do
service.active = false
end
it 'shows that mattermost is not active' do
expect(info).to have_content 'Not installed'
end
it 'shows the add to mattermost button' do
expect(info).to have_button 'Add to Mattermost'
end
end
end
describe 'mattermost service is not enabled' do
before do
Gitlab.config.mattermost.enabled = false
end
it 'shows the correct trigger url' do
value = find_field('request_url').value
expect(value).to match("api/v3/projects/#{project.id}/services/mattermost_slash_commands/trigger")
end
end
end
end