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'
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
project.ensure_gitlab_ci_project
stub_ci_commit_to_return_yaml_file
end
before do
stub_ci_commit_to_return_yaml_file
let!(:commit) do
FactoryGirl.create :ci_commit, gl_project: project, sha: project.commit.sha
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
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
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
......
......@@ -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
......
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