Commit 0e338147 authored by Kamil Trzcinski's avatar Kamil Trzcinski

Fix tests

parent 30c78e70
......@@ -186,7 +186,7 @@ module Ci
end
def project_id
commit.gl_project.gitlab_id
commit.project.id
end
def project_name
......
......@@ -37,8 +37,15 @@ module Ci
end
def project
@project ||= gl_project.gitlab_ci_project
@project ||= gl_project.create_gitlab_ci_project
unless @project
gl_project.ensure_ci_project
@project = gl_project.gitlab_ci_project
end
@project
end
def project_id
project.id
end
def last_build
......@@ -116,14 +123,14 @@ module Ci
builds_attrs = config_processor.builds_for_stage_and_ref(stage, ref, tag)
builds_attrs.map do |build_attrs|
builds.create!({
name: build_attrs[:name],
commands: build_attrs[:script],
tag_list: build_attrs[:tags],
options: build_attrs[:options],
allow_failure: build_attrs[:allow_failure],
stage: build_attrs[:stage],
trigger_request: trigger_request,
})
name: build_attrs[:name],
commands: build_attrs[:script],
tag_list: build_attrs[:tags],
options: build_attrs[:options],
allow_failure: build_attrs[:allow_failure],
stage: build_attrs[:stage],
trigger_request: trigger_request,
})
end
end
......
......@@ -748,6 +748,12 @@ class Project < ActiveRecord::Base
gitlab_ci_project.commits.find_by(sha: sha) if gitlab_ci?
end
def ensure_ci_project
unless gitlab_ci_project
create_gitlab_ci_project
end
end
def enable_ci(user)
# Enable service
service = gitlab_ci_service || create_gitlab_ci_service
......
......@@ -18,11 +18,13 @@
require 'spec_helper'
describe Ci::Commit do
let(:commit) { FactoryGirl.create :ci_commit }
let(:commit_with_project) { FactoryGirl.create :ci_commit }
let(:project) { FactoryGirl.create :ci_project }
let(:gl_project) { FactoryGirl.create :empty_project, gitlab_ci_project: project }
let(:commit) { FactoryGirl.create :ci_commit, gl_project: gl_project }
let(:commit_with_project) { FactoryGirl.create :ci_commit, gl_project: gl_project }
let(:config_processor) { Ci::GitlabCiYamlProcessor.new(gitlab_ci_yaml) }
it { is_expected.to belong_to(:project) }
it { is_expected.to belong_to(:gl_project) }
it { is_expected.to have_many(:builds) }
it { is_expected.to validate_presence_of :before_sha }
it { is_expected.to validate_presence_of :sha }
......@@ -87,7 +89,7 @@ describe Ci::Commit do
email_add_pusher: false,
email_recipients: 'rec1 rec2'
gl_project = FactoryGirl.create :empty_project, gitlab_ci_project: project
commit = FactoryGirl.create :ci_commit, project: gl_project
commit = FactoryGirl.create :ci_commit, gl_project: gl_project
expect(commit.project_recipients).to eq(['rec1', 'rec2'])
end
......@@ -96,7 +98,7 @@ describe Ci::Commit do
email_add_pusher: true,
email_recipients: 'rec1 rec1 rec2'
gl_project = FactoryGirl.create :empty_project, gitlab_ci_project: project
commit = FactoryGirl.create :ci_commit, project: gl_project
commit = FactoryGirl.create :ci_commit, gl_project: gl_project
expected = 'rec2'
allow(commit).to receive(:push_data) { { user_email: expected } }
expect(commit.project_recipients).to eq(['rec1', 'rec2'])
......
......@@ -3,10 +3,8 @@ require 'spec_helper'
describe Ci::HipChatMessage do
subject { Ci::HipChatMessage.new(build) }
let(:project) { FactoryGirl.create(:ci_project) }
context "One build" do
let(:commit) { FactoryGirl.create(:ci_commit_with_one_job, project: project) }
let(:commit) { FactoryGirl.create(:ci_commit_with_one_job) }
let(:build) do
commit.create_builds
......@@ -37,7 +35,7 @@ describe Ci::HipChatMessage do
end
context "Several builds" do
let(:commit) { FactoryGirl.create(:ci_commit_with_two_jobs, project: project) }
let(:commit) { FactoryGirl.create(:ci_commit_with_two_jobs) }
let(:build) do
commit.builds.first
......
......@@ -39,8 +39,8 @@ describe Ci::HipChatService do
before do
allow(service).to receive_messages(
project: project,
project_id: project.id,
project: commit.project,
project_id: commit.project_id,
notify_only_broken_builds: false,
hipchat_room: 123,
hipchat_token: 'a1b2c3d4e5f6'
......
......@@ -3,10 +3,8 @@ require 'spec_helper'
describe Ci::SlackMessage do
subject { Ci::SlackMessage.new(commit) }
let(:project) { FactoryGirl.create :ci_project }
context "One build" do
let(:commit) { FactoryGirl.create(:ci_commit_with_one_job, project: project) }
let(:commit) { FactoryGirl.create(:ci_commit_with_one_job) }
let(:build) do
commit.create_builds
......@@ -43,7 +41,7 @@ describe Ci::SlackMessage do
end
context "Several builds" do
let(:commit) { FactoryGirl.create(:ci_commit_with_two_jobs, project: project) }
let(:commit) { FactoryGirl.create(:ci_commit_with_two_jobs) }
context 'when all matrix builds succeeded' do
let(:color) { 'good' }
......
......@@ -38,8 +38,8 @@ describe Ci::SlackService do
before do
allow(slack).to receive_messages(
project: project,
project_id: project.id,
project: commit.project,
project_id: commit.project_id,
webhook: webhook_url,
notify_only_broken_builds: notify_only_broken_builds
)
......
......@@ -28,9 +28,17 @@
require 'spec_helper'
describe Ci::Project do
let(:gl_project) { FactoryGirl.create :empty_project, gitlab_ci_project: project }
let (:gl_project) { }
subject { FactoryGirl.build :ci_project }
it { is_expected.to have_many(:commits) }
it { is_expected.to have_many(:runner_projects) }
it { is_expected.to have_many(:runners) }
it { is_expected.to have_many(:web_hooks) }
it { is_expected.to have_many(:events) }
it { is_expected.to have_many(:variables) }
it { is_expected.to have_many(:triggers) }
it { is_expected.to have_many(:services) }
it { is_expected.to validate_presence_of :name }
it { is_expected.to validate_presence_of :timeout }
......@@ -50,41 +58,44 @@ describe Ci::Project do
describe "ordered_by_last_commit_date" do
it "returns ordered projects" do
newest_project = FactoryGirl.create :ci_project
oldest_project = FactoryGirl.create :ci_project
project_without_commits = FactoryGirl.create :ci_project
newest_project = FactoryGirl.create :empty_project
newest_project.ensure_ci_project
oldest_project = FactoryGirl.create :empty_project
oldest_project.ensure_ci_project
project_without_commits = FactoryGirl.create :empty_project
project_without_commits.ensure_ci_project
FactoryGirl.create :ci_commit, committed_at: 1.hour.ago, project: newest_project
FactoryGirl.create :ci_commit, committed_at: 2.hour.ago, project: oldest_project
FactoryGirl.create :ci_commit, committed_at: 1.hour.ago, gl_project: newest_project
FactoryGirl.create :ci_commit, committed_at: 2.hour.ago, gl_project: oldest_project
expect(Ci::Project.ordered_by_last_commit_date).to eq([newest_project, oldest_project, project_without_commits])
expect(Ci::Project.ordered_by_last_commit_date).to eq([newest_project.gitlab_ci_project, oldest_project.gitlab_ci_project, project_without_commits.gitlab_ci_project])
end
end
describe 'ordered commits' do
let(:project) { FactoryGirl.create :ci_project }
let(:project) { FactoryGirl.create :empty_project }
it 'returns ordered list of commits' do
commit1 = FactoryGirl.create :ci_commit, committed_at: 1.hour.ago, project: project
commit2 = FactoryGirl.create :ci_commit, committed_at: 2.hour.ago, project: project
expect(project.commits).to eq([commit2, commit1])
commit1 = FactoryGirl.create :ci_commit, committed_at: 1.hour.ago, gl_project: project
commit2 = FactoryGirl.create :ci_commit, committed_at: 2.hour.ago, gl_project: project
expect(project.commits).to eq([commit2.project, commit1.project])
end
it 'returns commits ordered by committed_at and id, with nulls last' do
commit1 = FactoryGirl.create :ci_commit, committed_at: 1.hour.ago, project: project
commit2 = FactoryGirl.create :ci_commit, committed_at: nil, project: project
commit3 = FactoryGirl.create :ci_commit, committed_at: 2.hour.ago, project: project
commit4 = FactoryGirl.create :ci_commit, committed_at: nil, project: project
expect(project.commits).to eq([commit2, commit4, commit3, commit1])
commit1 = FactoryGirl.create :ci_commit, committed_at: 1.hour.ago, gl_project: project
commit2 = FactoryGirl.create :ci_commit, committed_at: nil, gl_project: project
commit3 = FactoryGirl.create :ci_commit, committed_at: 2.hour.ago, gl_project: project
commit4 = FactoryGirl.create :ci_commit, committed_at: nil, gl_project: project
expect(project.commits).to eq([commit2.project, commit4.project, commit3.project, commit1.project])
end
end
context :valid_project do
let(:project) { FactoryGirl.create :ci_project }
let(:gl_project) { FactoryGirl.create(:empty_project, gitlab_ci_project: project) }
let(:commit) { FactoryGirl.create(:ci_commit, gl_project: gl_project) }
let(:commit) { FactoryGirl.create(:ci_commit) }
context :project_with_commit_and_builds do
let(:project) { commit.project }
before do
FactoryGirl.create(:ci_build, commit: commit)
end
......
......@@ -34,7 +34,7 @@ describe Ci::Service do
before do
allow(@service).to receive_messages(
project: project
project: commit.project
)
build
@testable = @service.can_test?
......
......@@ -3,7 +3,9 @@ require 'spec_helper'
module Ci
describe RegisterBuildService do
let!(:service) { RegisterBuildService.new }
let!(:commit) { FactoryGirl.create :ci_commit }
let!(:project) { FactoryGirl.create :ci_project }
let!(:gl_project) { FactoryGirl.create :empty_project, gitlab_ci_project: project }
let!(:commit) { FactoryGirl.create :ci_commit, gl_project: gl_project }
let!(:pending_build) { FactoryGirl.create :ci_build, commit: commit }
let!(:shared_runner) { FactoryGirl.create(:ci_runner, is_shared: true) }
let!(:specific_runner) { FactoryGirl.create(:ci_runner, is_shared: false) }
......
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