summaryrefslogtreecommitdiff
path: root/spec/controllers/admin/instance_review_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/admin/instance_review_controller_spec.rb')
-rw-r--r--spec/controllers/admin/instance_review_controller_spec.rb68
1 files changed, 68 insertions, 0 deletions
diff --git a/spec/controllers/admin/instance_review_controller_spec.rb b/spec/controllers/admin/instance_review_controller_spec.rb
new file mode 100644
index 00000000000..d15894eeb5d
--- /dev/null
+++ b/spec/controllers/admin/instance_review_controller_spec.rb
@@ -0,0 +1,68 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Admin::InstanceReviewController do
+ include UsageDataHelpers
+
+ let(:admin) { create(:admin) }
+ let(:subscriptions_url) { ::Gitlab::SubscriptionPortal::SUBSCRIPTIONS_URL }
+
+ before do
+ sign_in(admin)
+ end
+
+ context 'GET #index' do
+ let!(:group) { create(:group) }
+ let!(:projects) { create_list(:project, 2, group: group) }
+
+ subject { post :index }
+
+ context 'with usage ping enabled' do
+ before do
+ stub_application_setting(usage_ping_enabled: true)
+ stub_usage_data_connections
+ ::Gitlab::UsageData.data(force_refresh: true)
+ subject
+ end
+
+ it 'redirects to the customers app with correct params' do
+ params = { instance_review: {
+ email: admin.email,
+ last_name: admin.name,
+ version: ::Gitlab::VERSION,
+ users_count: 5,
+ projects_count: 2,
+ groups_count: 1,
+ issues_count: 0,
+ merge_requests_count: 0,
+ internal_pipelines_count: 0,
+ external_pipelines_count: 0,
+ labels_count: 0,
+ milestones_count: 0,
+ snippets_count: 0,
+ notes_count: 0
+ } }.to_query
+
+ expect(response).to redirect_to("#{subscriptions_url}/instance_review?#{params}")
+ end
+ end
+
+ context 'with usage ping disabled' do
+ before do
+ stub_application_setting(usage_ping_enabled: false)
+ subject
+ end
+
+ it 'redirects to the customers app with correct params' do
+ params = { instance_review: {
+ email: admin.email,
+ last_name: admin.name,
+ version: ::Gitlab::VERSION
+ } }.to_query
+
+ expect(response).to redirect_to("#{subscriptions_url}/instance_review?#{params}")
+ end
+ end
+ end
+end