API v3: don't load all builds when eagerloading repository.last_build

This commit is contained in:
Konstantin Haase 2015-05-05 17:01:03 +02:00
parent 59835c80f6
commit 2f19ba3357
3 changed files with 4 additions and 14 deletions

View File

@ -8,10 +8,7 @@ module Travis::API::V3
has_many :users, through: :permissions
belongs_to :owner, polymorphic: true
has_one :last_build,
class_name: 'Travis::API::V3::Models::Build'.freeze,
order: 'id DESC'.freeze
belongs_to :last_build, class_name: 'Travis::API::V3::Models::Build'.freeze
has_one :default_branch,
foreign_key: [:repository_id, :name],

View File

@ -18,8 +18,8 @@ describe Travis::API::V3::Services::Repository::Find do
"slug" => "svenfuchs/minimal"},
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build.id}",
"id" => repo.last_build.id,
"@href" => "/v3/build/#{repo.default_branch.last_build.id}",
"id" => repo.default_branch.last_build.id,
"number" => "3",
"state" => "configured",
"duration" => nil,

View File

@ -319,7 +319,7 @@ describe Travis::API::V3::Services::Repository::Find do
describe "including full owner and full last build" do
before { get("/v3/repo/#{repo.id}?include=repository.owner,repository.last_build") }
example { expect(last_response).to be_ok }
example { expect(parsed_body['last_build']['state']).to be == 'configured' }
example { expect(parsed_body['last_build']['state']).to be == 'passed' }
example { expect(parsed_body['last_build']['repository']).to be == { "@href" => "/v3/repo/#{repo.id}" } }
example { expect(parsed_body['owner']).to include("github_id", "is_syncing", "synced_at")}
end
@ -348,12 +348,5 @@ describe Travis::API::V3::Services::Repository::Find do
before { get("/v3/repo/#{repo.id}?include=repository.last_build,build.branch") }
example { expect(last_response).to be_ok }
example { expect(parsed_body).to include("last_build") }
example { expect(parsed_body['last_build']).to include("branch" => {
"@type" => "branch",
"@href" => "/v3/repo/#{repo.id}/branch/master",
"name" => "master",
"repository" => { "@href" =>"/v3/repo/#{repo.id}" },
"last_build" => { "@href" =>"/v3/build/#{repo.last_build.id}" }
}) }
end
end