Fix tests
This commit is contained in:
parent
2c1f7ccac8
commit
8f8efcfa00
|
@ -48,7 +48,7 @@ module Ci
|
||||||
|
|
||||||
accepts_nested_attributes_for :variables, allow_destroy: true
|
accepts_nested_attributes_for :variables, allow_destroy: true
|
||||||
|
|
||||||
delegate :commits, :builds, :last_commit, to: :gl_project
|
delegate :commits, :builds, to: :gl_project
|
||||||
|
|
||||||
#
|
#
|
||||||
# Validations
|
# Validations
|
||||||
|
@ -103,8 +103,8 @@ module Ci
|
||||||
end
|
end
|
||||||
|
|
||||||
def ordered_by_last_commit_date
|
def ordered_by_last_commit_date
|
||||||
last_commit_subquery = "(SELECT project_id, MAX(committed_at) committed_at FROM #{Ci::Commit.table_name} GROUP BY project_id)"
|
last_commit_subquery = "(SELECT gl_project_id, MAX(committed_at) committed_at FROM #{Ci::Commit.table_name} GROUP BY gl_project_id)"
|
||||||
joins("LEFT JOIN #{last_commit_subquery} AS last_commit ON #{Ci::Project.table_name}.id = last_commit.project_id").
|
joins("LEFT JOIN #{last_commit_subquery} AS last_commit ON #{Ci::Project.table_name}.gitlab_id = last_commit.gl_project_id").
|
||||||
order("CASE WHEN last_commit.committed_at IS NULL THEN 1 ELSE 0 END, last_commit.committed_at DESC")
|
order("CASE WHEN last_commit.committed_at IS NULL THEN 1 ELSE 0 END, last_commit.committed_at DESC")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,6 @@ class Project < ActiveRecord::Base
|
||||||
has_many :starrers, through: :users_star_projects, source: :user
|
has_many :starrers, through: :users_star_projects, source: :user
|
||||||
has_many :commits, ->() { order('CASE WHEN ci_commits.committed_at IS NULL THEN 0 ELSE 1 END', :committed_at, :id) }, dependent: :destroy, class_name: 'Ci::Commit', foreign_key: :gl_project_id
|
has_many :commits, ->() { order('CASE WHEN ci_commits.committed_at IS NULL THEN 0 ELSE 1 END', :committed_at, :id) }, dependent: :destroy, class_name: 'Ci::Commit', foreign_key: :gl_project_id
|
||||||
has_many :builds, through: :commits, dependent: :destroy, class_name: 'Ci::Build'
|
has_many :builds, through: :commits, dependent: :destroy, class_name: 'Ci::Build'
|
||||||
has_one :last_commit, -> { order 'ci_commits.created_at DESC' }, class_name: 'Ci::Commit', foreign_key: :gl_project_id
|
|
||||||
|
|
||||||
has_one :import_data, dependent: :destroy, class_name: "ProjectImportData"
|
has_one :import_data, dependent: :destroy, class_name: "ProjectImportData"
|
||||||
has_one :gitlab_ci_project, dependent: :destroy, class_name: "Ci::Project", foreign_key: :gitlab_id
|
has_one :gitlab_ci_project, dependent: :destroy, class_name: "Ci::Project", foreign_key: :gitlab_id
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
- last_commit = project.last_commit
|
- last_commit = project.commits.last
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td
|
||||||
= project.id
|
= project.id
|
||||||
|
|
|
@ -28,9 +28,8 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Ci::Project do
|
describe Ci::Project do
|
||||||
let(:gl_project) { FactoryGirl.create :empty_project, gitlab_ci_project: project }
|
let(:gl_project) { FactoryGirl.create :empty_project }
|
||||||
let (:gl_project) { }
|
subject { FactoryGirl.create :ci_project, gl_project: gl_project }
|
||||||
subject { FactoryGirl.build :ci_project }
|
|
||||||
|
|
||||||
it { is_expected.to have_many(:runner_projects) }
|
it { is_expected.to have_many(:runner_projects) }
|
||||||
it { is_expected.to have_many(:runners) }
|
it { is_expected.to have_many(:runners) }
|
||||||
|
@ -40,9 +39,7 @@ describe Ci::Project do
|
||||||
it { is_expected.to have_many(:triggers) }
|
it { is_expected.to have_many(:triggers) }
|
||||||
it { is_expected.to have_many(:services) }
|
it { is_expected.to have_many(:services) }
|
||||||
|
|
||||||
it { is_expected.to validate_presence_of :name }
|
|
||||||
it { is_expected.to validate_presence_of :timeout }
|
it { is_expected.to validate_presence_of :timeout }
|
||||||
it { is_expected.to validate_presence_of :default_ref }
|
|
||||||
|
|
||||||
describe 'before_validation' do
|
describe 'before_validation' do
|
||||||
it 'should set an random token if none provided' do
|
it 'should set an random token if none provided' do
|
||||||
|
@ -78,7 +75,7 @@ describe Ci::Project do
|
||||||
it 'returns ordered list of commits' do
|
it 'returns ordered list of commits' do
|
||||||
commit1 = FactoryGirl.create :ci_commit, committed_at: 1.hour.ago, gl_project: project
|
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
|
commit2 = FactoryGirl.create :ci_commit, committed_at: 2.hour.ago, gl_project: project
|
||||||
expect(project.commits).to eq([commit2.project, commit1.project])
|
expect(project.commits).to eq([commit2, commit1])
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns commits ordered by committed_at and id, with nulls last' do
|
it 'returns commits ordered by committed_at and id, with nulls last' do
|
||||||
|
@ -86,7 +83,7 @@ describe Ci::Project do
|
||||||
commit2 = FactoryGirl.create :ci_commit, committed_at: nil, 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
|
commit3 = FactoryGirl.create :ci_commit, committed_at: 2.hour.ago, gl_project: project
|
||||||
commit4 = FactoryGirl.create :ci_commit, committed_at: nil, 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])
|
expect(project.commits).to eq([commit2, commit4, commit3, commit1])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ describe "Builds" do
|
||||||
|
|
||||||
describe "GET /:project/builds/:id/status.json" do
|
describe "GET /:project/builds/:id/status.json" do
|
||||||
before do
|
before do
|
||||||
get status_ci_project_build_path(@project, @build), format: :json
|
get status_ci_project_build_path(@commit.project, @build), format: :json
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(response.status).to eq(200) }
|
it { expect(response.status).to eq(200) }
|
||||||
|
|
|
@ -7,7 +7,7 @@ describe "Commits" do
|
||||||
|
|
||||||
describe "GET /:project/refs/:ref_name/commits/:id/status.json" do
|
describe "GET /:project/refs/:ref_name/commits/:id/status.json" do
|
||||||
before do
|
before do
|
||||||
get status_ci_project_ref_commits_path(@project, @commit.ref, @commit.sha), format: :json
|
get status_ci_project_ref_commits_path(@commit.project, @commit.ref, @commit.sha), format: :json
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(response.status).to eq(200) }
|
it { expect(response.status).to eq(200) }
|
||||||
|
|
Loading…
Reference in New Issue