diff options
author | Dylan Griffith <dyl.griffith@gmail.com> | 2018-08-16 13:24:25 +0000 |
---|---|---|
committer | Kamil TrzciĆski <ayufan@ayufan.eu> | 2018-08-16 13:24:25 +0000 |
commit | 555cdadee69cb65768cd3655830f980194e9e607 (patch) | |
tree | bd9740d8b98461d417e7ee87a0d5ade423279304 /spec | |
parent | ce18246c24040444646884a6a13e472ae83f74ee (diff) | |
download | gitlab-ce-555cdadee69cb65768cd3655830f980194e9e607.tar.gz |
Resolve "Enable Auto DevOps instance-wide on GitLab.com"
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/project_auto_devops_spec.rb | 6 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 48 | ||||
-rw-r--r-- | spec/spec_helper.rb | 7 |
3 files changed, 42 insertions, 19 deletions
diff --git a/spec/models/project_auto_devops_spec.rb b/spec/models/project_auto_devops_spec.rb index 749b2094787..797d767465a 100644 --- a/spec/models/project_auto_devops_spec.rb +++ b/spec/models/project_auto_devops_spec.rb @@ -100,7 +100,7 @@ describe ProjectAutoDevops do end end - describe '#set_gitlab_deploy_token' do + describe '#create_gitlab_deploy_token' do let(:auto_devops) { build(:project_auto_devops, project: project) } context 'when the project is public' do @@ -144,9 +144,9 @@ describe ProjectAutoDevops do end end - context 'when autodevops is enabled at instancel level' do + context 'when autodevops is enabled at instance level' do let(:project) { create(:project, :repository, :internal) } - let(:auto_devops) { build(:project_auto_devops, :disabled, project: project) } + let(:auto_devops) { build(:project_auto_devops, enabled: nil, project: project) } it 'should create a deploy token' do allow(Gitlab::CurrentSettings).to receive(:auto_devops_enabled?).and_return(true) diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 076de06cf99..d8a5e5f6869 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -3259,6 +3259,11 @@ describe Project do end describe '#auto_devops_enabled?' do + before do + allow(Feature).to receive(:enabled?).and_call_original + Feature.get(:force_autodevops_on_by_default).enable_percentage_of_actors(0) + end + set(:project) { create(:project) } subject { project.auto_devops_enabled? } @@ -3268,19 +3273,14 @@ describe Project do stub_application_setting(auto_devops_enabled: true) end - it 'auto devops is implicitly enabled' do - expect(project.auto_devops).to be_nil - expect(project).to be_auto_devops_enabled - end + it { is_expected.to be_truthy } context 'when explicitly enabled' do before do create(:project_auto_devops, project: project) end - it "auto devops is enabled" do - expect(project).to be_auto_devops_enabled - end + it { is_expected.to be_truthy } end context 'when explicitly disabled' do @@ -3288,9 +3288,7 @@ describe Project do create(:project_auto_devops, project: project, enabled: false) end - it "auto devops is disabled" do - expect(project).not_to be_auto_devops_enabled - end + it { is_expected.to be_falsey } end end @@ -3299,19 +3297,22 @@ describe Project do stub_application_setting(auto_devops_enabled: false) end - it 'auto devops is implicitly disabled' do - expect(project.auto_devops).to be_nil - expect(project).not_to be_auto_devops_enabled - end + it { is_expected.to be_falsey } context 'when explicitly enabled' do before do create(:project_auto_devops, project: project) end - it "auto devops is enabled" do - expect(project).to be_auto_devops_enabled + it { is_expected.to be_truthy } + end + + context 'when force_autodevops_on_by_default is enabled for the project' do + before do + Feature.get(:force_autodevops_on_by_default).enable_percentage_of_actors(100) end + + it { is_expected.to be_truthy } end end end @@ -3361,6 +3362,11 @@ describe Project do end describe '#has_auto_devops_implicitly_disabled?' do + before do + allow(Feature).to receive(:enabled?).and_call_original + Feature.get(:force_autodevops_on_by_default).enable_percentage_of_actors(0) + end + set(:project) { create(:project) } context 'when enabled in settings' do @@ -3382,6 +3388,16 @@ describe Project do expect(project).to have_auto_devops_implicitly_disabled end + context 'when force_autodevops_on_by_default is enabled for the project' do + before do + Feature.get(:force_autodevops_on_by_default).enable_percentage_of_actors(100) + end + + it 'does not have auto devops implicitly disabled' do + expect(project).not_to have_auto_devops_implicitly_disabled + end + end + context 'when explicitly disabled' do before do create(:project_auto_devops, project: project, enabled: false) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index bd564cc60a6..f4441a6b700 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -111,6 +111,13 @@ RSpec.configure do |config| config.before(:example) do # Enable all features by default for testing allow(Feature).to receive(:enabled?) { true } + + # The following can be removed when we remove the staged rollout strategy + # and we can just enable it using instance wide settings + # (ie. ApplicationSetting#auto_devops_enabled) + allow(Feature).to receive(:enabled?) + .with(:force_autodevops_on_by_default, anything) + .and_return(false) end config.before(:example, :request_store) do |