API v3: don't load all builds when eagerloading repository.last_build
This commit is contained in:
parent
59835c80f6
commit
2f19ba3357
|
@ -8,10 +8,7 @@ module Travis::API::V3
|
||||||
has_many :users, through: :permissions
|
has_many :users, through: :permissions
|
||||||
|
|
||||||
belongs_to :owner, polymorphic: true
|
belongs_to :owner, polymorphic: true
|
||||||
|
belongs_to :last_build, class_name: 'Travis::API::V3::Models::Build'.freeze
|
||||||
has_one :last_build,
|
|
||||||
class_name: 'Travis::API::V3::Models::Build'.freeze,
|
|
||||||
order: 'id DESC'.freeze
|
|
||||||
|
|
||||||
has_one :default_branch,
|
has_one :default_branch,
|
||||||
foreign_key: [:repository_id, :name],
|
foreign_key: [:repository_id, :name],
|
||||||
|
|
|
@ -18,8 +18,8 @@ describe Travis::API::V3::Services::Repository::Find do
|
||||||
"slug" => "svenfuchs/minimal"},
|
"slug" => "svenfuchs/minimal"},
|
||||||
"last_build" => {
|
"last_build" => {
|
||||||
"@type" => "build",
|
"@type" => "build",
|
||||||
"@href" => "/v3/build/#{repo.last_build.id}",
|
"@href" => "/v3/build/#{repo.default_branch.last_build.id}",
|
||||||
"id" => repo.last_build.id,
|
"id" => repo.default_branch.last_build.id,
|
||||||
"number" => "3",
|
"number" => "3",
|
||||||
"state" => "configured",
|
"state" => "configured",
|
||||||
"duration" => nil,
|
"duration" => nil,
|
||||||
|
|
|
@ -319,7 +319,7 @@ describe Travis::API::V3::Services::Repository::Find do
|
||||||
describe "including full owner and full last build" do
|
describe "including full owner and full last build" do
|
||||||
before { get("/v3/repo/#{repo.id}?include=repository.owner,repository.last_build") }
|
before { get("/v3/repo/#{repo.id}?include=repository.owner,repository.last_build") }
|
||||||
example { expect(last_response).to be_ok }
|
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['last_build']['repository']).to be == { "@href" => "/v3/repo/#{repo.id}" } }
|
||||||
example { expect(parsed_body['owner']).to include("github_id", "is_syncing", "synced_at")}
|
example { expect(parsed_body['owner']).to include("github_id", "is_syncing", "synced_at")}
|
||||||
end
|
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") }
|
before { get("/v3/repo/#{repo.id}?include=repository.last_build,build.branch") }
|
||||||
example { expect(last_response).to be_ok }
|
example { expect(last_response).to be_ok }
|
||||||
example { expect(parsed_body).to include("last_build") }
|
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
|
||||||
end
|
end
|
Loading…
Reference in New Issue
Block a user