From fb8e6825db79ba6dc204366d4febcb29909e8952 Mon Sep 17 00:00:00 2001 From: Konstantin Haase Date: Thu, 30 Apr 2015 16:25:14 +0200 Subject: [PATCH] v3: expose build.previous_state --- lib/travis/api/v3/renderer/build.rb | 2 +- spec/v3/services/branch/find_spec.rb | 37 +- spec/v3/services/owner/repositories_spec.rb | 91 ++--- .../repositories/for_current_user_spec.rb | 91 ++--- spec/v3/services/repository/find_spec.rb | 340 +++++++++--------- 5 files changed, 284 insertions(+), 277 deletions(-) diff --git a/lib/travis/api/v3/renderer/build.rb b/lib/travis/api/v3/renderer/build.rb index 4634b59c..789c501c 100644 --- a/lib/travis/api/v3/renderer/build.rb +++ b/lib/travis/api/v3/renderer/build.rb @@ -2,7 +2,7 @@ require 'travis/api/v3/renderer/model_renderer' module Travis::API::V3 class Renderer::Build < Renderer::ModelRenderer - representation(:minimal, :id, :number, :state, :duration, :event_type, :started_at, :finished_at) + representation(:minimal, :id, :number, :state, :duration, :event_type, :previous_state, :started_at, :finished_at) representation(:standard, *representations[:minimal], :repository, :branch) end end diff --git a/spec/v3/services/branch/find_spec.rb b/spec/v3/services/branch/find_spec.rb index b1456e9f..e32c4718 100644 --- a/spec/v3/services/branch/find_spec.rb +++ b/spec/v3/services/branch/find_spec.rb @@ -8,23 +8,24 @@ describe Travis::API::V3::Services::Repository::Find do before { get("/v3/repo/#{repo.id}/branch/master") } example { expect(last_response).to be_ok } example { expect(JSON.load(body)).to be == { - "@type" => "branch", - "@href" => "/v3/repo/#{repo.id}/branch/master", - "name" => "master", - "repository" => { - "@type" => "repository", - "@href" => "/v3/repo/#{repo.id}", - "id" => repo.id, - "slug" => "svenfuchs/minimal"}, - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build.id}", - "id" => repo.last_build.id, - "number" => "3", - "state" => "configured", - "duration" => nil, - "event_type" => "push", - "started_at" => "2010-11-12T13:00:00Z", - "finished_at" => nil}}} + "@type" => "branch", + "@href" => "/v3/repo/#{repo.id}/branch/master", + "name" => "master", + "repository" => { + "@type" => "repository", + "@href" => "/v3/repo/#{repo.id}", + "id" => repo.id, + "slug" => "svenfuchs/minimal"}, + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "event_type" => "push", + "previous_state" => "passed", + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}}} end end \ No newline at end of file diff --git a/spec/v3/services/owner/repositories_spec.rb b/spec/v3/services/owner/repositories_spec.rb index 177134d0..e70dc2a2 100644 --- a/spec/v3/services/owner/repositories_spec.rb +++ b/spec/v3/services/owner/repositories_spec.rb @@ -13,51 +13,52 @@ describe Travis::API::V3::Services::Owner::Repositories do before { get("/v3/owner/svenfuchs/repos", {}, headers) } example { expect(last_response).to be_ok } example { expect(JSON.load(body)).to be == { - "@type" => "repositories", - "@href" => "/v3/owner/svenfuchs/repos", - "repositories" => [{ - "@type" => "repository", - "@href" => "/v3/repo/#{repo.id}", - "@permissions" => { - "read" => true, - "enable" => false, - "disable" => false, - "create_request"=> false}, - "id" => repo.id, - "name" => "minimal", - "slug" => "svenfuchs/minimal", - "description" => nil, - "github_language" => nil, - "active" => true, - "private" => true, - "owner" => { - "@type" => "user", - "@href" => "/v3/user/#{repo.owner_id}", - "id" => repo.owner_id, - "login" => "svenfuchs" }, - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build_id}", - "id" => repo.last_build_id, - "number" => "2", - "state" => "passed", - "duration" => nil, - "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"}, - "default_branch" => { - "@type" => "branch", - "@href" => "/v3/repo/#{repo.id}/branch/master", - "name" => "master", - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build.id}", - "id" => repo.last_build.id, - "number" => "3", - "state" => "configured", - "duration" => nil, - "event_type" => "push", - "started_at" => "2010-11-12T13:00:00Z", - "finished_at" => nil}}}] + "@type" => "repositories", + "@href" => "/v3/owner/svenfuchs/repos", + "repositories" => [{ + "@type" => "repository", + "@href" => "/v3/repo/#{repo.id}", + "@permissions" => { + "read" => true, + "enable" => false, + "disable" => false, + "create_request" => false}, + "id" => repo.id, + "name" => "minimal", + "slug" => "svenfuchs/minimal", + "description" => nil, + "github_language" => nil, + "active" => true, + "private" => true, + "owner" => { + "@type" => "user", + "@href" => "/v3/user/#{repo.owner_id}", + "id" => repo.owner_id, + "login" => "svenfuchs" }, + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build_id}", + "id" => repo.last_build_id, + "number" => "2", + "state" => "passed", + "duration" => nil, + "started_at" => "2010-11-12T12:30:00Z", + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "@href" => "/v3/repo/#{repo.id}/branch/master", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "event_type" => "push", + "previous_state" => "passed", + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}}}] }} end diff --git a/spec/v3/services/repositories/for_current_user_spec.rb b/spec/v3/services/repositories/for_current_user_spec.rb index f0a05977..785c3c7c 100644 --- a/spec/v3/services/repositories/for_current_user_spec.rb +++ b/spec/v3/services/repositories/for_current_user_spec.rb @@ -13,51 +13,52 @@ describe Travis::API::V3::Services::Repositories::ForCurrentUser do before { get("/v3/repos", {}, headers) } example { expect(last_response).to be_ok } example { expect(JSON.load(body)).to be == { - "@type" => "repositories", - "@href" => "/v3/repos", - "repositories" => [{ - "@type" => "repository", - "@href" => "/v3/repo/#{repo.id}", - "@permissions" => { - "read" => true, - "enable" => true, - "disable" => true, - "create_request"=> true}, - "id" => repo.id, - "name" => "minimal", - "slug" => "svenfuchs/minimal", - "description" => nil, - "github_language" => nil, - "active" => true, - "private" => true, - "owner" => { - "@type" => "user", - "@href" => "/v3/user/#{repo.owner_id}", - "id" => repo.owner_id, - "login" => "svenfuchs" }, - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build_id}", - "id" => repo.last_build_id, - "number" => "2", - "state" => "passed", - "duration" => nil, - "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"}, - "default_branch" => { - "@type" => "branch", - "@href" => "/v3/repo/#{repo.id}/branch/master", - "name" => "master", - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build.id}", - "id" => repo.last_build.id, - "number" => "3", - "state" => "configured", - "duration" => nil, - "event_type" => "push", - "started_at" => "2010-11-12T13:00:00Z", - "finished_at" => nil}}}] + "@type" => "repositories", + "@href" => "/v3/repos", + "repositories" => [{ + "@type" => "repository", + "@href" => "/v3/repo/#{repo.id}", + "@permissions" => { + "read" => true, + "enable" => true, + "disable" => true, + "create_request" => true}, + "id" => repo.id, + "name" => "minimal", + "slug" => "svenfuchs/minimal", + "description" => nil, + "github_language" => nil, + "active" => true, + "private" => true, + "owner" => { + "@type" => "user", + "@href" => "/v3/user/#{repo.owner_id}", + "id" => repo.owner_id, + "login" => "svenfuchs" }, + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build_id}", + "id" => repo.last_build_id, + "number" => "2", + "state" => "passed", + "duration" => nil, + "started_at" => "2010-11-12T12:30:00Z", + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "@href" => "/v3/repo/#{repo.id}/branch/master", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "event_type" => "push", + "previous_state" => "passed", + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}}}] }} end diff --git a/spec/v3/services/repository/find_spec.rb b/spec/v3/services/repository/find_spec.rb index 23c3e622..48834c0c 100644 --- a/spec/v3/services/repository/find_spec.rb +++ b/spec/v3/services/repository/find_spec.rb @@ -8,48 +8,49 @@ describe Travis::API::V3::Services::Repository::Find do before { get("/v3/repo/#{repo.id}") } example { expect(last_response).to be_ok } example { expect(parsed_body).to be == { - "@type" => "repository", - "@href" => "/v3/repo/#{repo.id}", - "@permissions" => { - "read" => true, - "enable" => false, - "disable" => false, - "create_request"=> false}, - "id" => repo.id, - "name" => "minimal", - "slug" => "svenfuchs/minimal", - "description" => nil, - "github_language" => nil, - "active" => true, - "private" => false, - "owner" => { - "@type" => "user", - "@href" => "/v3/user/#{repo.owner_id}", - "id" => repo.owner_id, - "login" => "svenfuchs" }, - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build_id}", - "id" => repo.last_build_id, - "number" => "2", - "state" => "passed", - "duration" => nil, - "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"}, - "default_branch" => { - "@type" => "branch", - "@href" => "/v3/repo/#{repo.id}/branch/master", - "name" => "master", - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build.id}", - "id" => repo.last_build.id, - "number" => "3", - "state" => "configured", - "duration" => nil, - "event_type" => "push", - "started_at" => "2010-11-12T13:00:00Z", - "finished_at" => nil}} + "@type" => "repository", + "@href" => "/v3/repo/#{repo.id}", + "@permissions" => { + "read" => true, + "enable" => false, + "disable" => false, + "create_request" => false}, + "id" => repo.id, + "name" => "minimal", + "slug" => "svenfuchs/minimal", + "description" => nil, + "github_language" => nil, + "active" => true, + "private" => false, + "owner" => { + "@type" => "user", + "@href" => "/v3/user/#{repo.owner_id}", + "id" => repo.owner_id, + "login" => "svenfuchs" }, + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build_id}", + "id" => repo.last_build_id, + "number" => "2", + "state" => "passed", + "duration" => nil, + "started_at" => "2010-11-12T12:30:00Z", + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "@href" => "/v3/repo/#{repo.id}/branch/master", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "event_type" => "push", + "previous_state" => "passed", + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}} }} end @@ -99,48 +100,49 @@ describe Travis::API::V3::Services::Repository::Find do after { repo.update_attribute(:private, false) } example { expect(last_response).to be_ok } example { expect(parsed_body).to be == { - "@type" => "repository", - "@href" => "/v3/repo/#{repo.id}", - "@permissions" => { - "read" => true, - "enable" => false, - "disable" => false, - "create_request"=> false}, - "id" => repo.id, - "name" => "minimal", - "slug" => "svenfuchs/minimal", - "description" => nil, - "github_language" => nil, - "active" => true, - "private" => true, - "owner" => { - "@type" => "user", - "@href" => "/v3/user/#{repo.owner_id}", - "id" => repo.owner_id, - "login" => "svenfuchs" }, - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build_id}", - "id" => repo.last_build_id, - "number" => "2", - "state" => "passed", - "duration" => nil, - "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"}, - "default_branch" => { - "@type" => "branch", - "@href" => "/v3/repo/#{repo.id}/branch/master", - "name" => "master", - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build.id}", - "id" => repo.last_build.id, - "number" => "3", - "state" => "configured", - "duration" => nil, - "event_type" => "push", - "started_at" => "2010-11-12T13:00:00Z", - "finished_at" => nil}} + "@type" => "repository", + "@href" => "/v3/repo/#{repo.id}", + "@permissions" => { + "read" => true, + "enable" => false, + "disable" => false, + "create_request" => false}, + "id" => repo.id, + "name" => "minimal", + "slug" => "svenfuchs/minimal", + "description" => nil, + "github_language" => nil, + "active" => true, + "private" => true, + "owner" => { + "@type" => "user", + "@href" => "/v3/user/#{repo.owner_id}", + "id" => repo.owner_id, + "login" => "svenfuchs" }, + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build_id}", + "id" => repo.last_build_id, + "number" => "2", + "state" => "passed", + "duration" => nil, + "started_at" => "2010-11-12T12:30:00Z", + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "@href" => "/v3/repo/#{repo.id}/branch/master", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "event_type" => "push", + "previous_state" => "passed", + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}} }} end @@ -175,48 +177,49 @@ describe Travis::API::V3::Services::Repository::Find do example { expect(last_response).to be_ok } example { expect(parsed_body).to be == { - "@type" => "repository", - "@href" => "/v3/repo/#{repo.id}", - "@permissions" => { - "read" => true, - "enable" => true, - "disable" => true, - "create_request"=> true}, - "id" => repo.id, - "name" => "minimal", - "slug" => "svenfuchs/minimal", - "description" => nil, - "github_language" => nil, - "active" => true, - "private" => true, - "owner" => { - "@type" => "user", - "@href" => "/v3/user/#{repo.owner_id}", - "id" => repo.owner_id, - "login" => "svenfuchs" }, - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build_id}", - "id" => repo.last_build_id, - "number" => "2", - "state" => "passed", - "duration" => nil, - "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"}, - "default_branch" => { - "@type" => "branch", - "@href" => "/v3/repo/#{repo.id}/branch/master", - "name" => "master", - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build.id}", - "id" => repo.last_build.id, - "number" => "3", - "state" => "configured", - "duration" => nil, - "event_type" => "push", - "started_at" => "2010-11-12T13:00:00Z", - "finished_at" => nil}} + "@type" => "repository", + "@href" => "/v3/repo/#{repo.id}", + "@permissions" => { + "read" => true, + "enable" => true, + "disable" => true, + "create_request" => true}, + "id" => repo.id, + "name" => "minimal", + "slug" => "svenfuchs/minimal", + "description" => nil, + "github_language" => nil, + "active" => true, + "private" => true, + "owner" => { + "@type" => "user", + "@href" => "/v3/user/#{repo.owner_id}", + "id" => repo.owner_id, + "login" => "svenfuchs" }, + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build_id}", + "id" => repo.last_build_id, + "number" => "2", + "state" => "passed", + "duration" => nil, + "started_at" => "2010-11-12T12:30:00Z", + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "@href" => "/v3/repo/#{repo.id}/branch/master", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "event_type" => "push", + "previous_state" => "passed", + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}} }} end @@ -257,48 +260,49 @@ describe Travis::API::V3::Services::Repository::Find do example { expect(last_response).to be_ok } example { expect(parsed_body).to be == { - "@type" => "repository", - "@href" => "/v3/repo/#{repo.id}", - "@permissions" => { - "read" => true, - "enable" => true, - "disable" => true, - "create_request"=> true}, - "id" => repo.id, - "name" => "minimal", - "slug" => "svenfuchs/minimal", - "description" => nil, - "github_language" => nil, - "active" => true, - "private" => true, - "owner" => { - "@type" => "user", - "@href" => "/v3/user/#{repo.owner_id}", - "id" => repo.owner_id, - "login" => "svenfuchs" }, - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build_id}", - "id" => repo.last_build_id, - "number" => "2", - "state" => "passed", - "duration" => nil, - "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"}, - "default_branch" => { - "@type" => "branch", - "@href" => "/v3/repo/#{repo.id}/branch/master", - "name" => "master", - "last_build" => { - "@type" => "build", - "@href" => "/v3/build/#{repo.last_build.id}", - "id" => repo.last_build.id, - "number" => "3", - "state" => "configured", - "duration" => nil, - "event_type" => "push", - "started_at" => "2010-11-12T13:00:00Z", - "finished_at" => nil}} + "@type" => "repository", + "@href" => "/v3/repo/#{repo.id}", + "@permissions" => { + "read" => true, + "enable" => true, + "disable" => true, + "create_request" => true}, + "id" => repo.id, + "name" => "minimal", + "slug" => "svenfuchs/minimal", + "description" => nil, + "github_language" => nil, + "active" => true, + "private" => true, + "owner" => { + "@type" => "user", + "@href" => "/v3/user/#{repo.owner_id}", + "id" => repo.owner_id, + "login" => "svenfuchs" }, + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build_id}", + "id" => repo.last_build_id, + "number" => "2", + "state" => "passed", + "duration" => nil, + "started_at" => "2010-11-12T12:30:00Z", + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "@href" => "/v3/repo/#{repo.id}/branch/master", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "event_type" => "push", + "previous_state" => "passed", + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}} }} end