diff options
Diffstat (limited to 'spec/helpers/ci/runners_helper_spec.rb')
-rw-r--r-- | spec/helpers/ci/runners_helper_spec.rb | 72 |
1 files changed, 53 insertions, 19 deletions
diff --git a/spec/helpers/ci/runners_helper_spec.rb b/spec/helpers/ci/runners_helper_spec.rb index 49ea2ac8d3b..173a0d3ab3c 100644 --- a/spec/helpers/ci/runners_helper_spec.rb +++ b/spec/helpers/ci/runners_helper_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe Ci::RunnersHelper do - let_it_be(:user, refind: true) { create(:user) } + let_it_be(:user) { create(:user) } before do allow(helper).to receive(:current_user).and_return(user) @@ -12,22 +12,22 @@ RSpec.describe Ci::RunnersHelper do describe '#runner_status_icon', :clean_gitlab_redis_cache do it "returns - not contacted yet" do runner = create(:ci_runner) - expect(runner_status_icon(runner)).to include("not connected yet") + expect(helper.runner_status_icon(runner)).to include("not connected yet") end it "returns offline text" do runner = create(:ci_runner, contacted_at: 1.day.ago, active: true) - expect(runner_status_icon(runner)).to include("Runner is offline") + expect(helper.runner_status_icon(runner)).to include("Runner is offline") end it "returns online text" do runner = create(:ci_runner, contacted_at: 1.second.ago, active: true) - expect(runner_status_icon(runner)).to include("Runner is online") + expect(helper.runner_status_icon(runner)).to include("Runner is online") end it "returns paused text" do runner = create(:ci_runner, contacted_at: 1.second.ago, active: false) - expect(runner_status_icon(runner)).to include("Runner is paused") + expect(helper.runner_status_icon(runner)).to include("Runner is paused") end end @@ -42,7 +42,7 @@ RSpec.describe Ci::RunnersHelper do context 'without sorting' do it 'returns cached value' do - expect(runner_contacted_at(runner)).to eq(contacted_at_cached) + expect(helper.runner_contacted_at(runner)).to eq(contacted_at_cached) end end @@ -52,7 +52,7 @@ RSpec.describe Ci::RunnersHelper do end it 'returns cached value' do - expect(runner_contacted_at(runner)).to eq(contacted_at_cached) + expect(helper.runner_contacted_at(runner)).to eq(contacted_at_cached) end end @@ -62,29 +62,63 @@ RSpec.describe Ci::RunnersHelper do end it 'returns stored value' do - expect(runner_contacted_at(runner)).to eq(contacted_at_stored) + expect(helper.runner_contacted_at(runner)).to eq(contacted_at_stored) end end end + describe '#admin_runners_data_attributes' do + let_it_be(:admin) { create(:user, :admin) } + let_it_be(:instance_runner) { create(:ci_runner, :instance) } + let_it_be(:project_runner) { create(:ci_runner, :project ) } + + before do + allow(helper).to receive(:current_user).and_return(admin) + end + + it 'returns the data in format' do + expect(helper.admin_runners_data_attributes).to eq({ + runner_install_help_page: 'https://docs.gitlab.com/runner/install/', + registration_token: Gitlab::CurrentSettings.runners_registration_token, + active_runners_count: '0', + all_runners_count: '2', + instance_runners_count: '1', + group_runners_count: '0', + project_runners_count: '1' + }) + end + end + describe '#group_shared_runners_settings_data' do - let(:group) { create(:group, parent: parent, shared_runners_enabled: false) } - let(:parent) { create(:group) } + let_it_be(:parent) { create(:group) } + let_it_be(:group) { create(:group, parent: parent, shared_runners_enabled: false) } + + let(:runner_constants) do + { + runner_enabled: Namespace::SR_ENABLED, + runner_disabled: Namespace::SR_DISABLED_AND_UNOVERRIDABLE, + runner_allow_override: Namespace::SR_DISABLED_WITH_OVERRIDE + } + end it 'returns group data for top level group' do - data = group_shared_runners_settings_data(parent) + result = { + update_path: "/api/v4/groups/#{parent.id}", + shared_runners_availability: Namespace::SR_ENABLED, + parent_shared_runners_availability: nil + }.merge(runner_constants) - expect(data[:update_path]).to eq("/api/v4/groups/#{parent.id}") - expect(data[:shared_runners_availability]).to eq('enabled') - expect(data[:parent_shared_runners_availability]).to eq(nil) + expect(helper.group_shared_runners_settings_data(parent)).to eq result end it 'returns group data for child group' do - data = group_shared_runners_settings_data(group) + result = { + update_path: "/api/v4/groups/#{group.id}", + shared_runners_availability: Namespace::SR_DISABLED_AND_UNOVERRIDABLE, + parent_shared_runners_availability: Namespace::SR_ENABLED + }.merge(runner_constants) - expect(data[:update_path]).to eq("/api/v4/groups/#{group.id}") - expect(data[:shared_runners_availability]).to eq(Namespace::SR_DISABLED_AND_UNOVERRIDABLE) - expect(data[:parent_shared_runners_availability]).to eq('enabled') + expect(helper.group_shared_runners_settings_data(group)).to eq result end end @@ -92,7 +126,7 @@ RSpec.describe Ci::RunnersHelper do let(:group) { create(:group) } it 'returns group data to render a runner list' do - data = group_runners_data_attributes(group) + data = helper.group_runners_data_attributes(group) expect(data[:registration_token]).to eq(group.runners_token) expect(data[:group_id]).to eq(group.id) |