diff options
author | Scott Hampton <shampton@gitlab.com> | 2019-02-25 11:03:28 +0000 |
---|---|---|
committer | Kamil TrzciĆski <ayufan@ayufan.eu> | 2019-02-25 11:03:28 +0000 |
commit | 8c60c671b0402fd725425efe6a8d9a05f0491308 (patch) | |
tree | c676e9457fc8fa564f11bea0daff898bc93778e8 /spec | |
parent | a91bacf51c1be050530e3392fe309d3323190010 (diff) | |
download | gitlab-ce-8c60c671b0402fd725425efe6a8d9a05f0491308.tar.gz |
Hide CI status when pipelines disabled
Pipeline status was showing failed on projects when CI was disabled.
This checks to see if the feature is enabled before showing the status.
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/project_spec.rb | 24 | ||||
-rw-r--r-- | spec/views/projects/commits/_commit.html.haml_spec.rb | 59 |
2 files changed, 79 insertions, 4 deletions
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 1f9088c2e6b..a78647cb89a 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -428,6 +428,30 @@ describe Project do end end + describe '#ci_pipelines' do + let(:project) { create(:project) } + + before do + create(:ci_pipeline, project: project, ref: 'master', source: :web) + create(:ci_pipeline, project: project, ref: 'master', source: :external) + end + + it 'has ci pipelines' do + expect(project.ci_pipelines.size).to eq(2) + end + + context 'when builds are disabled' do + before do + project.project_feature.update_attribute(:builds_access_level, ProjectFeature::DISABLED) + end + + it 'should return .external pipelines' do + expect(project.ci_pipelines).to all(have_attributes(source: 'external')) + expect(project.ci_pipelines.size).to eq(1) + end + end + end + describe 'project token' do it 'sets an random token if none provided' do project = FactoryBot.create(:project, runners_token: '') diff --git a/spec/views/projects/commits/_commit.html.haml_spec.rb b/spec/views/projects/commits/_commit.html.haml_spec.rb index 00547e433c4..6bf1b5fd2d0 100644 --- a/spec/views/projects/commits/_commit.html.haml_spec.rb +++ b/spec/views/projects/commits/_commit.html.haml_spec.rb @@ -1,15 +1,15 @@ require 'spec_helper' describe 'projects/commits/_commit.html.haml' do + let(:project) { create(:project, :repository) } + let(:commit) { project.repository.commit(ref) } + before do allow(view).to receive(:current_application_settings).and_return(Gitlab::CurrentSettings.current_application_settings) end - context 'with a singed commit' do - let(:project) { create(:project, :repository) } - let(:repository) { project.repository } + context 'with a signed commit' do let(:ref) { GpgHelpers::SIGNED_COMMIT_SHA } - let(:commit) { repository.commit(ref) } it 'does not display a loading spinner for GPG status' do render partial: 'projects/commits/commit', locals: { @@ -23,4 +23,55 @@ describe 'projects/commits/_commit.html.haml' do end end end + + context 'with ci status' do + let(:ref) { 'master' } + let(:user) { create(:user) } + + before do + allow(view).to receive(:current_user).and_return(user) + + project.add_developer(user) + + create( + :ci_empty_pipeline, + ref: 'master', + sha: commit.id, + status: 'success', + project: project + ) + end + + context 'when pipelines are disabled' do + before do + allow(project).to receive(:builds_enabled?).and_return(false) + end + + it 'does not display a ci status icon' do + render partial: 'projects/commits/commit', locals: { + project: project, + ref: ref, + commit: commit + } + + expect(rendered).not_to have_css('.ci-status-link') + end + end + + context 'when pipelines are enabled' do + before do + allow(project).to receive(:builds_enabled?).and_return(true) + end + + it 'does display a ci status icon when pipelines are enabled' do + render partial: 'projects/commits/commit', locals: { + project: project, + ref: ref, + commit: commit + } + + expect(rendered).to have_css('.ci-status-link') + end + end + end end |