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.
This commit is contained in:
Grzegorz Bizon 2015-12-08 11:59:46 +01:00
parent 00155b6c69
commit 65fe4bb1ce
2 changed files with 43 additions and 39 deletions

View File

@ -1,83 +1,83 @@
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]
@ci_project = project.ensure_gitlab_ci_project
@commit = FactoryGirl.create :ci_commit, gl_project: project, sha: project.commit.sha
@build = FactoryGirl.create :ci_build, commit: @commit
@generic_status = FactoryGirl.create :generic_commit_status, commit: @commit
end
before do
project.ensure_gitlab_ci_project
stub_ci_commit_to_return_yaml_file
end
describe "GET /:project/commits/:sha/ci" do
before do
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 }
let!(:commit) do
FactoryGirl.create :ci_commit, gl_project: project, sha: project.commit.sha
end
context "Download artifacts" do
let!(:build) { FactoryGirl.create :ci_build, commit: commit }
describe 'GET /:project/commits/:sha/ci' do
before do
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 }
end
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
describe '.gitlab-ci.yml not found warning' do
context 'ci service 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"
visit ci_status_path(commit)
expect(page).not_to have_content '.gitlab-ci.yml not found in this commit'
end
it "shows warning" do
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"
visit ci_status_path(commit)
expect(page).to have_content '.gitlab-ci.yml not found in this commit'
end
end
context 'ci service disabled' do
before do
allow_any_instance_of(GitlabCiService).to receive(:active).and_return(false)
stub_ci_service_disabled
stub_ci_commit_yaml_file(nil)
visit ci_status_path(@commit)
visit ci_status_path(commit)
end
it 'does not show warning' do

View File

@ -21,6 +21,10 @@ module StubGitlabCalls
allow_any_instance_of(Ci::Commit).to receive(:ci_yaml_file) { ci_yaml }
end
def stub_ci_service_disabled
allow_any_instance_of(GitlabCiService).to receive(:active).and_return(false)
end
private
def gitlab_url