Commit 1b3bb52a authored by Bryce Johnson's avatar Bryce Johnson

Fix feature spec contexts.

parent a2a17e0e
...@@ -2,15 +2,11 @@ require 'spec_helper' ...@@ -2,15 +2,11 @@ require 'spec_helper'
describe 'Service Desk Issue Tracker', focus: true do describe 'Service Desk Issue Tracker', focus: true do
let(:project) { create(:project, :private, service_desk_enabled: true) } let(:project) { create(:project, :private, service_desk_enabled: true) }
let(:user) { create(:user) } let(:user) { create(:user) }
let(:regular_issue) { create(:issue, project: project, title: 'My invisible issue', author: user) }
let(:service_desk_issue) { create(:issue, project: project, title: 'My visible issue', author: User.support_bot) }
before do before do
allow(License).to receive(:feature_available?).and_call_original allow(License).to receive(:feature_available?).and_call_original
allow(License).to receive(:feature_available?).with(:service_desk) { true } allow(License).to receive(:feature_available?).with(:service_desk) { true }
allow(Gitlab::IncomingEmail).to receive(:enabled?) { true }
allow(Gitlab::IncomingEmail).to receive(:supports_wildcard?) { true }
project.add_master(user) project.add_master(user)
sign_in(user) sign_in(user)
...@@ -30,7 +26,6 @@ describe 'Service Desk Issue Tracker', focus: true do ...@@ -30,7 +26,6 @@ describe 'Service Desk Issue Tracker', focus: true do
describe 'issues list', js: true do describe 'issues list', js: true do
before do before do
puts service_desk_project_issues_path(project)
visit service_desk_project_issues_path(project) visit service_desk_project_issues_path(project)
end end
...@@ -50,61 +45,70 @@ describe 'Service Desk Issue Tracker', focus: true do ...@@ -50,61 +45,70 @@ describe 'Service Desk Issue Tracker', focus: true do
end end
end end
context 'when there are no issues' do context 'when service desk has been activated' do
describe 'service desk info content' do before do
it 'displays the large info box' do allow(Gitlab::IncomingEmail).to receive(:enabled?) { true }
expect(page).to have_css('.empty-state') allow(Gitlab::IncomingEmail).to receive(:supports_wildcard?) { true }
end end
it 'has a link to the documentation' do context 'when there are no issues' do
expect(page).to have_link('Read more', href: help_page_path('user/project/service_desk')) describe 'service desk info content' do
end it 'displays the large info box' do
expect(page).to have_css('.empty-state')
end
it 'does not show a button configure service desk' do it 'has a link to the documentation' do
expect(page).not_to have_link('Turn on Service Desk') expect(page).to have_link('Read more', href: help_page_path('user/project/service_desk'))
end end
it 'does not show a button configure service desk' do
expect(page).not_to have_link('Turn on Service Desk')
end
it 'shows the service desk email address' do it 'shows the service desk email address' do
expect(page).to have_content(project.service_desk_address) expect(page).to have_content(project.service_desk_address)
end
end end
end end
end
context 'when there are issues' do context 'when there are issues' do
let(:regular_issue) { create(:issue, project: project, title: 'My invisible issue', author: user) }
let(:service_desk_issue) { create(:issue, project: project, title: 'My visible issue', author: User.support_bot) }
describe 'service desk info content' do describe 'service desk info content' do
it 'displays the small info box' do it 'displays the small info box' do
expect(page).to have_css('.non-empty-state') expect(page).to have_css('.non-empty-state')
end end
it 'has a link to the documentation' do it 'has a link to the documentation' do
expect(page).to have_link('Read more', href: help_page_path('user/project/service_desk')) expect(page).to have_link('Read more', href: help_page_path('user/project/service_desk'))
end end
it 'does not show a button configure service desk' do it 'does not show a button configure service desk' do
expect(page).not_to have_link('Turn on Service Desk') expect(page).not_to have_link('Turn on Service Desk')
end end
it 'shows the service desk email address' do it 'shows the service desk email address' do
expect(page).to have_content(project.service_desk_address) expect(page).to have_content(project.service_desk_address)
end
end end
end
describe 'issues list' do describe 'issues list' do
it 'only displays issues created by support bot' do it 'only displays issues created by support bot' do
expect(page).to have_selector('.issues-list .issue', count: 1) expect(page).to have_selector('.issues-list .issue', count: 1)
end
end end
end
describe 'search box' do describe 'search box' do
it 'displays the support bot author token' do it 'displays the support bot author token' do
author_token = find('.filtered-search-token .value') author_token = find('.filtered-search-token .value')
expect(author_token).to have_content('Support Bot') expect(author_token).to have_content('Support Bot')
end end
it 'support bot author token cannot be deleted' do it 'support bot author token cannot be deleted' do
find('.input-token .filtered-search').native.send_key(:backspace) find('.input-token .filtered-search').native.send_key(:backspace)
expect(page).to have_selector('.js-visual-token', count: 1) expect(page).to have_selector('.js-visual-token', count: 1)
end
end end
end end
end 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