Commit 8f8efcfa authored by Kamil Trzcinski's avatar Kamil Trzcinski

Fix tests

parent 2c1f7cca
......@@ -48,7 +48,7 @@ module Ci
accepts_nested_attributes_for :variables, allow_destroy: true
delegate :commits, :builds, :last_commit, to: :gl_project
delegate :commits, :builds, to: :gl_project
#
# Validations
......@@ -103,8 +103,8 @@ module Ci
end
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)"
joins("LEFT JOIN #{last_commit_subquery} AS last_commit ON #{Ci::Project.table_name}.id = last_commit.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}.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")
end
......
......@@ -120,7 +120,6 @@ class Project < ActiveRecord::Base
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 :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 :gitlab_ci_project, dependent: :destroy, class_name: "Ci::Project", foreign_key: :gitlab_id
......
- last_commit = project.last_commit
- last_commit = project.commits.last
%tr
%td
= project.id
......
......@@ -28,9 +28,8 @@
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 }
let(:gl_project) { FactoryGirl.create :empty_project }
subject { FactoryGirl.create :ci_project, gl_project: gl_project }
it { is_expected.to have_many(:runner_projects) }
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(:services) }
it { is_expected.to validate_presence_of :name }
it { is_expected.to validate_presence_of :timeout }
it { is_expected.to validate_presence_of :default_ref }
describe 'before_validation' 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
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])
expect(project.commits).to eq([commit2, commit1])
end
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
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])
expect(project.commits).to eq([commit2, commit4, commit3, commit1])
end
end
......
......@@ -8,7 +8,7 @@ describe "Builds" do
describe "GET /:project/builds/:id/status.json" 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
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
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
it { expect(response.status).to eq(200) }
......
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