diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
commit | 71786ddc8e28fbd3cb3fcc4b3ff15e5962a1c82e (patch) | |
tree | 6a2d93ef3fb2d353bb7739e4b57e6541f51cdd71 /spec/lib/gitlab/ci/status | |
parent | a7253423e3403b8c08f8a161e5937e1488f5f407 (diff) |
Add latest changes from gitlab-org/gitlab@15-9-stable-eev15.9.0-rc42
Diffstat (limited to 'spec/lib/gitlab/ci/status')
-rw-r--r-- | spec/lib/gitlab/ci/status/bridge/common_spec.rb | 33 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/status/bridge/factory_spec.rb | 35 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/status/build/play_spec.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb | 2 |
4 files changed, 64 insertions, 8 deletions
diff --git a/spec/lib/gitlab/ci/status/bridge/common_spec.rb b/spec/lib/gitlab/ci/status/bridge/common_spec.rb index 37524afc83d..fef97c73a91 100644 --- a/spec/lib/gitlab/ci/status/bridge/common_spec.rb +++ b/spec/lib/gitlab/ci/status/bridge/common_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Gitlab::Ci::Status::Bridge::Common do +RSpec.describe Gitlab::Ci::Status::Bridge::Common, feature_category: :continuous_integration do let_it_be(:user) { create(:user) } let_it_be(:bridge) { create(:ci_bridge) } let_it_be(:downstream_pipeline) { create(:ci_pipeline) } @@ -37,4 +37,35 @@ RSpec.describe Gitlab::Ci::Status::Bridge::Common do it { expect(subject.details_path).to be_nil } end end + + describe '#label' do + let(:description) { 'my description' } + let(:bridge) { create(:ci_bridge, description: description) } + + subject do + Gitlab::Ci::Status::Created + .new(bridge, user) + .extend(described_class) + end + + it 'returns description' do + expect(subject.label).to eq description + end + + context 'when description is nil' do + let(:description) { nil } + + it 'returns core status label' do + expect(subject.label).to eq('created') + end + end + + context 'when description is empty string' do + let(:description) { '' } + + it 'returns core status label' do + expect(subject.label).to eq('created') + end + end + end end diff --git a/spec/lib/gitlab/ci/status/bridge/factory_spec.rb b/spec/lib/gitlab/ci/status/bridge/factory_spec.rb index c13901a4776..040c3ec7f6e 100644 --- a/spec/lib/gitlab/ci/status/bridge/factory_spec.rb +++ b/spec/lib/gitlab/ci/status/bridge/factory_spec.rb @@ -25,7 +25,7 @@ RSpec.describe Gitlab::Ci::Status::Bridge::Factory, feature_category: :continuou expect(status.text).to eq s_('CiStatusText|created') expect(status.icon).to eq 'status_created' expect(status.favicon).to eq 'favicon_status_created' - expect(status.label).to be_nil + expect(status.label).to eq 'created' expect(status).not_to have_details expect(status).not_to have_action end @@ -40,7 +40,8 @@ RSpec.describe Gitlab::Ci::Status::Bridge::Factory, feature_category: :continuou it 'matches correct extended statuses' do expect(factory.extended_statuses) - .to eq [Gitlab::Ci::Status::Bridge::Failed] + .to eq [Gitlab::Ci::Status::Bridge::Retryable, + Gitlab::Ci::Status::Bridge::Failed] end it 'fabricates a failed bridge status' do @@ -51,10 +52,10 @@ RSpec.describe Gitlab::Ci::Status::Bridge::Factory, feature_category: :continuou expect(status.text).to eq s_('CiStatusText|failed') expect(status.icon).to eq 'status_failed' expect(status.favicon).to eq 'favicon_status_failed' - expect(status.label).to be_nil + expect(status.label).to eq 'failed' expect(status.status_tooltip).to eq "#{s_('CiStatusText|failed')} - (unknown failure)" expect(status).not_to have_details - expect(status).not_to have_action + expect(status).to have_action end context 'failed with downstream_pipeline_creation_failed' do @@ -130,12 +131,36 @@ RSpec.describe Gitlab::Ci::Status::Bridge::Factory, feature_category: :continuou expect(status.text).to eq 'waiting' expect(status.group).to eq 'waiting-for-resource' expect(status.icon).to eq 'status_pending' - expect(status.favicon).to eq 'favicon_pending' + expect(status.favicon).to eq 'favicon_status_pending' expect(status.illustration).to include(:image, :size, :title) expect(status).not_to have_details end end + context 'when the bridge is successful and therefore retryable' do + let(:bridge) { create(:ci_bridge, :success) } + + it 'matches correct core status' do + expect(factory.core_status).to be_a Gitlab::Ci::Status::Success + end + + it 'matches correct extended statuses' do + expect(factory.extended_statuses) + .to eq [Gitlab::Ci::Status::Bridge::Retryable] + end + + it 'fabricates a retryable build status' do + expect(status).to be_a Gitlab::Ci::Status::Bridge::Retryable + end + + it 'fabricates status with correct details' do + expect(status.text).to eq s_('CiStatusText|passed') + expect(status.icon).to eq 'status_success' + expect(status.favicon).to eq 'favicon_status_success' + expect(status).to have_action + end + end + private def create_bridge(*traits) diff --git a/spec/lib/gitlab/ci/status/build/play_spec.rb b/spec/lib/gitlab/ci/status/build/play_spec.rb index ade07a54877..2c93f842a30 100644 --- a/spec/lib/gitlab/ci/status/build/play_spec.rb +++ b/spec/lib/gitlab/ci/status/build/play_spec.rb @@ -75,7 +75,7 @@ RSpec.describe Gitlab::Ci::Status::Build::Play do end describe '#action_button_title' do - it { expect(subject.action_button_title).to eq 'Trigger this manual action' } + it { expect(subject.action_button_title).to eq 'Run job' } end describe '.matches?' do diff --git a/spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb b/spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb index bb6139accaf..6f5ab77a358 100644 --- a/spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb +++ b/spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb @@ -20,7 +20,7 @@ RSpec.describe Gitlab::Ci::Status::WaitingForResource do end describe '#favicon' do - it { expect(subject.favicon).to eq 'favicon_pending' } + it { expect(subject.favicon).to eq 'favicon_status_pending' } end describe '#group' do |