Treat repository_id as id for singleton settings

This commit is contained in:
Piotr Sarnacki 2014-07-23 13:34:30 +02:00
parent fd948929a1
commit b9db32e3c2
3 changed files with 10 additions and 11 deletions

View File

@ -45,7 +45,7 @@ GIT
GIT
remote: git://github.com/travis-ci/travis-core.git
revision: 6119f4ad0938a43926c45d70564b090d96e61e61
revision: 95a7609e30222f0f9600eed27b4df273868a3448
specs:
travis-core (0.0.1)
actionmailer (~> 3.2.19)

View File

@ -7,9 +7,9 @@ class Travis::Api::App
def create_settings_class(name)
klass = Class.new(self) do
define_method(:name) { name }
get("/", scope: :private) do show end
patch("/", scope: :private) do update end
delete("/", scope: :private) do destroy end
get("/:repository_id", scope: :private) do show end
patch("/:repository_id", scope: :private) do update end
delete("/:repository_id", scope: :private) do destroy end
end
end
end

View File

@ -41,14 +41,14 @@ describe Travis::Api::App::SettingsEndpoint do
item = settings.create(:item, name: 'an item', secret: 'TEH SECRET')
settings.save
response = get '/settings/item', { repository_id: repo.id }, headers
response = get "/settings/item/#{repo.id}", {}, headers
json = JSON.parse(response.body)
json['item']['name'].should == 'an item'
json['item'].should_not have_key('secret')
end
it 'returns 404 if item can\'t be found' do
response = get '/settings/item', { repository_id: repo.id }, headers
response = get "/settings/item/#{repo.id}", {}, headers
json = JSON.parse(response.body)
json['error'].should == "Could not find a requested setting"
end
@ -61,7 +61,7 @@ describe Travis::Api::App::SettingsEndpoint do
settings.save
body = { item: { name: 'a new name', secret: 'a new secret' } }.to_json
response = patch "/settings/item?repository_id=#{repo.id}", body, headers
response = patch "/settings/item/#{repo.id}", body, headers
json = JSON.parse(response.body)
json['item']['name'].should == 'a new name'
json['item'].should_not have_key('secret')
@ -75,7 +75,7 @@ describe Travis::Api::App::SettingsEndpoint do
repo.settings.item.should be_nil
body = { item: { name: 'a name', secret: 'a secret' } }.to_json
response = patch "/settings/item?repository_id=#{repo.id}", body, headers
response = patch "/settings/item/#{repo.id}", body, headers
json = JSON.parse(response.body)
json['item']['name'].should == 'a name'
json['item'].should_not have_key('secret')
@ -87,7 +87,7 @@ describe Travis::Api::App::SettingsEndpoint do
it 'returns an error message if item is invalid' do
body = { item: { name: '' } }.to_json
response = patch "/settings/item?repository_id=#{repo.id}", body, headers
response = patch "/settings/item/#{repo.id}", body, headers
response.status.should == 422
json = JSON.parse(response.body)
@ -110,8 +110,7 @@ describe Travis::Api::App::SettingsEndpoint do
item = settings.create(:item, name: 'an item')
settings.save
params = { repository_id: repo.id }
response = delete '/settings/item', params, headers
response = delete "/settings/item/#{repo.id}", {}, headers
json = JSON.parse(response.body)
json['item']['name'].should == 'an item'
json['item'].should_not have_key('secret')