diff options
author | Rémy Coutable <remy@rymai.me> | 2018-06-06 19:43:50 +0200 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-06-06 20:12:29 +0200 |
commit | 9e5841a0ae2a57496b8479ffb67d3a7f1ed74e92 (patch) | |
tree | 7eef6354d6a004542cf375cbade6f75d040979c3 /qa/qa/runtime/api/client.rb | |
parent | fddcfae6d8cc3790fe100584f8d7c09e014b01e1 (diff) | |
download | gitlab-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.rb | 39 |
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 |