diff options
| author | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-01-23 10:25:34 +0000 |
|---|---|---|
| committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-01-23 10:25:34 +0000 |
| commit | 4dc42845f2ceadcff76a99908220e61610c5b608 (patch) | |
| tree | 87934fbe6b2b2b66be25888152bcbcd4af82e970 /qa/spec/runtime/api_request_spec.rb | |
| parent | fcfda3ef82992e5f56573dffb56b2a5896c24aff (diff) | |
| parent | b8b9e9eb8e3f285bc3040f3dc425deeada585aae (diff) | |
| download | gitlab-ce-4dc42845f2ceadcff76a99908220e61610c5b608.tar.gz | |
Merge branch '131-qa-api-driver' into 'master'
Add ability to drive the API in QA specs
See merge request gitlab-org/gitlab-ce!16265
Diffstat (limited to 'qa/spec/runtime/api_request_spec.rb')
| -rw-r--r-- | qa/spec/runtime/api_request_spec.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/qa/spec/runtime/api_request_spec.rb b/qa/spec/runtime/api_request_spec.rb new file mode 100644 index 00000000000..9a1ed8a7a46 --- /dev/null +++ b/qa/spec/runtime/api_request_spec.rb @@ -0,0 +1,42 @@ +describe QA::Runtime::API::Request do + include Support::StubENV + + before do + stub_env('PERSONAL_ACCESS_TOKEN', 'a_token') + end + + let(:client) { QA::Runtime::API::Client.new('http://example.com') } + let(:request) { described_class.new(client, '/users') } + + describe '#url' do + it 'returns the full api request url' do + expect(request.url).to eq 'http://example.com/api/v4/users?private_token=a_token' + end + end + + describe '#request_path' do + it 'prepends the api path' do + expect(request.request_path('/users')).to eq '/api/v4/users' + end + + it 'adds the personal access token' do + expect(request.request_path('/users', personal_access_token: 'token')) + .to eq '/api/v4/users?private_token=token' + end + + it 'adds the oauth access token' do + expect(request.request_path('/users', oauth_access_token: 'otoken')) + .to eq '/api/v4/users?access_token=otoken' + end + + it 'respects query parameters' do + expect(request.request_path('/users?page=1')).to eq '/api/v4/users?page=1' + expect(request.request_path('/users?page=1', personal_access_token: 'token')) + .to eq '/api/v4/users?page=1&private_token=token' + end + + it 'uses a different api version' do + expect(request.request_path('/users', version: 'v3')).to eq '/api/v3/users' + end + end +end |
