v3: properly hand on options to nested render calls

This commit is contained in:
Konstantin Haase 2015-04-28 16:46:45 +02:00
parent 40563b0864
commit 49ad3bccda
2 changed files with 56 additions and 26 deletions

View File

@ -42,8 +42,8 @@ module Travis::API::V3
def render_value(value, **options)
case value
when Hash then value.map { |k, v| [k, render_value(v)] }.to_h
when Array then value.map { |v | render_value(v) }
when Hash then value.map { |k, v| [k, render_value(v, **options)] }.to_h
when Array then value.map { |v | render_value(v, **options) }
when *PRIMITIVE then value
when Time then value.strftime('%Y-%m-%dT%H:%M:%SZ')
when Model then render_model(value, **options)

View File

@ -29,18 +29,33 @@ describe Travis::API::V3::Services::Owner::Find do
before { get("/v3/owner/example-org?include=organization.repositories,user.repositories") }
example { expect(last_response).to be_ok }
example { expect(JSON.load(body)).to be == {
"@type" => "organization",
"@href" => "/v3/org/#{org.id}",
"id" => org.id,
"login" => "example-org",
"name" => nil,
"github_id" => nil,
"avatar_url" => nil,
"repositories" => [{
"@type" => "repository",
"@href" => "/repo/#{repo.id}",
"id" => repo.id,
"slug" => "example-org/example-repo"
"@type" => "organization",
"@href" => "/v3/org/#{org.id}",
"id" => org.id,
"login" => "example-org",
"name" => nil,
"github_id" => nil,
"avatar_url" => nil,
"repositories" => [{
"@type" => "repository",
"@href" => "/v3/repo/#{repo.id}",
"id" => repo.id,
"name" => "example-repo",
"slug" => "example-org/example-repo",
"description" => nil,
"github_language" => nil,
"active" => false,
"private" => false,
"last_build" => nil,
"owner" => {
"@type" => "organization",
"id" => org.id,
"login" => "example-org"},
"default_branch" => {
"@type" => "branch",
"@href" => "/v3/repo/#{repo.id}/branch/master",
"name" => "master",
"last_build" => nil }
}]
}}
end
@ -54,18 +69,33 @@ describe Travis::API::V3::Services::Owner::Find do
before { get("/v3/owner/example-org?include=owner.repositories") }
example { expect(last_response).to be_ok }
example { expect(JSON.load(body)).to be == {
"@type" => "organization",
"@href" => "/v3/org/#{org.id}",
"id" => org.id,
"login" => "example-org",
"name" => nil,
"github_id" => nil,
"avatar_url" => nil,
"repositories" => [{
"@type" => "repository",
"@href" => "/repo/#{repo.id}",
"id" => repo.id,
"slug" => "example-org/example-repo"
"@type" => "organization",
"@href" => "/v3/org/#{org.id}",
"id" => org.id,
"login" => "example-org",
"name" => nil,
"github_id" => nil,
"avatar_url" => nil,
"repositories" => [{
"@type" => "repository",
"@href" => "/v3/repo/#{repo.id}",
"id" => repo.id,
"name" => "example-repo",
"slug" => "example-org/example-repo",
"description" => nil,
"github_language" => nil,
"active" => false,
"private" => false,
"last_build" => nil,
"owner" => {
"@type" => "organization",
"id" => org.id,
"login" => "example-org"},
"default_branch" => {
"@type" => "branch",
"@href" => "/v3/repo/#{repo.id}/branch/master",
"name" => "master",
"last_build" => nil }
}]
}}
end