summaryrefslogtreecommitdiff
path: root/qa/qa/runtime/api/client.rb
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2018-06-06 19:43:50 +0200
committerRémy Coutable <remy@rymai.me>2018-06-06 20:12:29 +0200
commit9e5841a0ae2a57496b8479ffb67d3a7f1ed74e92 (patch)
tree7eef6354d6a004542cf375cbade6f75d040979c3 /qa/qa/runtime/api/client.rb
parentfddcfae6d8cc3790fe100584f8d7c09e014b01e1 (diff)
downloadgitlab-ce-9e5841a0ae2a57496b8479ffb67d3a7f1ed74e92.tar.gz
Improve the Runtime::API classes
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'qa/qa/runtime/api/client.rb')
-rw-r--r--qa/qa/runtime/api/client.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/qa/qa/runtime/api/client.rb b/qa/qa/runtime/api/client.rb
new file mode 100644
index 00000000000..02015e23ad8
--- /dev/null
+++ b/qa/qa/runtime/api/client.rb
@@ -0,0 +1,39 @@
+require 'airborne'
+
+module QA
+ module Runtime
+ module API
+ class Client
+ attr_reader :address
+
+ def initialize(address = :gitlab, personal_access_token: nil)
+ @address = address
+ @personal_access_token = personal_access_token
+ end
+
+ def personal_access_token
+ @personal_access_token ||= get_personal_access_token
+ end
+
+ def get_personal_access_token
+ # you can set the environment variable PERSONAL_ACCESS_TOKEN
+ # to use a specific access token rather than create one from the UI
+ if Runtime::Env.personal_access_token
+ Runtime::Env.personal_access_token
+ else
+ create_personal_access_token
+ end
+ end
+
+ private
+
+ def create_personal_access_token
+ Runtime::Browser.visit(@address, Page::Main::Login) do
+ Page::Main::Login.act { sign_in_using_credentials }
+ Factory::Resource::PersonalAccessToken.fabricate!.access_token
+ end
+ end
+ end
+ end
+ end
+end