diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2015-12-14 17:16:29 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2015-12-14 17:16:29 +0000 |
commit | 4526515704855278b2971522ed013ff007c0e40a (patch) | |
tree | 5ad7ce08ffb5e22d4459cf0ec0df53c1a635caff /spec/features | |
parent | 3fb89a36cb2c8bead62f4985ebdda1e05f8114df (diff) | |
parent | 0a81a681585bf699a7a41a449a2c0c21e2e335c6 (diff) | |
download | gitlab-ce-4526515704855278b2971522ed013ff007c0e40a.tar.gz |
Merge branch 'ux/suppress-ci-yml-warning' into 'master'
Suppress warning about missing `.gitlab-ci.yml` if builds are disabled
When user disables GitLab Ci Service in project's settings then warning
about missing `.gitlab-ci.yml` file should be supressed. This a matter
of user experience as stated in #3761 (closes #3761).
cc @ayufan
See merge request !2014
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/commits_spec.rb | 111 |
1 files changed, 77 insertions, 34 deletions
diff --git a/spec/features/commits_spec.rb b/spec/features/commits_spec.rb index cc0d4c150fe..ecc85376ffc 100644 --- a/spec/features/commits_spec.rb +++ b/spec/features/commits_spec.rb @@ -1,73 +1,116 @@ require 'spec_helper' -describe "Commits" do +describe 'Commits' do include CiStatusHelper let(:project) { create(:project) } - describe "CI" do + describe 'CI' do before do login_as :user project.team << [@user, :master] - @commit = FactoryGirl.create :ci_commit, project: project, sha: project.commit.sha - @build = FactoryGirl.create :ci_build, commit: @commit - @generic_status = FactoryGirl.create :generic_commit_status, commit: @commit + stub_ci_commit_to_return_yaml_file end - before do - stub_ci_commit_to_return_yaml_file + let!(:commit) do + FactoryGirl.create :ci_commit, project: project, sha: project.commit.sha + end + + let!(:build) { FactoryGirl.create :ci_build, commit: commit } + + describe 'Project commits' do + context 'builds enabled' do + context '.gitlab-ci.yml found' do + before do + visit namespace_project_commits_path(project.namespace, project, :master) + end + + it 'should show build status' do + page.within("//li[@id='commit-#{commit.short_sha}']") do + expect(page).to have_css(".ci-status-link") + end + end + end + + context 'no .gitlab-ci.yml found' do + before do + stub_ci_commit_yaml_file(nil) + visit namespace_project_commits_path(project.namespace, project, :master) + end + + it 'should not show build status' do + page.within("//li[@id='commit-#{commit.short_sha}']") do + expect(page).to have_no_css(".ci-status-link") + end + end + end + end end - describe "GET /:project/commits/:sha/ci" do + describe 'Commit builds' do before do - visit ci_status_path(@commit) + visit ci_status_path(commit) end - it { expect(page).to have_content @commit.sha[0..7] } - it { expect(page).to have_content @commit.git_commit_message } - it { expect(page).to have_content @commit.git_author_name } + it { expect(page).to have_content commit.sha[0..7] } + it { expect(page).to have_content commit.git_commit_message } + it { expect(page).to have_content commit.git_author_name } end - context "Download artifacts" do + context 'Download artifacts' do let(:artifacts_file) { fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') } before do - @build.update_attributes(artifacts_file: artifacts_file) + build.update_attributes(artifacts_file: artifacts_file) end it do - visit ci_status_path(@commit) - click_on "Download artifacts" + visit ci_status_path(commit) + click_on 'Download artifacts' expect(page.response_headers['Content-Type']).to eq(artifacts_file.content_type) end end - describe "Cancel all builds" do - it "cancels commit" do - visit ci_status_path(@commit) - click_on "Cancel running" - expect(page).to have_content "canceled" + describe 'Cancel all builds' do + it 'cancels commit' do + visit ci_status_path(commit) + click_on 'Cancel running' + expect(page).to have_content 'canceled' end end - describe "Cancel build" do - it "cancels build" do - visit ci_status_path(@commit) - click_on "Cancel" - expect(page).to have_content "canceled" + describe 'Cancel build' do + it 'cancels build' do + visit ci_status_path(commit) + click_on 'Cancel' + expect(page).to have_content 'canceled' end end - describe ".gitlab-ci.yml not found warning" do - it "does not show warning" do - visit ci_status_path(@commit) - expect(page).not_to have_content ".gitlab-ci.yml not found in this commit" + describe '.gitlab-ci.yml not found warning' do + context 'ci builds enabled' do + it "does not show warning" do + visit ci_status_path(commit) + expect(page).not_to have_content '.gitlab-ci.yml not found in this commit' + end + + it 'shows warning' do + stub_ci_commit_yaml_file(nil) + visit ci_status_path(commit) + expect(page).to have_content '.gitlab-ci.yml not found in this commit' + end end - it "shows warning" do - stub_ci_commit_yaml_file(nil) - visit ci_status_path(@commit) - expect(page).to have_content ".gitlab-ci.yml not found in this commit" + context 'ci builds disabled' do + before do + stub_ci_builds_disabled + stub_ci_commit_yaml_file(nil) + visit ci_status_path(commit) + end + + it 'does not show warning' do + expect(page).not_to have_content '.gitlab-ci.yml not found in this commit' + end end end end |