summaryrefslogtreecommitdiff
path: root/spec/helpers/projects
diff options
context:
space:
mode:
Diffstat (limited to 'spec/helpers/projects')
-rw-r--r--spec/helpers/projects/alert_management_helper_spec.rb5
-rw-r--r--spec/helpers/projects/incidents_helper_spec.rb27
-rw-r--r--spec/helpers/projects/issues/service_desk_helper_spec.rb53
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