diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-09-06 21:29:38 +0200 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-09-06 21:29:38 +0200 |
commit | edfb5d7b16f064519c7408eb69dd125726b0c652 (patch) | |
tree | 6ce97404720a9635fea7fda6347041ab2e005791 /spec | |
parent | c48ef9a0ffac1f00828910ccf84c805974d0ebb8 (diff) | |
download | gitlab-ce-edfb5d7b16f064519c7408eb69dd125726b0c652.tar.gz |
Add specs for AutoDevopsHelper
Diffstat (limited to 'spec')
-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 |