diff options
| author | Kamil Trzciński <ayufan@ayufan.eu> | 2017-09-07 18:06:50 +0000 |
|---|---|---|
| committer | Kamil Trzciński <ayufan@ayufan.eu> | 2017-09-07 18:06:50 +0000 |
| commit | 21b16c5a168ebd79c6a5bcb9633752ecf4958089 (patch) | |
| tree | 6753d942b288ec5601bd4f3c5f7d6bdedf1d6d80 /spec/helpers | |
| parent | 2f1a039a86a04f286e14bf5151daab1fc3df405c (diff) | |
| parent | 4eb8722d94459b4e7cf09b997e9e83ef62d8730a (diff) | |
| download | gitlab-ce-21b16c5a168ebd79c6a5bcb9633752ecf4958089.tar.gz | |
Merge branch '37158-autodevops-banner' into 'master'
Resolve "Banner to enable Auto DevOps at project level"
Closes #37158
See merge request !13991
Diffstat (limited to 'spec/helpers')
| -rw-r--r-- | spec/helpers/auto_devops_helper_spec.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/spec/helpers/auto_devops_helper_spec.rb b/spec/helpers/auto_devops_helper_spec.rb new file mode 100644 index 00000000000..b6d892548ef --- /dev/null +++ b/spec/helpers/auto_devops_helper_spec.rb @@ -0,0 +1,59 @@ +require 'spec_helper' + +describe AutoDevopsHelper do + set(:project) { create(:project) } + set(:user) { create(:user) } + + describe '.show_auto_devops_callout?' do + let(:allowed) { true } + + before do + allow(helper).to receive(:can?).with(user, :admin_pipeline, project) { allowed } + allow(helper).to receive(:current_user) { user } + end + + subject { helper.show_auto_devops_callout?(project) } + + context 'when all conditions are met' do + it { is_expected.to eq(true) } + end + + context 'when dismissed' do + before do + helper.request.cookies[:auto_devops_settings_dismissed] = 'true' + end + + it { is_expected.to eq(false) } + end + + context 'when user cannot admin project' do + let(:allowed) { false } + + it { is_expected.to eq(false) } + end + + context 'when auto devops is enabled system-wide' do + before do + stub_application_setting(auto_devops_enabled: true) + end + + it { is_expected.to eq(false) } + end + + context 'when auto devops is explicitly enabled for project' do + before do + project.create_auto_devops!(enabled: true) + end + + it { is_expected.to eq(false) } + end + + context 'when auto devops is explicitly disabled for project' do + before do + project.create_auto_devops!(enabled: false) + end + + it { is_expected.to eq(false) } + end + end +end |
