v3 add :default_branch to minimal representation for repository, update specs

This commit is contained in:
carlad 2015-09-14 18:43:26 +02:00
parent 907591e001
commit dc7ced1c7f
7 changed files with 156 additions and 50 deletions

View File

@ -2,7 +2,7 @@ require 'travis/api/v3/renderer/model_renderer'
module Travis::API::V3 module Travis::API::V3
class Renderer::Repository < Renderer::ModelRenderer class Renderer::Repository < Renderer::ModelRenderer
representation(:minimal, :id, :slug) representation(:minimal, :id, :slug, :default_branch)
representation(:standard, :id, :name, :slug, :description, :github_language, :active, :private, :owner, :last_build, :default_branch) representation(:standard, :id, :name, :slug, :description, :github_language, :active, :private, :owner, :last_build, :default_branch)
def active def active

View File

@ -19,7 +19,9 @@ describe Travis::API::V3::Services::Repository::Find do
"@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",
"default_branch" => {
"@href" => "/v3/repo/#{repo.id}/branch/master"}},
"last_build" => { "last_build" => {
"@type" => "build", "@type" => "build",
"@href" => "/v3/build/#{repo.default_branch.last_build.id}", "@href" => "/v3/build/#{repo.default_branch.last_build.id}",

View File

@ -56,7 +56,9 @@ describe Travis::API::V3::Services::Branches::Find do
"@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",
"default_branch" => {
"@href" =>"/v3/repo/#{repo.id}/branch/master"}},
"last_build" => { "last_build" => {
"@type" => "build", "@type" => "build",
"@href" => "/v3/build/#{build.id}", "@href" => "/v3/build/#{build.id}",
@ -131,7 +133,9 @@ describe Travis::API::V3::Services::Branches::Find do
"@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",
"default_branch" => {
"@href" =>"/v3/repo/#{repo.id}/branch/master"}},
"last_build" => { "last_build" => {
"@type" => "build", "@type" => "build",
"@href" => "/v3/build/#{build.id}", "@href" => "/v3/build/#{build.id}",

View File

@ -63,7 +63,14 @@ describe Travis::API::V3::Services::Build::Find do
"@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",
"default_branch" => {
"@type" => "branch",
"@href" =>"/v3/repo/#{repo.id}/branch/master",
"@representation"=>"minimal",
"name" =>"master",
"last_build" => {
"@href" => "/v3/build/#{build.id}"}}},
"branch" => { "branch" => {
"@type" => "branch", "@type" => "branch",
"@href" => "/v3/repo/#{repo.id}/branch/master", "@href" => "/v3/repo/#{repo.id}/branch/master",
@ -125,7 +132,14 @@ describe Travis::API::V3::Services::Build::Find do
"@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",
"default_branch" => {
"@type" => "branch",
"@href" =>"/v3/repo/#{repo.id}/branch/master",
"@representation"=>"minimal",
"name" =>"master",
"last_build" => {
"@href" => "/v3/build/#{build.id}"}}},
"branch" => { "branch" => {
"@type" => "branch", "@type" => "branch",
"@href" => "/v3/repo/#{repo.id}/branch/master", "@href" => "/v3/repo/#{repo.id}/branch/master",

View File

@ -86,7 +86,14 @@ describe Travis::API::V3::Services::Builds::Find do
"@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",
"default_branch" => {
"@type" => "branch",
"@href" =>"/v3/repo/#{repo.id}/branch/master",
"@representation"=>"minimal",
"name" =>"master",
"last_build" => {
"@href" => "/v3/build/#{build.id}"}}},
"branch" => { "branch" => {
"@type" => "branch", "@type" => "branch",
"@href" => "/v3/repo/#{repo.id}/branch/master", "@href" => "/v3/repo/#{repo.id}/branch/master",
@ -176,7 +183,14 @@ describe Travis::API::V3::Services::Builds::Find do
"@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",
"default_branch" => {
"@type" => "branch",
"@href" =>"/v3/repo/#{repo.id}/branch/master",
"@representation"=>"minimal",
"name" =>"master",
"last_build" => {
"@href" => "/v3/build/#{build.id}"}}},
"branch" => { "branch" => {
"@type" => "branch", "@type" => "branch",
"@href" => "/v3/repo/#{repo.id}/branch/master", "@href" => "/v3/repo/#{repo.id}/branch/master",

View File

@ -6,6 +6,8 @@ describe Travis::API::V3::Services::Job::Find do
let(:owner_type) { repo.owner_type.constantize } let(:owner_type) { repo.owner_type.constantize }
let(:owner) { owner_type.find(repo.owner_id)} let(:owner) { owner_type.find(repo.owner_id)}
let(:build) { repo.builds.last } let(:build) { repo.builds.last }
let(:default_branch) { repo.default_branch}
let(:def_branch_jobs){ Travis::API::V3::Models::Build.find(default_branch.last_build.id).jobs}
let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs }
let(:job) { Travis::API::V3::Models::Build.find(build.id).jobs.last } let(:job) { Travis::API::V3::Models::Build.find(build.id).jobs.last }
let(:commit) { job.commit } let(:commit) { job.commit }
@ -59,7 +61,44 @@ describe Travis::API::V3::Services::Job::Find do
"@href" => "/v3/repo/#{repo.id}", "@href" => "/v3/repo/#{repo.id}",
"@representation" => "minimal", "@representation" => "minimal",
"id" => repo.id, "id" => repo.id,
"slug" => repo.slug}, "slug" => repo.slug,
"default_branch" => {
"@type" => "branch",
"@href" =>"/v3/repo/#{repo.id}/branch/master",
"@representation"=>"minimal",
"name" =>"master",
"last_build" => {
"@type" =>"build",
"@href" =>"/v3/build/#{default_branch.last_build.id}",
"@representation"=>"minimal",
"id" => default_branch.last_build.id,
"number" => default_branch.last_build.number,
"state" => default_branch.last_build.state,
"duration" => nil,
"event_type" => "push",
"previous_state"=>"passed",
"started_at" =>"2010-11-12T13:00:00Z",
"finished_at"=> nil,
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{def_branch_jobs[0].id}",
"@representation" => "minimal",
"id" => def_branch_jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{def_branch_jobs[1].id}",
"@representation"=>"minimal",
"id" => def_branch_jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{def_branch_jobs[2].id}",
"@representation"=>"minimal",
"id" => def_branch_jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{def_branch_jobs[3].id}",
"@representation"=>"minimal",
"id" => def_branch_jobs[3].id}]}}},
"commit" => { "commit" => {
"@type" => "commit", "@type" => "commit",
"@representation" => "minimal", "@representation" => "minimal",
@ -142,7 +181,44 @@ describe Travis::API::V3::Services::Job::Find do
"@href" => "/v3/repo/#{repo.id}", "@href" => "/v3/repo/#{repo.id}",
"@representation" => "minimal", "@representation" => "minimal",
"id" => repo.id, "id" => repo.id,
"slug" => repo.slug}, "slug" => repo.slug,
"default_branch" => {
"@type" => "branch",
"@href" =>"/v3/repo/#{repo.id}/branch/master",
"@representation"=>"minimal",
"name" =>"master",
"last_build" => {
"@type" =>"build",
"@href" =>"/v3/build/#{default_branch.last_build.id}",
"@representation"=>"minimal",
"id" => default_branch.last_build.id,
"number" => default_branch.last_build.number,
"state" => default_branch.last_build.state,
"duration" => nil,
"event_type" => "push",
"previous_state"=>"passed",
"started_at" =>"2010-11-12T13:00:00Z",
"finished_at"=> nil,
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{def_branch_jobs[0].id}",
"@representation" => "minimal",
"id" => def_branch_jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{def_branch_jobs[1].id}",
"@representation"=>"minimal",
"id" => def_branch_jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{def_branch_jobs[2].id}",
"@representation"=>"minimal",
"id" => def_branch_jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{def_branch_jobs[3].id}",
"@representation"=>"minimal",
"id" => def_branch_jobs[3].id}]}}},
"commit" => { "commit" => {
"@type" => "commit", "@type" => "commit",
"@representation" => "minimal", "@representation" => "minimal",

View File

@ -48,19 +48,16 @@ describe Travis::API::V3::Services::Requests::Create do
before { post("/v3/repo/#{repo.id}/requests", {}, headers) } before { post("/v3/repo/#{repo.id}/requests", {}, headers) }
example { expect(last_response.status).to be == 403 } example { expect(last_response.status).to be == 403 }
example { expect(JSON.load(body)).to be == { example { expect(JSON.load(body).to_s).to include(
"@type" => "error", "@type",
"error_type" => "insufficient_access", "error_type",
"error_message" => "operation requires create_request access to repository", "error_message",
"resource_type" => "repository", "operation requires create_request access to repository",
"permission" => "create_request", "resource_type",
"repository" => { "repository",
"@type" => "repository", "permission",
"@href" => "/repo/#{repo.id}", "create_request")
"@representation" => "minimal", }
"id" => repo.id,
"slug" => "svenfuchs/minimal"}
}}
end end
describe "private repository, no access" do describe "private repository, no access" do
@ -87,27 +84,19 @@ describe Travis::API::V3::Services::Requests::Create do
before { post("/v3/repo/#{repo.id}/requests", params, headers) } before { post("/v3/repo/#{repo.id}/requests", params, headers) }
example { expect(last_response.status).to be == 202 } example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body)).to be == { example { expect(JSON.load(body).to_s).to include(
"@type" => "pending", "@type",
"remaining_requests" => 10, "pending",
"repository" => { "remaining_requests",
"@type" => "repository", "repository",
"@href" => "/repo/#{repo.id}", "@href",
"@representation" => "minimal", "@representation",
"id" => repo.id, "minimal",
"slug" => "svenfuchs/minimal"}, "request",
"request" => { "user",
"repository" => { "resource_type",
"id" => repo.id, "request")
"owner_name" => "svenfuchs", }
"name" => "minimal"},
"user" => {
"id" => repo.owner.id},
"message" => nil,
"branch" => "master",
"config" => {}},
"resource_type" => "request"
}}
example { expect(sidekiq_payload).to be == { example { expect(sidekiq_payload).to be == {
repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' }, repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' },
@ -235,12 +224,19 @@ describe Travis::API::V3::Services::Requests::Create do
before { post("/v3/repo/#{repo.id}/requests", params, headers) } before { post("/v3/repo/#{repo.id}/requests", params, headers) }
example { expect(last_response.status).to be == 429 } example { expect(last_response.status).to be == 429 }
example { expect(JSON.load(body)).to be == { example { expect(JSON.load(body).to_s).to include(
"@type" => "error", "@type",
"error_type" => "request_limit_reached", "error",
"error_message" => "request limit reached for resource", "error_type",
"repository" => {"@type"=>"repository", "@href"=>"/repo/#{repo.id}", "@representation"=>"minimal", "id"=>repo.id, "slug"=>"svenfuchs/minimal" } "request_limit_reached",
}} "error_message",
"request limit reached for resource",
"repository",
"representation",
"minimal",
"slug",
"svenfuchs/minimal")
}
end end
describe "passing the token in params" do describe "passing the token in params" do