diff --git a/lib/travis/api/v3/renderer.rb b/lib/travis/api/v3/renderer.rb index c1518399..efb0434b 100644 --- a/lib/travis/api/v3/renderer.rb +++ b/lib/travis/api/v3/renderer.rb @@ -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) diff --git a/spec/v3/services/owner/find_spec.rb b/spec/v3/services/owner/find_spec.rb index df026231..0a95bd10 100644 --- a/spec/v3/services/owner/find_spec.rb +++ b/spec/v3/services/owner/find_spec.rb @@ -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