Commit 6807c74f authored by Mike Greiling's avatar Mike Greiling

test for ci shared runner settings adjustments

parent ef54b926
...@@ -4,6 +4,10 @@ FactoryGirl.define do ...@@ -4,6 +4,10 @@ FactoryGirl.define do
path { name.downcase.gsub(/\s/, '_') } path { name.downcase.gsub(/\s/, '_') }
owner owner
trait :with_build_minutes do
namespace_metrics factory: :namespace_metrics, shared_runners_minutes: 400
end
trait :with_build_minutes_limit do trait :with_build_minutes_limit do
shared_runners_minutes_limit 500 shared_runners_minutes_limit 500
end end
......
require 'spec_helper'
feature 'CI shared runner settings', feature: true do
let(:admin) { create(:admin) }
let(:group) { create(:group, :with_build_minutes) }
let!(:project) { create(:project, namespace: group, shared_runners_enabled: true) }
before do
login_as(admin)
end
context 'without global shared runners quota' do
scenario 'should display ratio with global quota' do
visit_admin_group_path
expect(page).to have_content("Build minutes quota: 400 / Unlimited")
expect(page).to have_selector('.shared_runners_limit_disabled')
end
end
context 'with global shared runners quota' do
before do
set_admin_shared_runners_minutes 500
end
scenario 'should display ratio with global quota' do
visit_admin_group_path
expect(page).to have_content("Build minutes quota: 400 / 500")
expect(page).to have_selector('.shared_runners_limit_under_quota')
end
scenario 'should display new ratio with overridden group quota' do
set_group_shared_runners_minutes 300
visit_admin_group_path
expect(page).to have_content("Build minutes quota: 400 / 300")
expect(page).to have_selector('.shared_runners_limit_over_quota')
end
scenario 'should display unlimited ratio with overridden group quota' do
set_group_shared_runners_minutes 0
visit_admin_group_path
expect(page).to have_content("Build minutes quota: 400 / Unlimited")
expect(page).to have_selector('.shared_runners_limit_disabled')
end
end
def set_admin_shared_runners_minutes(limit)
visit admin_application_settings_path
fill_in 'application_setting_shared_runners_minutes', with: limit
click_on 'Save'
end
def set_group_shared_runners_minutes(limit)
visit admin_group_edit_path(group)
fill_in 'group_shared_runners_minutes_limit', with: limit
click_on 'Save changes'
end
def visit_admin_group_path
visit admin_group_path(group)
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