v3 add :default_branch to minimal representation for repository, update specs
This commit is contained in:
parent
907591e001
commit
dc7ced1c7f
|
@ -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
|
||||||
|
|
|
@ -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}",
|
||||||
|
|
|
@ -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}",
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user