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
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

View File

@ -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}",

View File

@ -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}",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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