summaryrefslogtreecommitdiff
path: root/qa/spec/runtime/api_request_spec.rb
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzegorz@gitlab.com>2018-01-23 10:25:34 +0000
committerGrzegorz Bizon <grzegorz@gitlab.com>2018-01-23 10:25:34 +0000
commit4dc42845f2ceadcff76a99908220e61610c5b608 (patch)
tree87934fbe6b2b2b66be25888152bcbcd4af82e970 /qa/spec/runtime/api_request_spec.rb
parentfcfda3ef82992e5f56573dffb56b2a5896c24aff (diff)
parentb8b9e9eb8e3f285bc3040f3dc425deeada585aae (diff)
downloadgitlab-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.rb42
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