v3 add :job_ids to build payload, update builds/find_spec

This commit is contained in:
carlad 2015-08-27 13:32:51 +02:00
parent 8e8e139391
commit d99d80ac98
2 changed files with 50 additions and 40 deletions

View File

@ -2,7 +2,7 @@ require 'travis/api/v3/renderer/model_renderer'
module Travis::API::V3 module Travis::API::V3
class Renderer::Build < Renderer::ModelRenderer class Renderer::Build < Renderer::ModelRenderer
representation(:minimal, :id, :number, :state, :duration, :event_type, :previous_state, :started_at, :finished_at) representation(:minimal, :id, :number, :state, :duration, :event_type, :previous_state, :started_at, :finished_at, :job_ids)
representation(:standard, *representations[:minimal], :repository, :branch, :commit, :jobs) representation(:standard, *representations[:minimal], :repository, :branch, :commit, :jobs)
end end
end end

View File

@ -60,6 +60,7 @@ describe Travis::API::V3::Services::Builds::Find do
"previous_state" => "passed", "previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z", "started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil, "finished_at" => nil,
"job_ids" => build.cached_matrix_ids,
"repository" => { "repository" => {
"@type" => "repository", "@type" => "repository",
"@href" => "/v3/repo/#{repo.id}", "@href" => "/v3/repo/#{repo.id}",
@ -85,6 +86,7 @@ describe Travis::API::V3::Services::Builds::Find do
"jobs" =>[ "jobs" =>[
{ {
"@type" => "job", "@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal", "@representation"=> "minimal",
"id" => jobs[0].id, "id" => jobs[0].id,
"number" => jobs[0].number, "number" => jobs[0].number,
@ -93,6 +95,7 @@ describe Travis::API::V3::Services::Builds::Find do
"finished_at" => nil}, "finished_at" => nil},
{ {
"@type" => "job", "@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal", "@representation"=> "minimal",
"id" => jobs[1].id, "id" => jobs[1].id,
"number" => jobs[1].number, "number" => jobs[1].number,
@ -101,6 +104,7 @@ describe Travis::API::V3::Services::Builds::Find do
"finished_at" => nil}, "finished_at" => nil},
{ {
"@type" => "job", "@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal", "@representation"=> "minimal",
"id" => jobs[2].id, "id" => jobs[2].id,
"number" => jobs[2].number, "number" => jobs[2].number,
@ -109,6 +113,7 @@ describe Travis::API::V3::Services::Builds::Find do
"finished_at" => nil}, "finished_at" => nil},
{ {
"@type" => "job", "@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=> "minimal", "@representation"=> "minimal",
"id" => jobs[3].id, "id" => jobs[3].id,
"number" => jobs[3].number, "number" => jobs[3].number,
@ -127,7 +132,7 @@ describe Travis::API::V3::Services::Builds::Find do
before { get("/v3/repo/#{repo.id}/builds?limit=1", {}, headers) } before { get("/v3/repo/#{repo.id}/builds?limit=1", {}, headers) }
after { repo.update_attribute(:private, false) } after { repo.update_attribute(:private, false) }
example { expect(last_response).to be_ok } example { expect(last_response).to be_ok }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "builds", "@type" => "builds",
"@href" => "/v3/repo/#{repo.id}/builds?limit=1", "@href" => "/v3/repo/#{repo.id}/builds?limit=1",
"@representation" => "standard", "@representation" => "standard",
@ -140,7 +145,7 @@ describe Travis::API::V3::Services::Builds::Find do
"next" => { "next" => {
"@href" => "/v3/repo/#{repo.id}/builds?limit=1&offset=1", "@href" => "/v3/repo/#{repo.id}/builds?limit=1&offset=1",
"offset" => 1, "offset" => 1,
"limit" => 1 }, "limit" => 1},
"prev" => nil, "prev" => nil,
"first" => { "first" => {
"@href" => "/v3/repo/#{repo.id}/builds?limit=1", "@href" => "/v3/repo/#{repo.id}/builds?limit=1",
@ -162,19 +167,20 @@ describe Travis::API::V3::Services::Builds::Find do
"previous_state" => "passed", "previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z", "started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil, "finished_at" => nil,
"job_ids" => build.cached_matrix_ids,
"repository" => { "repository" => {
"@type" => "repository", "@type" => "repository",
"@href" => "/v3/repo/#{repo.id}", "@href" => "/v3/repo/#{repo.id}",
"@representation"=> "minimal", "@representation"=> "minimal",
"id" => repo.id, "id" => repo.id,
"slug" => "svenfuchs/minimal"}, "slug" => "svenfuchs/minimal" },
"branch" => { "branch" => {
"@type" => "branch", "@type" => "branch",
"@href" => "/v3/repo/#{repo.id}/branch/master", "@href" => "/v3/repo/#{repo.id}/branch/master",
"@representation"=> "minimal", "@representation"=> "minimal",
"name" => "master", "name" => "master",
"last_build" => { "last_build" => {
"@href" => "/v3/build/#{build.id}"}}, "@href" => "/v3/build/#{build.id}" }},
"commit" => { "commit" => {
"@type" => "commit", "@type" => "commit",
"@representation"=> "minimal", "@representation"=> "minimal",
@ -184,41 +190,45 @@ describe Travis::API::V3::Services::Builds::Find do
"message" => "unignore Gemfile.lock", "message" => "unignore Gemfile.lock",
"compare_url" => "https://github.com/svenfuchs/minimal/compare/master...develop", "compare_url" => "https://github.com/svenfuchs/minimal/compare/master...develop",
"committed_at" => "2010-11-12T12:55:00Z"}, "committed_at" => "2010-11-12T12:55:00Z"},
"jobs" =>[ "jobs" =>[
{ {
"@type" => "job", "@type" => "job",
"@representation"=> "minimal", "@href" => "/v3/job/#{jobs[0].id}",
"id" => jobs[0].id, "@representation"=> "minimal",
"number" => jobs[0].number, "id" => jobs[0].id,
"state" => "configured", "number" => jobs[0].number,
"started_at" => "2010-11-12T13:00:00Z", "state" => "configured",
"finished_at" => nil}, "started_at" => "2010-11-12T13:00:00Z",
{ "finished_at" => nil},
"@type" => "job", {
"@representation"=> "minimal", "@type" => "job",
"id" => jobs[1].id, "@href" => "/v3/job/#{jobs[1].id}",
"number" => jobs[1].number, "@representation"=> "minimal",
"state" => "configured", "id" => jobs[1].id,
"started_at" => "2010-11-12T13:00:00Z", "number" => jobs[1].number,
"finished_at" => nil}, "state" => "configured",
{ "started_at" => "2010-11-12T13:00:00Z",
"@type" => "job", "finished_at" => nil},
"@representation"=> "minimal", {
"id" => jobs[2].id, "@type" => "job",
"number" => jobs[2].number, "@href" => "/v3/job/#{jobs[2].id}",
"state" => "configured", "@representation"=> "minimal",
"started_at" => "2010-11-12T13:00:00Z", "id" => jobs[2].id,
"finished_at" => nil}, "number" => jobs[2].number,
{ "state" => "configured",
"@type" => "job", "started_at" => "2010-11-12T13:00:00Z",
"@representation"=> "minimal", "finished_at" => nil},
"id" => jobs[3].id, {
"number" => jobs[3].number, "@type" => "job",
"state" => "configured", "@href" => "/v3/job/#{jobs[3].id}",
"started_at" => "2010-11-12T13:00:00Z", "@representation"=> "minimal",
"finished_at" => nil}] "id" => jobs[3].id,
}] "number" => jobs[3].number,
}} "state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil}]
}]
}}
end end
describe "including branch.name params on existing branch" do describe "including branch.name params on existing branch" do