diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/factories/project_auto_devops.rb | 12 | ||||
-rw-r--r-- | spec/models/project_auto_devops_spec.rb | 27 |
2 files changed, 27 insertions, 12 deletions
diff --git a/spec/factories/project_auto_devops.rb b/spec/factories/project_auto_devops.rb index b77f702f9e1..75ac7cc7687 100644 --- a/spec/factories/project_auto_devops.rb +++ b/spec/factories/project_auto_devops.rb @@ -5,8 +5,16 @@ FactoryBot.define do domain "example.com" deploy_strategy :continuous - trait :manual do - deploy_strategy :manual + trait :continuous_deployment do + deploy_strategy ProjectAutoDevops.deploy_strategies[:continuous] # rubocop:disable FactoryBot/DynamicAttributeDefinedStatically + end + + trait :manual_deployment do + deploy_strategy ProjectAutoDevops.deploy_strategies[:manual] # rubocop:disable FactoryBot/DynamicAttributeDefinedStatically + end + + trait :timed_incremental_deployment do + deploy_strategy ProjectAutoDevops.deploy_strategies[:timed_incremental] # rubocop:disable FactoryBot/DynamicAttributeDefinedStatically end trait :disabled do diff --git a/spec/models/project_auto_devops_spec.rb b/spec/models/project_auto_devops_spec.rb index 797d767465a..342798f730b 100644 --- a/spec/models/project_auto_devops_spec.rb +++ b/spec/models/project_auto_devops_spec.rb @@ -70,24 +70,31 @@ describe ProjectAutoDevops do end context 'when deploy_strategy is manual' do - let(:domain) { 'example.com' } - - before do - auto_devops.deploy_strategy = 'manual' + let(:auto_devops) { build_stubbed(:project_auto_devops, :manual_deployment, project: project) } + let(:expected_variables) do + [ + { key: 'INCREMENTAL_ROLLOUT_MODE', value: 'manual' }, + { key: 'STAGING_ENABLED', value: '1' }, + { key: 'INCREMENTAL_ROLLOUT_ENABLED', value: '1' } + ] end + it { expect(auto_devops.predefined_variables).to include(*expected_variables) } + end + + context 'when deploy_strategy is continuous' do + let(:auto_devops) { build_stubbed(:project_auto_devops, :continuous_deployment, project: project) } + it do expect(auto_devops.predefined_variables.map { |var| var[:key] }) - .to include("STAGING_ENABLED", "INCREMENTAL_ROLLOUT_ENABLED") + .not_to include("STAGING_ENABLED", "INCREMENTAL_ROLLOUT_ENABLED") end end - context 'when deploy_strategy is continuous' do - let(:domain) { 'example.com' } + context 'when deploy_strategy is timed_incremental' do + let(:auto_devops) { build_stubbed(:project_auto_devops, :timed_incremental_deployment, project: project) } - before do - auto_devops.deploy_strategy = 'continuous' - end + it { expect(auto_devops.predefined_variables).to include(key: 'INCREMENTAL_ROLLOUT_MODE', value: 'timed') } it do expect(auto_devops.predefined_variables.map { |var| var[:key] }) |