From dc7ced1c7fe3f64013cfda40886ec47cdf3e642c Mon Sep 17 00:00:00 2001 From: carlad Date: Mon, 14 Sep 2015 18:43:26 +0200 Subject: [PATCH] v3 add :default_branch to minimal representation for repository, update specs --- lib/travis/api/v3/renderer/repository.rb | 2 +- spec/v3/services/branch/find_spec.rb | 4 +- spec/v3/services/branches/find_spec.rb | 8 ++- spec/v3/services/build/find_spec.rb | 18 +++++- spec/v3/services/builds/find_spec.rb | 18 +++++- spec/v3/services/job/find_spec.rb | 80 +++++++++++++++++++++++- spec/v3/services/requests/create_spec.rb | 76 +++++++++++----------- 7 files changed, 156 insertions(+), 50 deletions(-) diff --git a/lib/travis/api/v3/renderer/repository.rb b/lib/travis/api/v3/renderer/repository.rb index 72f3d487..2bb4a75a 100644 --- a/lib/travis/api/v3/renderer/repository.rb +++ b/lib/travis/api/v3/renderer/repository.rb @@ -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 diff --git a/spec/v3/services/branch/find_spec.rb b/spec/v3/services/branch/find_spec.rb index 5779df2d..de54c01d 100644 --- a/spec/v3/services/branch/find_spec.rb +++ b/spec/v3/services/branch/find_spec.rb @@ -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}", diff --git a/spec/v3/services/branches/find_spec.rb b/spec/v3/services/branches/find_spec.rb index 8b261c47..8b9304f4 100644 --- a/spec/v3/services/branches/find_spec.rb +++ b/spec/v3/services/branches/find_spec.rb @@ -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}", diff --git a/spec/v3/services/build/find_spec.rb b/spec/v3/services/build/find_spec.rb index 05ffd26f..a088aa03 100644 --- a/spec/v3/services/build/find_spec.rb +++ b/spec/v3/services/build/find_spec.rb @@ -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", diff --git a/spec/v3/services/builds/find_spec.rb b/spec/v3/services/builds/find_spec.rb index c0dcf635..114bd355 100644 --- a/spec/v3/services/builds/find_spec.rb +++ b/spec/v3/services/builds/find_spec.rb @@ -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", diff --git a/spec/v3/services/job/find_spec.rb b/spec/v3/services/job/find_spec.rb index fba9c4f0..476c44ad 100644 --- a/spec/v3/services/job/find_spec.rb +++ b/spec/v3/services/job/find_spec.rb @@ -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", diff --git a/spec/v3/services/requests/create_spec.rb b/spec/v3/services/requests/create_spec.rb index 4342c5f3..23fd8460 100644 --- a/spec/v3/services/requests/create_spec.rb +++ b/spec/v3/services/requests/create_spec.rb @@ -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