gitlab-org--gitlab-foss/spec/helpers/auto_devops_helper_spec.rb
Zeger-Jan van de Weg b1d5186d0a
Allow all AutoDevOps banners to be disabled
Given the default in the development and production environment is
false, the negation of enabling is used in the flag to signal you'd turn
it off. It reads a bit awkward, but makes us have a migration less.

Fixes gitlab-org/gitlab-ce#37653
2017-09-12 14:22:56 +02:00

69 lines
1.6 KiB
Ruby

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 }
Feature.get(:auto_devops_banner_disabled).disable
end
subject { helper.show_auto_devops_callout?(project) }
context 'when all conditions are met' do
it { is_expected.to eq(true) }
end
context 'when the banner is disabled by feature flag' do
it 'allows the feature flag to disable' do
Feature.get(:auto_devops_banner_disabled).enable
expect(subject).to be(false)
end
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