v3 make specs use v3 models, update representations of build and job, make some indentation pretty

This commit is contained in:
carlad 2015-09-02 16:21:41 +02:00
parent 210f368de4
commit 211637e247
17 changed files with 353 additions and 245 deletions

View File

@ -6,9 +6,9 @@ module Travis::API::V3
belongs_to :repository, autosave: true
belongs_to :owner, polymorphic: true
has_many :jobs,
as: :source,
order: :id,
has_many :jobs,
as: :source,
order: :id,
dependent: :destroy
has_one :branch,

View File

@ -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, :previous_state, :started_at, :finished_at, :job_ids)
representation(:standard, *representations[:minimal], :repository, :branch, :commit, :jobs)
representation(:minimal, :id, :number, :state, :duration, :event_type, :previous_state, :started_at, :finished_at, :jobs)
representation(:standard, *representations[:minimal], :repository, :branch, :commit )
end
end

View File

@ -2,7 +2,7 @@ require 'travis/api/v3/renderer/model_renderer'
module Travis::API::V3
class Renderer::Job < Renderer::ModelRenderer
representation(:minimal, :id, :number, :state, :started_at, :finished_at)
representation(:standard, *representations[:minimal], :build, :queue, :repository, :commit, :owner )
representation(:minimal, :id)
representation(:standard, *representations[:minimal], :number, :state, :started_at, :finished_at, :build, :queue, :repository, :commit, :owner )
end
end

View File

@ -12,7 +12,7 @@ describe Travis::API::V3::Extensions::BelongsTo do
after { repo.destroy; user.destroy }
example { expect(repo.owner).to be_a(Travis::API::V3::Models::User) }
example { expect(::Repository.find(repo.id).owner).to be_a(::User) }
example { expect(Travis::API::V3::Models::Repository.find(repo.id).owner).to be_a(Travis::API::V3::Models::User) }
example { expect(user.repositories).to include(repo) }
end
end
end

View File

@ -1,15 +1,15 @@
require 'spec_helper'
describe Travis::API::V3::Services::Accounts::ForCurrentUser do
let(:repo) { Repository.by_slug('svenfuchs/minimal').first }
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Permission.create(repository: repo, user: repo.owner, pull: true) }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true) }
before { repo.update_attribute(:private, true) }
after { repo.update_attribute(:private, false) }
let(:org) { Organization.new(login: 'example-org', github_id: 42) }
let(:org) { Travis::API::V3::Models::Organization.new(login: 'example-org', github_id: 42) }
before { org.save! }
before { org.memberships.create(user: repo.owner) }
after { org.delete }

View File

@ -2,6 +2,8 @@ require 'spec_helper'
describe Travis::API::V3::Services::Repository::Find do
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first }
let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs }
before { repo.default_branch.save! }
describe "public repository, existing branch" do
@ -30,7 +32,23 @@ describe Travis::API::V3::Services::Repository::Find do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => repo.default_branch.last_build.cached_matrix_ids[1...-1].split(",").map(&:to_i) }
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id},
{"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=>"minimal",
"id" => jobs[1].id},
{"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=>"minimal",
"id" => jobs[2].id},
{"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=>"minimal",
"id" =>jobs[3].id}]}
}}
end
end

View File

@ -1,8 +1,8 @@
require 'spec_helper'
describe Travis::API::V3::Services::Build::Find do
let(:repo) { Repository.by_slug('svenfuchs/minimal').first }
let(:build) { repo.builds.last }
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first }
let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs }
let(:parsed_body) { JSON.load(body) }
@ -30,14 +30,34 @@ describe Travis::API::V3::Services::Build::Find do
"@href" => "/v3/build/#{build.id}",
"@representation" => "standard",
"id" => build.id,
"number" => "3",
"state" => "configured",
"number" => build.number,
"state" => build.state,
"duration" => nil,
"event_type" => "push",
"previous_state" => "passed",
"previous_state" => build.previous_state,
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => build.cached_matrix_ids,
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=> "minimal",
"id" => jobs[3].id}],
"repository" => {
"@type" => "repository",
"@href" => "/v3/repo/#{repo.id}",
@ -59,68 +79,47 @@ describe Travis::API::V3::Services::Build::Find do
"ref" => "refs/heads/master",
"message" => "unignore Gemfile.lock",
"compare_url" => "https://github.com/svenfuchs/minimal/compare/master...develop",
"committed_at" => "2010-11-12T12:55:00Z"},
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id,
"number" => jobs[0].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id,
"number" => jobs[1].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id,
"number" => jobs[2].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=> "minimal",
"id" => jobs[3].id,
"number" => jobs[3].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil}]
"committed_at" => "2010-11-12T12:55:00Z"}
}}
end
describe "build private repository, private API, authenticated as user with access" do
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Permission.create(repository: repo, user: repo.owner, pull: true) }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true) }
before { repo.update_attribute(:private, true) }
before { get("/v3/build/#{build.id}", {}, headers) }
after { repo.update_attribute(:private, false) }
example { expect(last_response).to be_ok }
example { expect(last_response).to be_ok }
example { expect(parsed_body).to be == {
"@type" => "build",
"@href" => "/v3/build/#{build.id}",
"@representation" => "standard",
"id" => build.id,
"number" => "3",
"state" => "configured",
"number" => build.number,
"state" => build.state,
"duration" => nil,
"event_type" => "push",
"previous_state" => "passed",
"previous_state" => build.previous_state,
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => build.cached_matrix_ids,
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id},
{"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=>"minimal",
"id" => jobs[1].id},
{"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=>"minimal",
"id" => jobs[2].id},
{"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=>"minimal",
"id" =>jobs[3].id}],
"repository" => {
"@type" => "repository",
"@href" => "/v3/repo/#{repo.id}",
@ -142,44 +141,7 @@ describe Travis::API::V3::Services::Build::Find do
"ref" => "refs/heads/master",
"message" => "unignore Gemfile.lock",
"compare_url" => "https://github.com/svenfuchs/minimal/compare/master...develop",
"committed_at" => "2010-11-12T12:55:00Z"},
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id,
"number" => jobs[0].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id,
"number" => jobs[1].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id,
"number" => jobs[2].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=> "minimal",
"id" => jobs[3].id,
"number" => jobs[3].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil}]
"committed_at" => "2010-11-12T12:55:00Z"}
}}
end
end

View File

@ -60,7 +60,27 @@ describe Travis::API::V3::Services::Builds::Find do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => build.cached_matrix_ids,
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=> "minimal",
"id" => jobs[3].id}],
"repository" => {
"@type" => "repository",
"@href" => "/v3/repo/#{repo.id}",
@ -83,43 +103,6 @@ describe Travis::API::V3::Services::Builds::Find do
"message" => "unignore Gemfile.lock",
"compare_url" => "https://github.com/svenfuchs/minimal/compare/master...develop",
"committed_at" => "2010-11-12T12:55:00Z"},
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id,
"number" => jobs[0].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id,
"number" => jobs[1].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id,
"number" => jobs[2].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=> "minimal",
"id" => jobs[3].id,
"number" => jobs[3].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil}]
}]
}}
end
@ -127,7 +110,7 @@ describe Travis::API::V3::Services::Builds::Find do
describe "builds private repository, private API, authenticated as user with access" do
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Permission.create(repository: repo, user: repo.owner, pull: true) }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true) }
before { repo.update_attribute(:private, true) }
before { get("/v3/repo/#{repo.id}/builds?limit=1", {}, headers) }
after { repo.update_attribute(:private, false) }
@ -167,7 +150,27 @@ describe Travis::API::V3::Services::Builds::Find do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => build.cached_matrix_ids,
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=> "minimal",
"id" => jobs[3].id}],
"repository" => {
"@type" => "repository",
"@href" => "/v3/repo/#{repo.id}",
@ -189,44 +192,7 @@ describe Travis::API::V3::Services::Builds::Find do
"ref" => "refs/heads/master",
"message" => "unignore Gemfile.lock",
"compare_url" => "https://github.com/svenfuchs/minimal/compare/master...develop",
"committed_at" => "2010-11-12T12:55:00Z"},
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id,
"number" => jobs[0].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id,
"number" => jobs[1].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id,
"number" => jobs[2].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=> "minimal",
"id" => jobs[3].id,
"number" => jobs[3].number,
"state" => "configured",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil}]
"committed_at" => "2010-11-12T12:55:00Z"}
}]
}}
end

View File

@ -1,11 +1,12 @@
require 'spec_helper'
describe Travis::API::V3::Services::Job::Find do
let(:repo) { Repository.by_slug('svenfuchs/minimal').first }
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:owner_href) { repo.owner_type.downcase }
let(:owner_type) { repo.owner_type.constantize }
let(:owner) { owner_type.find(repo.owner_id)}
let(:build) { repo.builds.last }
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 }
let(:parsed_body) { JSON.load(body) }
@ -20,8 +21,8 @@ describe Travis::API::V3::Services::Job::Find do
"id" => job.id,
"number" => job.number,
"state" => job.state,
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => job.finished_at,
"started_at" => "2010-11-12T12:00:00Z",
"finished_at" => "2010-11-12T12:00:10Z",
"build" => {
"@type" => "build",
"@href" => "/v3/build/#{build.id}",
@ -32,9 +33,26 @@ describe Travis::API::V3::Services::Job::Find do
"duration" => build.duration,
"event_type" => build.event_type,
"previous_state" => build.previous_state,
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => build.finished_at,
"job_ids" => build.cached_matrix_ids},
"started_at" => "2010-11-12T12:00:00Z",
"finished_at" => "2010-11-12T12:00:10Z",
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id},
{
"@href" => "/v3/job/#{jobs[3].id}"}]},
"queue" => job.queue,
"repository" => {
"@type" => "repository",
@ -50,7 +68,7 @@ describe Travis::API::V3::Services::Job::Find do
"ref" => commit.ref,
"message" => commit.message,
"compare_url" => commit.compare_url,
"committed_at" => "2010-11-12T12:55:00Z"},
"committed_at" => "2010-11-12T11:50:00Z"},
"owner" => {
"@type" => owner_type.to_s.downcase,
"@href" => "/v3/#{owner_href}/#{owner.id}",
@ -74,9 +92,9 @@ describe Travis::API::V3::Services::Job::Find do
describe "fetching job on private repository, private API, authenticated as user with access" do
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Permission.create(repository: repo, user: repo.owner, pull: true) }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true) }
before { repo.update_attribute(:private, true) }
before { get("/v3/job/#{job.id}", {}, headers) }
before { get("/v3/job/#{job.id}", {}, headers) }
after { repo.update_attribute(:private, false) }
example { expect(last_response).to be_ok }
example { expect(parsed_body).to be == {
@ -86,8 +104,8 @@ describe Travis::API::V3::Services::Job::Find do
"id" => job.id,
"number" => job.number,
"state" => job.state,
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => job.finished_at,
"started_at" => "2010-11-12T12:00:00Z",
"finished_at" => "2010-11-12T12:00:10Z",
"build" => {
"@type" => "build",
"@href" => "/v3/build/#{build.id}",
@ -98,9 +116,26 @@ describe Travis::API::V3::Services::Job::Find do
"duration" => build.duration,
"event_type" => build.event_type,
"previous_state" => build.previous_state,
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => build.finished_at,
"job_ids" => build.cached_matrix_ids},
"started_at" => "2010-11-12T12:00:00Z",
"finished_at" => "2010-11-12T12:00:10Z",
"jobs" =>[
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=> "minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=> "minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=> "minimal",
"id" => jobs[2].id},
{
"@href" => "/v3/job/#{jobs[3].id}"}]},
"queue" => job.queue,
"repository" => {
"@type" => "repository",
@ -116,7 +151,7 @@ describe Travis::API::V3::Services::Job::Find do
"ref" => commit.ref,
"message" => commit.message,
"compare_url" => commit.compare_url,
"committed_at" => "2010-11-12T12:55:00Z"},
"committed_at" => "2010-11-12T11:50:00Z"},
"owner" => {
"@type" => owner_type.to_s.downcase,
"@href" => "/v3/#{owner_href}/#{owner.id}",

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Travis::API::V3::Services::Organization::Find do
let(:org) { Organization.new(login: 'example-org') }
let(:org) { Travis::API::V3::Models::Organization.new(login: 'example-org') }
before { org.save! }
after { org.delete }

View File

@ -1,15 +1,15 @@
require 'spec_helper'
describe Travis::API::V3::Services::Organizations::ForCurrentUser do
let(:repo) { Repository.by_slug('svenfuchs/minimal').first }
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Permission.create(repository: repo, user: repo.owner, pull: true) }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true) }
before { repo.update_attribute(:private, true) }
after { repo.update_attribute(:private, false) }
let(:org) { Organization.new(login: 'example-org') }
let(:org) { Travis::API::V3::Models::Organization.new(login: 'example-org') }
before { org.save! }
before { org.memberships.create(user: repo.owner) }
after { org.delete }

View File

@ -2,7 +2,7 @@ require 'spec_helper'
describe Travis::API::V3::Services::Owner::Find do
describe "organization" do
let(:org) { Organization.new(login: 'example-org') }
let(:org) { Travis::API::V3::Models::Organization.new(login: 'example-org') }
before { org.save! }
after { org.delete }
@ -23,7 +23,7 @@ describe Travis::API::V3::Services::Owner::Find do
end
describe 'eager loading repositories via organization.repositories' do
let(:repo) { Repository.new(name: 'example-repo', owner_name: 'example-org', owner_id: org.id, owner_type: 'Organization')}
let(:repo) { Travis::API::V3::Models::Repository.new(name: 'example-repo', owner_name: 'example-org', owner_id: org.id, owner_type: 'Organization')}
before { repo.save! }
after { repo.destroy }
@ -69,7 +69,7 @@ describe Travis::API::V3::Services::Owner::Find do
end
describe 'eager loading repositories via owner.repositories' do
let(:repo) { Repository.new(name: 'example-repo', owner_name: 'example-org', owner_id: org.id, owner_type: 'Organization')}
let(:repo) { Travis::API::V3::Models::Repository.new(name: 'example-repo', owner_name: 'example-org', owner_id: org.id, owner_type: 'Organization')}
before { repo.save! }
after { repo.destroy }
@ -131,7 +131,7 @@ describe Travis::API::V3::Services::Owner::Find do
end
describe "does not allow overriding org id" do
let(:other) { Organization.new(login: 'other-org') }
let(:other) { Travis::API::V3::Models::Organization.new(login: 'other-org') }
before { other.save! }
after { other.delete }
@ -157,7 +157,7 @@ describe Travis::API::V3::Services::Owner::Find do
end
describe "user" do
let(:user) { User.new(login: 'example-user') }
let(:user) { Travis::API::V3::Models::User.new(login: 'example-user') }
before { user.save! }
after { user.delete }
@ -198,7 +198,7 @@ describe Travis::API::V3::Services::Owner::Find do
end
describe "does not allow overriding user id" do
let(:other) { User.new(login: 'other-user') }
let(:other) { Travis::API::V3::Models::User.new(login: 'other-user') }
before { other.save! }
after { other.delete }

View File

@ -1,11 +1,13 @@
require 'spec_helper'
describe Travis::API::V3::Services::Owner::Repositories do
let(:repo) { Repository.by_slug('svenfuchs/minimal').first }
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first }
let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs }
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Permission.create(repository: repo, user: repo.owner, pull: true) }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true) }
before { repo.update_attribute(:private, true) }
after { repo.update_attribute(:private, false) }
@ -34,12 +36,12 @@ describe Travis::API::V3::Services::Owner::Repositories do
"private" => true,
"owner" => {
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}",
"id" => repo.owner_id,
"login" => "svenfuchs" },
"login" => "svenfuchs",
"@href" => "/v3/user/#{repo.owner_id}" },
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build_id}",
"@href" => "/v3/build/#{repo.last_build.id}",
"id" => repo.last_build_id,
"number" => "2",
"state" => "passed",
@ -53,9 +55,9 @@ describe Travis::API::V3::Services::Owner::Repositories do
"name" => "master",
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build.id}",
"@href" => "/v3/build/#{repo.default_branch.last_build.id}",
"@representation"=> "minimal",
"id" => repo.last_build.id,
"id" => repo.default_branch.last_build.id,
"number" => "3",
"state" => "configured",
"duration" => nil,
@ -63,7 +65,28 @@ describe Travis::API::V3::Services::Owner::Repositories do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => repo.last_build.cached_matrix_ids}}}]
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=>"minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=>"minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=>"minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=>"minimal",
"id" => jobs[3].id}]
}}}]
}}
end

View File

@ -1,11 +1,13 @@
require 'spec_helper'
describe Travis::API::V3::Services::Repositories::ForCurrentUser do
let(:repo) { Repository.by_slug('svenfuchs/minimal').first }
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first }
let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs }
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Permission.create(repository: repo, user: repo.owner, pull: true, push: true) }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true, push: true) }
before { repo.update_attribute(:private, true) }
after { repo.update_attribute(:private, false) }
@ -53,9 +55,9 @@ describe Travis::API::V3::Services::Repositories::ForCurrentUser do
"name" => "master",
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build.id}",
"@href" => "/v3/build/#{repo.default_branch.last_build.id}",
"@representation"=> "minimal",
"id" => repo.last_build.id,
"id" => repo.default_branch.last_build.id,
"number" => "3",
"state" => "configured",
"duration" => nil,
@ -63,7 +65,27 @@ describe Travis::API::V3::Services::Repositories::ForCurrentUser do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => repo.last_build.cached_matrix_ids}}}]
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=>"minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=>"minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=>"minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=>"minimal",
"id" => jobs[3].id}]
}}}]
}}
end

View File

@ -1,7 +1,9 @@
require 'spec_helper'
describe Travis::API::V3::Services::Repository::Find do
let(:repo) { Repository.by_slug('svenfuchs/minimal').first }
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first }
let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs }
let(:parsed_body) { JSON.load(body) }
describe "fetching a public repository by slug" do
@ -41,10 +43,10 @@ describe Travis::API::V3::Services::Repository::Find do
"active" => true,
"private" => false,
"owner" => {
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}",
"id" => repo.owner_id,
"login" => "svenfuchs" },
"login" => "svenfuchs",
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}"},
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build_id}",
@ -61,9 +63,9 @@ describe Travis::API::V3::Services::Repository::Find do
"name" => "master",
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build.id}",
"@href" => "/v3/build/#{repo.default_branch.last_build.id}",
"@representation"=> "minimal",
"id" => repo.last_build.id,
"id" => repo.default_branch.last_build.id,
"number" => "3",
"state" => "configured",
"duration" => nil,
@ -71,7 +73,27 @@ describe Travis::API::V3::Services::Repository::Find do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => repo.last_build.cached_matrix_ids}}
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=>"minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=>"minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=>"minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=>"minimal",
"id" => jobs[3].id}]
}}
}}
end
@ -115,7 +137,7 @@ describe Travis::API::V3::Services::Repository::Find do
describe "private repository, private API, authenticated as user with access" do
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Permission.create(repository: repo, user: repo.owner, pull: true) }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true) }
before { repo.update_attribute(:private, true) }
before { get("/v3/repo/#{repo.id}", {}, headers) }
after { repo.update_attribute(:private, false) }
@ -137,10 +159,10 @@ describe Travis::API::V3::Services::Repository::Find do
"active" => true,
"private" => true,
"owner" => {
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}",
"id" => repo.owner_id,
"login" => "svenfuchs" },
"login" => "svenfuchs",
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}"},
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build_id}",
@ -157,9 +179,9 @@ describe Travis::API::V3::Services::Repository::Find do
"name" => "master",
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build.id}",
"@href" => "/v3/build/#{repo.default_branch.last_build.id}",
"@representation"=> "minimal",
"id" => repo.last_build.id,
"id" => repo.default_branch.last_build.id,
"number" => "3",
"state" => "configured",
"duration" => nil,
@ -167,7 +189,27 @@ describe Travis::API::V3::Services::Repository::Find do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => repo.last_build.cached_matrix_ids}}
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=>"minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=>"minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=>"minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=>"minimal",
"id" => jobs[3].id}]
}}
}}
end
@ -218,10 +260,10 @@ describe Travis::API::V3::Services::Repository::Find do
"active" => true,
"private" => true,
"owner" => {
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}",
"id" => repo.owner_id,
"login" => "svenfuchs" },
"login" => "svenfuchs",
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}"},
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build_id}",
@ -238,9 +280,9 @@ describe Travis::API::V3::Services::Repository::Find do
"name" => "master",
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build.id}",
"@href" => "/v3/build/#{repo.default_branch.last_build.id}",
"@representation"=> "minimal",
"id" => repo.last_build.id,
"id" => repo.default_branch.last_build.id,
"number" => "3",
"state" => "configured",
"duration" => nil,
@ -248,7 +290,27 @@ describe Travis::API::V3::Services::Repository::Find do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => repo.last_build.cached_matrix_ids}}
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=>"minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=>"minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=>"minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=>"minimal",
"id" => jobs[3].id}]
}}
}}
end
@ -305,10 +367,10 @@ describe Travis::API::V3::Services::Repository::Find do
"active" => true,
"private" => true,
"owner" => {
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}",
"id" => repo.owner_id,
"login" => "svenfuchs" },
"login" => "svenfuchs",
"@type" => "user",
"@href" => "/v3/user/#{repo.owner_id}"},
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build_id}",
@ -325,9 +387,9 @@ describe Travis::API::V3::Services::Repository::Find do
"name" => "master",
"last_build" => {
"@type" => "build",
"@href" => "/v3/build/#{repo.last_build.id}",
"@href" => "/v3/build/#{repo.default_branch.last_build.id}",
"@representation"=> "minimal",
"id" => repo.last_build.id,
"id" => repo.default_branch.last_build.id,
"number" => "3",
"state" => "configured",
"duration" => nil,
@ -335,7 +397,27 @@ describe Travis::API::V3::Services::Repository::Find do
"previous_state" => "passed",
"started_at" => "2010-11-12T13:00:00Z",
"finished_at" => nil,
"job_ids" => repo.last_build.cached_matrix_ids}}
"jobs" => [{
"@type" => "job",
"@href" => "/v3/job/#{jobs[0].id}",
"@representation"=>"minimal",
"id" => jobs[0].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[1].id}",
"@representation"=>"minimal",
"id" => jobs[1].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[2].id}",
"@representation"=>"minimal",
"id" => jobs[2].id},
{
"@type" => "job",
"@href" => "/v3/job/#{jobs[3].id}",
"@representation"=>"minimal",
"id" => jobs[3].id}]
}}
}}
end

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Travis::API::V3::Services::User::Current do
let(:user) { User.find_by_login('svenfuchs') }
let(:user) { Travis::API::V3::Models::User.find_by_login('svenfuchs') }
let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Travis::API::V3::Services::User::Find do
let(:user) { User.find_by_login('svenfuchs') }
let(:user) { Travis::API::V3::Models::User.find_by_login('svenfuchs') }
let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}