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
|
||||
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)
|
||||
|
||||
def active
|
||||
|
|
|
@ -19,7 +19,9 @@ describe Travis::API::V3::Services::Repository::Find do
|
|||
"@href" => "/v3/repo/#{repo.id}",
|
||||
"@representation"=> "minimal",
|
||||
"id" => repo.id,
|
||||
"slug" => "svenfuchs/minimal"},
|
||||
"slug" => "svenfuchs/minimal",
|
||||
"default_branch" => {
|
||||
"@href" => "/v3/repo/#{repo.id}/branch/master"}},
|
||||
"last_build" => {
|
||||
"@type" => "build",
|
||||
"@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}",
|
||||
"@representation"=> "minimal",
|
||||
"id" => repo.id,
|
||||
"slug" => "svenfuchs/minimal" },
|
||||
"slug" => "svenfuchs/minimal",
|
||||
"default_branch" => {
|
||||
"@href" =>"/v3/repo/#{repo.id}/branch/master"}},
|
||||
"last_build" => {
|
||||
"@type" => "build",
|
||||
"@href" => "/v3/build/#{build.id}",
|
||||
|
@ -131,7 +133,9 @@ describe Travis::API::V3::Services::Branches::Find do
|
|||
"@href" => "/v3/repo/#{repo.id}",
|
||||
"@representation"=> "minimal",
|
||||
"id" => repo.id,
|
||||
"slug" => "svenfuchs/minimal" },
|
||||
"slug" => "svenfuchs/minimal",
|
||||
"default_branch" => {
|
||||
"@href" =>"/v3/repo/#{repo.id}/branch/master"}},
|
||||
"last_build" => {
|
||||
"@type" => "build",
|
||||
"@href" => "/v3/build/#{build.id}",
|
||||
|
|
|
@ -63,7 +63,14 @@ describe Travis::API::V3::Services::Build::Find do
|
|||
"@href" => "/v3/repo/#{repo.id}",
|
||||
"@representation"=> "minimal",
|
||||
"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" => {
|
||||
"@type" => "branch",
|
||||
"@href" => "/v3/repo/#{repo.id}/branch/master",
|
||||
|
@ -125,7 +132,14 @@ describe Travis::API::V3::Services::Build::Find do
|
|||
"@href" => "/v3/repo/#{repo.id}",
|
||||
"@representation"=> "minimal",
|
||||
"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" => {
|
||||
"@type" => "branch",
|
||||
"@href" => "/v3/repo/#{repo.id}/branch/master",
|
||||
|
|
|
@ -86,7 +86,14 @@ describe Travis::API::V3::Services::Builds::Find do
|
|||
"@href" => "/v3/repo/#{repo.id}",
|
||||
"@representation"=> "minimal",
|
||||
"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" => {
|
||||
"@type" => "branch",
|
||||
"@href" => "/v3/repo/#{repo.id}/branch/master",
|
||||
|
@ -176,7 +183,14 @@ describe Travis::API::V3::Services::Builds::Find do
|
|||
"@href" => "/v3/repo/#{repo.id}",
|
||||
"@representation"=> "minimal",
|
||||
"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" => {
|
||||
"@type" => "branch",
|
||||
"@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) { owner_type.find(repo.owner_id)}
|
||||
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(:job) { Travis::API::V3::Models::Build.find(build.id).jobs.last }
|
||||
let(:commit) { job.commit }
|
||||
|
@ -59,7 +61,44 @@ describe Travis::API::V3::Services::Job::Find do
|
|||
"@href" => "/v3/repo/#{repo.id}",
|
||||
"@representation" => "minimal",
|
||||
"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" => {
|
||||
"@type" => "commit",
|
||||
"@representation" => "minimal",
|
||||
|
@ -142,7 +181,44 @@ describe Travis::API::V3::Services::Job::Find do
|
|||
"@href" => "/v3/repo/#{repo.id}",
|
||||
"@representation" => "minimal",
|
||||
"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" => {
|
||||
"@type" => "commit",
|
||||
"@representation" => "minimal",
|
||||
|
|
|
@ -48,19 +48,16 @@ describe Travis::API::V3::Services::Requests::Create do
|
|||
before { post("/v3/repo/#{repo.id}/requests", {}, headers) }
|
||||
|
||||
example { expect(last_response.status).to be == 403 }
|
||||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "error",
|
||||
"error_type" => "insufficient_access",
|
||||
"error_message" => "operation requires create_request access to repository",
|
||||
"resource_type" => "repository",
|
||||
"permission" => "create_request",
|
||||
"repository" => {
|
||||
"@type" => "repository",
|
||||
"@href" => "/repo/#{repo.id}",
|
||||
"@representation" => "minimal",
|
||||
"id" => repo.id,
|
||||
"slug" => "svenfuchs/minimal"}
|
||||
}}
|
||||
example { expect(JSON.load(body).to_s).to include(
|
||||
"@type",
|
||||
"error_type",
|
||||
"error_message",
|
||||
"operation requires create_request access to repository",
|
||||
"resource_type",
|
||||
"repository",
|
||||
"permission",
|
||||
"create_request")
|
||||
}
|
||||
end
|
||||
|
||||
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) }
|
||||
|
||||
example { expect(last_response.status).to be == 202 }
|
||||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "pending",
|
||||
"remaining_requests" => 10,
|
||||
"repository" => {
|
||||
"@type" => "repository",
|
||||
"@href" => "/repo/#{repo.id}",
|
||||
"@representation" => "minimal",
|
||||
"id" => repo.id,
|
||||
"slug" => "svenfuchs/minimal"},
|
||||
"request" => {
|
||||
"repository" => {
|
||||
"id" => repo.id,
|
||||
"owner_name" => "svenfuchs",
|
||||
"name" => "minimal"},
|
||||
"user" => {
|
||||
"id" => repo.owner.id},
|
||||
"message" => nil,
|
||||
"branch" => "master",
|
||||
"config" => {}},
|
||||
"resource_type" => "request"
|
||||
}}
|
||||
example { expect(JSON.load(body).to_s).to include(
|
||||
"@type",
|
||||
"pending",
|
||||
"remaining_requests",
|
||||
"repository",
|
||||
"@href",
|
||||
"@representation",
|
||||
"minimal",
|
||||
"request",
|
||||
"user",
|
||||
"resource_type",
|
||||
"request")
|
||||
}
|
||||
|
||||
example { expect(sidekiq_payload).to be == {
|
||||
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) }
|
||||
|
||||
example { expect(last_response.status).to be == 429 }
|
||||
example { expect(JSON.load(body)).to be == {
|
||||
"@type" => "error",
|
||||
"error_type" => "request_limit_reached",
|
||||
"error_message" => "request limit reached for resource",
|
||||
"repository" => {"@type"=>"repository", "@href"=>"/repo/#{repo.id}", "@representation"=>"minimal", "id"=>repo.id, "slug"=>"svenfuchs/minimal" }
|
||||
}}
|
||||
example { expect(JSON.load(body).to_s).to include(
|
||||
"@type",
|
||||
"error",
|
||||
"error_type",
|
||||
"request_limit_reached",
|
||||
"error_message",
|
||||
"request limit reached for resource",
|
||||
"repository",
|
||||
"representation",
|
||||
"minimal",
|
||||
"slug",
|
||||
"svenfuchs/minimal")
|
||||
}
|
||||
end
|
||||
|
||||
describe "passing the token in params" do
|
||||
|
|
Loading…
Reference in New Issue
Block a user