diff options
Diffstat (limited to 'spec/helpers/projects')
-rw-r--r-- | spec/helpers/projects/alert_management_helper_spec.rb | 5 | ||||
-rw-r--r-- | spec/helpers/projects/incidents_helper_spec.rb | 27 | ||||
-rw-r--r-- | spec/helpers/projects/issues/service_desk_helper_spec.rb | 53 |
3 files changed, 83 insertions, 2 deletions
diff --git a/spec/helpers/projects/alert_management_helper_spec.rb b/spec/helpers/projects/alert_management_helper_spec.rb index 859c08b194a..183f0438c35 100644 --- a/spec/helpers/projects/alert_management_helper_spec.rb +++ b/spec/helpers/projects/alert_management_helper_spec.rb @@ -28,7 +28,8 @@ RSpec.describe Projects::AlertManagementHelper do expect(helper.alert_management_data(current_user, project)).to match( 'project-path' => project_path, 'enable-alert-management-path' => setting_path, - 'populating-alerts-help-url' => 'http://test.host/help/user/project/operations/alert_management.html#enable-alert-management', + 'alerts-help-url' => 'http://test.host/help/operations/incident_management/index.md', + 'populating-alerts-help-url' => 'http://test.host/help/operations/incident_management/index.md#enable-alert-management', 'empty-alert-svg-path' => match_asset_path('/assets/illustrations/alert-management-empty-state.svg'), 'user-can-enable-alert-management' => 'true', 'alert-management-enabled' => 'false' @@ -49,7 +50,7 @@ RSpec.describe Projects::AlertManagementHelper do context 'when alerts service is inactive' do it 'disables alert management' do - alerts_service.update(active: false) + alerts_service.update!(active: false) expect(data).to include( 'alert-management-enabled' => 'false' diff --git a/spec/helpers/projects/incidents_helper_spec.rb b/spec/helpers/projects/incidents_helper_spec.rb new file mode 100644 index 00000000000..0affa67a902 --- /dev/null +++ b/spec/helpers/projects/incidents_helper_spec.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Projects::IncidentsHelper do + include Gitlab::Routing.url_helpers + + let(:project) { create(:project) } + let(:project_path) { project.full_path } + let(:new_issue_path) { new_project_issue_path(project) } + let(:issue_path) { project_issues_path(project) } + + describe '#incidents_data' do + subject(:data) { helper.incidents_data(project) } + + it 'returns frontend configuration' do + expect(data).to match( + 'project-path' => project_path, + 'new-issue-path' => new_issue_path, + 'incident-template-name' => 'incident', + 'incident-type' => 'incident', + 'issue-path' => issue_path, + 'empty-list-svg-path' => match_asset_path('/assets/illustrations/incident-empty-state.svg') + ) + end + end +end diff --git a/spec/helpers/projects/issues/service_desk_helper_spec.rb b/spec/helpers/projects/issues/service_desk_helper_spec.rb new file mode 100644 index 00000000000..3f488fe692d --- /dev/null +++ b/spec/helpers/projects/issues/service_desk_helper_spec.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Projects::Issues::ServiceDeskHelper do + let_it_be(:project) { create(:project, :public, service_desk_enabled: true) } + let(:user) { build_stubbed(:user) } + let(:current_user) { user } + + describe '#service_desk_meta' do + subject { helper.service_desk_meta(project) } + + context "when service desk is supported and user can edit project settings" do + before do + allow(Gitlab::IncomingEmail).to receive(:enabled?).and_return(true) + allow(Gitlab::IncomingEmail).to receive(:supports_wildcard?).and_return(true) + allow(helper).to receive(:current_user).and_return(user) + allow(helper).to receive(:can?).with(current_user, :admin_project, project).and_return(true) + end + + it { + is_expected.to eq({ + is_service_desk_supported: true, + is_service_desk_enabled: true, + can_edit_project_settings: true, + service_desk_address: project.service_desk_address, + service_desk_help_page: help_page_path('user/project/service_desk'), + edit_project_page: edit_project_path(project), + svg_path: ActionController::Base.helpers.image_path('illustrations/service_desk_empty.svg') + }) + } + end + + context "when service desk is not supported and user cannot edit project settings" do + before do + allow(Gitlab::IncomingEmail).to receive(:enabled?).and_return(false) + allow(Gitlab::IncomingEmail).to receive(:supports_wildcard?).and_return(false) + allow(helper).to receive(:current_user).and_return(user) + allow(helper).to receive(:can?).with(current_user, :admin_project, project).and_return(false) + end + + it { + is_expected.to eq({ + is_service_desk_supported: false, + is_service_desk_enabled: false, + can_edit_project_settings: false, + incoming_email_help_page: help_page_path('administration/incoming_email', anchor: 'set-it-up'), + svg_path: ActionController::Base.helpers.image_path('illustrations/service-desk-setup.svg') + }) + } + end + end +end |