From 360881a888bc93ab083a9b3771772ef1767dc1d9 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Tue, 15 Apr 2014 11:14:11 +0200 Subject: [PATCH] Remove ssh_keys endpoint SshKeys will make sense only on Travis CI Pro --- lib/travis/api/app.rb | 2 - spec/integration/v2/settings/ssh_keys_spec.rb | 146 ------------------ 2 files changed, 148 deletions(-) delete mode 100644 spec/integration/v2/settings/ssh_keys_spec.rb diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index 434e1d8e..a799066a 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -114,8 +114,6 @@ module Travis::Api use Travis::Api::App::Middleware::Metriks use Travis::Api::App::Middleware::Rewrite - SettingsEndpoint.subclass :ssh_keys - Endpoint.subclasses.each do |e| next if e == SettingsEndpoint # TODO: add something like abstract? method to check if # class should be registered diff --git a/spec/integration/v2/settings/ssh_keys_spec.rb b/spec/integration/v2/settings/ssh_keys_spec.rb deleted file mode 100644 index f13be3d0..00000000 --- a/spec/integration/v2/settings/ssh_keys_spec.rb +++ /dev/null @@ -1,146 +0,0 @@ -require 'spec_helper' - -describe Travis::Api::App::SettingsEndpoint do - let(:repo) { Repository.by_slug('svenfuchs/minimal').first } - let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } - - describe 'with authenticated user' do - let(:user) { User.where(login: 'svenfuchs').first } - let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: -1) } - let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json', 'HTTP_AUTHORIZATION' => "token #{token}" } } - - before { user.permissions.create!(:repository_id => repo.id, :admin => true, :push => true) } - - describe 'GET /ssh_keys/:id' do - it 'returns an item' do - settings = repo.settings - record = settings.ssh_keys.create(name: 'key for my repo', content: 'the key') - settings.save - - response = get '/settings/ssh_keys/' + record.id, { repository_id: repo.id }, headers - json = JSON.parse(response.body) - json['ssh_key']['name'].should == 'key for my repo' - json['ssh_key']['id'].should == record.id - json['ssh_key'].should_not have_key('content') - end - - it 'returns 404 if ssh_key can\'t be found' do - response = get '/settings/ssh_keys/123', { repository_id: repo.id }, headers - json = JSON.parse(response.body) - json['error'].should == "Could not find a requested setting" - end - end - - describe 'GET /settings/ssh_keys' do - it 'returns a list of ssh_keys' do - settings = repo.settings - record = settings.ssh_keys.create(name: 'key for my repo', content: 'the key') - settings.save - - response = get '/settings/ssh_keys', { repository_id: repo.id }, headers - response.should be_successful - - json = JSON.parse(response.body) - key = json['ssh_keys'].first - key['name'].should == 'key for my repo' - key['id'].should == record.id - key.should_not have_key('content') - end - end - - describe 'POST /settings/ssh_keys' do - it 'creates a new key' do - body = { ssh_key: { name: 'foo', content: 'content' } }.to_json - response = post "/settings/ssh_keys?repository_id=#{repo.id}", body, headers - json = JSON.parse(response.body) - json['ssh_key']['name'].should == 'foo' - json['ssh_key']['id'].should_not be_nil - json['ssh_key'].should_not have_key('content') - - ssh_key = repo.reload.settings.ssh_keys.first - ssh_key.id.should_not be_nil - ssh_key.name.should == 'foo' - ssh_key.content.decrypt.should == 'content' - end - - it 'returns error message if a key is invalid' do - response = post "/settings/ssh_keys?repository_id=#{repo.id}", '{}', headers - response.status.should == 422 - - json = JSON.parse(response.body) - json['message'].should == 'Validation failed' - json['errors'].should == [{ - 'field' => 'name', - 'code' => 'missing_field' - }] - - repo.reload.settings.ssh_keys.length.should == 0 - end - end - - describe 'PATCH /settings/ssh_keys/:id' do - it 'should update a key' do - settings = repo.settings - ssh_key = settings.ssh_keys.create(name: 'foo', content: 'content') - settings.save - - body = { ssh_key: { name: 'bar', content: 'a new content' } }.to_json - response = patch "/settings/ssh_keys/#{ssh_key.id}?repository_id=#{repo.id}", body, headers - json = JSON.parse(response.body) - json['ssh_key']['name'].should == 'bar' - json['ssh_key']['id'].should == ssh_key.id - json['ssh_key'].should_not have_key('content') - - updated_ssh_key = repo.reload.settings.ssh_keys.find(ssh_key.id) - updated_ssh_key.id.should == ssh_key.id - updated_ssh_key.name.should == 'bar' - updated_ssh_key.content.decrypt.should == 'a new content' - end - - it 'returns an error message if ssh_key is invalid' do - settings = repo.settings - ssh_key = settings.ssh_keys.create(name: 'foo', content: 'content') - settings.save - - body = { ssh_key: { name: '' } }.to_json - response = patch "/settings/ssh_keys/#{ssh_key.id}?repository_id=#{repo.id}", body, headers - response.status.should == 422 - - json = JSON.parse(response.body) - json['message'].should == 'Validation failed' - json['errors'].should == [{ - 'field' => 'name', - 'code' => 'missing_field' - }] - - updated_ssh_key = repo.reload.settings.ssh_keys.find(ssh_key.id) - updated_ssh_key.id.should == ssh_key.id - updated_ssh_key.name.should == 'foo' - updated_ssh_key.content.decrypt.should == 'content' - end - end - - describe 'DELETE /ssh_keys/:id' do - it 'should delete an ssh_key' do - settings = repo.settings - ssh_key = settings.ssh_keys.create(name: 'foo', content: 'content') - settings.save - - params = { repository_id: repo.id } - response = delete '/settings/ssh_keys/' + ssh_key.id, params, headers - json = JSON.parse(response.body) - json['ssh_key']['name'].should == 'foo' - json['ssh_key']['id'].should == ssh_key.id - json['ssh_key'].should_not have_key('content') - - repo.reload.settings.ssh_keys.should have(0).ssh_keys - end - - it 'returns 404 if ssh_key can\'t be found' do - response = delete '/settings/ssh_keys/123', { repository_id: repo.id }, headers - json = JSON.parse(response.body) - json['error'].should == "Could not find a requested setting" - end - end - end -end