Commit 65fe4bb1 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Improve gitlab ci commits specs (refactoring)

This minimizes usage of instance variables in this spec, and changes
double quotation marks to single when string interpolation is not being
used.
parent 00155b6c
require 'spec_helper' require 'spec_helper'
describe "Commits" do describe 'Commits' do
include CiStatusHelper include CiStatusHelper
let(:project) { create(:project) } let(:project) { create(:project) }
describe "CI" do describe 'CI' do
before do before do
login_as :user login_as :user
project.team << [@user, :master] project.team << [@user, :master]
@ci_project = project.ensure_gitlab_ci_project project.ensure_gitlab_ci_project
@commit = FactoryGirl.create :ci_commit, gl_project: project, sha: project.commit.sha stub_ci_commit_to_return_yaml_file
@build = FactoryGirl.create :ci_build, commit: @commit
@generic_status = FactoryGirl.create :generic_commit_status, commit: @commit
end end
before do let!(:commit) do
stub_ci_commit_to_return_yaml_file FactoryGirl.create :ci_commit, gl_project: project, sha: project.commit.sha
end end
describe "GET /:project/commits/:sha/ci" do let!(:build) { FactoryGirl.create :ci_build, commit: commit }
describe 'GET /:project/commits/:sha/ci' do
before do before do
visit ci_status_path(@commit) visit ci_status_path(commit)
end end
it { expect(page).to have_content @commit.sha[0..7] } 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_commit_message }
it { expect(page).to have_content @commit.git_author_name } it { expect(page).to have_content commit.git_author_name }
end end
context "Download artifacts" do context 'Download artifacts' do
let(:artifacts_file) { fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') } let(:artifacts_file) { fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') }
before do before do
@build.update_attributes(artifacts_file: artifacts_file) build.update_attributes(artifacts_file: artifacts_file)
end end
it do it do
visit ci_status_path(@commit) visit ci_status_path(commit)
click_on "Download artifacts" click_on 'Download artifacts'
expect(page.response_headers['Content-Type']).to eq(artifacts_file.content_type) expect(page.response_headers['Content-Type']).to eq(artifacts_file.content_type)
end end
end end
describe "Cancel all builds" do describe 'Cancel all builds' do
it "cancels commit" do it 'cancels commit' do
visit ci_status_path(@commit) visit ci_status_path(commit)
click_on "Cancel running" click_on 'Cancel running'
expect(page).to have_content "canceled" expect(page).to have_content 'canceled'
end end
end end
describe "Cancel build" do describe 'Cancel build' do
it "cancels build" do it 'cancels build' do
visit ci_status_path(@commit) visit ci_status_path(commit)
click_on "Cancel" click_on 'Cancel'
expect(page).to have_content "canceled" expect(page).to have_content 'canceled'
end end
end end
describe ".gitlab-ci.yml not found warning" do describe '.gitlab-ci.yml not found warning' do
context 'ci service enabled' do context 'ci service enabled' do
it "does not show warning" do it "does not show warning" do
visit ci_status_path(@commit) visit ci_status_path(commit)
expect(page).not_to have_content ".gitlab-ci.yml not found in this commit" expect(page).not_to have_content '.gitlab-ci.yml not found in this commit'
end end
it "shows warning" do it 'shows warning' do
stub_ci_commit_yaml_file(nil) stub_ci_commit_yaml_file(nil)
visit ci_status_path(@commit) visit ci_status_path(commit)
expect(page).to have_content ".gitlab-ci.yml not found in this commit" expect(page).to have_content '.gitlab-ci.yml not found in this commit'
end end
end end
context 'ci service disabled' do context 'ci service disabled' do
before do before do
allow_any_instance_of(GitlabCiService).to receive(:active).and_return(false) stub_ci_service_disabled
stub_ci_commit_yaml_file(nil) stub_ci_commit_yaml_file(nil)
visit ci_status_path(@commit) visit ci_status_path(commit)
end end
it 'does not show warning' do it 'does not show warning' do
......
...@@ -21,6 +21,10 @@ module StubGitlabCalls ...@@ -21,6 +21,10 @@ module StubGitlabCalls
allow_any_instance_of(Ci::Commit).to receive(:ci_yaml_file) { ci_yaml } allow_any_instance_of(Ci::Commit).to receive(:ci_yaml_file) { ci_yaml }
end end
def stub_ci_service_disabled
allow_any_instance_of(GitlabCiService).to receive(:active).and_return(false)
end
private private
def gitlab_url def gitlab_url
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment