decrypt the public values for return and fix the tests
This commit is contained in:
parent
35ae19c3a0
commit
58cd17158c
|
@ -49,7 +49,7 @@ module Travis::API::V3
|
|||
when Model then render_model(value, **options)
|
||||
when ActiveRecord::Relation then render_value(value.to_a, **options)
|
||||
when ActiveRecord::Associations::CollectionProxy then render_value(value.to_a, **options)
|
||||
when Travis::Settings::EncryptedValue then value # Should this be value.decrypt ?? If so do we want to add if options[:included].first.public? so we ensure we only decrypt public values?
|
||||
when Travis::Settings::EncryptedValue then value.decrypt
|
||||
else raise ArgumentError, 'cannot render %p (%p)' % [value.class, value]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
describe Travis::API::V3::Services::EnvVar::Delete, set_app: true do
|
||||
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first_or_create }
|
||||
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
|
||||
let(:env_var) { { id: 'abc', name: 'FOO', value: 'bar', public: true, repository_id: repo.id } }
|
||||
let(:env_var) { { id: 'abc', name: 'FOO', value: Travis::Settings::EncryptedValue.new('bar'), public: true, repository_id: repo.id } }
|
||||
let(:auth_headers) { { 'HTTP_AUTHORIZATION' => "token #{token}" } }
|
||||
|
||||
describe 'not authenticated' do
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
describe Travis::API::V3::Services::EnvVar::Find, set_app: true do
|
||||
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first_or_create }
|
||||
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
|
||||
let(:env_var) { { id: 'abc', name: 'FOO', value: 'bar', public: true, repository_id: repo.id } }
|
||||
let(:env_var) { { id: 'abc', name: 'FOO', value: Travis::Settings::EncryptedValue.new('bar'), public: true, repository_id: repo.id } }
|
||||
let(:auth_headers) { { 'HTTP_AUTHORIZATION' => "token #{token}" } }
|
||||
|
||||
describe 'not authenticated' do
|
||||
|
@ -36,7 +36,7 @@ describe Travis::API::V3::Services::EnvVar::Find, set_app: true do
|
|||
'id' => env_var[:id],
|
||||
'name' => env_var[:name],
|
||||
'public' => env_var[:public],
|
||||
'value' => env_var[:value]
|
||||
'value' => env_var[:value].decrypt
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
describe Travis::API::V3::Services::EnvVar::Update, set_app: true do
|
||||
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first_or_create }
|
||||
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
|
||||
let(:env_var) { { id: 'abc', name: 'FOO', value: 'bar', public: true, repository_id: repo.id } }
|
||||
let(:env_var) { { id: 'abc', name: 'FOO', value: Travis::Settings::EncryptedValue.new('bar'), public: true, repository_id: repo.id } }
|
||||
let(:auth_headers) { { 'HTTP_AUTHORIZATION' => "token #{token}" } }
|
||||
let(:json_headers) { { 'CONTENT_TYPE' => 'application/json' } }
|
||||
|
||||
|
@ -42,7 +42,7 @@ describe Travis::API::V3::Services::EnvVar::Update, set_app: true do
|
|||
'@representation' => 'standard',
|
||||
'id' => env_var[:id],
|
||||
'name' => params['env_var.name'],
|
||||
'value' => env_var[:value],
|
||||
'value' => env_var[:value].decrypt,
|
||||
'public' => env_var[:public]
|
||||
)
|
||||
end
|
||||
|
|
|
@ -26,7 +26,7 @@ describe Travis::API::V3::Services::EnvVars::Create, set_app: true do
|
|||
end
|
||||
|
||||
before do
|
||||
repo.update_attributes(settings: JSON.generate(env_vars: [{ id: 'abc', name: 'FOO', value: 'bar', public: false }]))
|
||||
repo.update_attributes(settings: JSON.generate(env_vars: [{ id: 'abc', name: 'FOO', value: Travis::Settings::EncryptedValue.new('bar'), public: false }]))
|
||||
post("/v3/repo/#{repo.id}/env_vars", JSON.generate(params), auth_headers.merge(json_headers))
|
||||
end
|
||||
|
||||
|
@ -41,26 +41,53 @@ describe Travis::API::V3::Services::EnvVars::Create, set_app: true do
|
|||
end
|
||||
|
||||
describe 'authenticated, existing repo, env var is new' do
|
||||
let(:params) do
|
||||
{
|
||||
'env_var.name' => 'FOO',
|
||||
'env_var.value' => 'bar',
|
||||
'env_var.public' => false
|
||||
}
|
||||
describe 'private' do
|
||||
let(:params) do
|
||||
{
|
||||
'env_var.name' => 'FOO',
|
||||
'env_var.value' => 'bar',
|
||||
'env_var.public' => false
|
||||
}
|
||||
end
|
||||
|
||||
before { post("/v3/repo/#{repo.id}/env_vars", JSON.generate(params), auth_headers.merge(json_headers)) }
|
||||
|
||||
example { expect(last_response.status).to eq 201 }
|
||||
example do
|
||||
response = JSON.load(body)
|
||||
expect(response).to include(
|
||||
'@type' => 'env_var',
|
||||
'@representation' => 'standard',
|
||||
'name' => 'FOO',
|
||||
'public' => false
|
||||
)
|
||||
expect(response).to include('@href', 'id')
|
||||
end
|
||||
end
|
||||
|
||||
before { post("/v3/repo/#{repo.id}/env_vars", JSON.generate(params), auth_headers.merge(json_headers)) }
|
||||
describe 'public' do
|
||||
let(:params) do
|
||||
{
|
||||
'env_var.name' => 'FOO',
|
||||
'env_var.value' => 'bar',
|
||||
'env_var.public' => true
|
||||
}
|
||||
end
|
||||
|
||||
example { expect(last_response.status).to eq 201 }
|
||||
example do
|
||||
response = JSON.load(body)
|
||||
expect(response).to include(
|
||||
'@type' => 'env_var',
|
||||
'@representation' => 'standard',
|
||||
'name' => 'FOO',
|
||||
'public' => false
|
||||
)
|
||||
expect(response).to include('@href', 'id')
|
||||
before { post("/v3/repo/#{repo.id}/env_vars", JSON.generate(params), auth_headers.merge(json_headers)) }
|
||||
|
||||
example { expect(last_response.status).to eq 201 }
|
||||
example do
|
||||
response = JSON.load(body)
|
||||
expect(response).to include(
|
||||
'@type' => 'env_var',
|
||||
'@representation' => 'standard',
|
||||
'name' => 'FOO',
|
||||
'value' => 'bar',
|
||||
'public' => true
|
||||
)
|
||||
expect(response).to include('@href', 'id')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,9 +3,9 @@ require 'spec_helper'
|
|||
describe Travis::API::V3::Services::EnvVars::ForRepository, set_app: true do
|
||||
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first_or_create }
|
||||
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
|
||||
let(:env_var) { { id: 'abc', name: 'FOO', value: 'bar', public: true, repository_id: repo.id } }
|
||||
let(:env_var) { { id: 'abc', name: 'FOO', value: Travis::Settings::EncryptedValue.new('bar'), public: true, repository_id: repo.id } }
|
||||
let(:auth_headers) { { 'HTTP_AUTHORIZATION' => "token #{token}" } }
|
||||
|
||||
|
||||
describe 'not authenticated' do
|
||||
before { get("/v3/repo/#{repo.id}/env_vars") }
|
||||
include_examples 'not authenticated'
|
||||
|
@ -13,7 +13,7 @@ describe Travis::API::V3::Services::EnvVars::ForRepository, set_app: true do
|
|||
|
||||
describe 'authenticated, missing repo' do
|
||||
before { get("/v3/repo/999999999/env_vars", {}, auth_headers) }
|
||||
include_examples 'missing repo'
|
||||
include_examples 'missing repo'
|
||||
end
|
||||
|
||||
describe 'authenticated, existing repo, no env vars' do
|
||||
|
@ -49,7 +49,7 @@ describe Travis::API::V3::Services::EnvVars::ForRepository, set_app: true do
|
|||
'@representation' => 'standard',
|
||||
'id' => env_var[:id],
|
||||
'name' => env_var[:name],
|
||||
'value' => env_var[:value],
|
||||
'value' => env_var[:value].decrypt,
|
||||
'public' => env_var[:public]
|
||||
}
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue
Block a user