Porting more changes from ee
This commit is contained in:
parent
6c571a67b9
commit
84cb5f1322
|
@ -3,7 +3,12 @@ module QA
|
|||
module Component
|
||||
module Select2
|
||||
def select_item(item_text)
|
||||
find('ul.select2-result-sub > li', text: item_text).click
|
||||
find('.select2-result-label', text: item_text).click
|
||||
end
|
||||
|
||||
def search_and_select(item_text)
|
||||
find('.select2-input').set(item_text)
|
||||
select_item(item_text)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -68,6 +68,12 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
def has_admin_area_link?(wait: Capybara.default_max_wait_time)
|
||||
using_wait_time(wait) do
|
||||
page.has_selector?(element_selector_css(:admin_area_link))
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def within_top_menu
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'airborne'
|
||||
require 'active_support/core_ext/object/deep_dup'
|
||||
require 'capybara/dsl'
|
||||
|
||||
module QA
|
||||
module Resource
|
||||
module ApiFabricator
|
||||
include Airborne
|
||||
include Capybara::DSL
|
||||
|
||||
HTTP_STATUS_OK = 200
|
||||
|
@ -96,6 +94,25 @@ module QA
|
|||
def transform_api_resource(api_resource)
|
||||
api_resource
|
||||
end
|
||||
|
||||
def post(url, payload)
|
||||
RestClient::Request.execute(
|
||||
method: :post,
|
||||
url: url,
|
||||
payload: payload,
|
||||
verify_ssl: false)
|
||||
rescue RestClient::ExceptionWithResponse => e
|
||||
e.response
|
||||
end
|
||||
|
||||
def get(url)
|
||||
RestClient::Request.execute(
|
||||
method: :get,
|
||||
url: url,
|
||||
verify_ssl: false)
|
||||
rescue RestClient::ExceptionWithResponse => e
|
||||
e.response
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
require 'forwardable'
|
||||
require 'capybara/dsl'
|
||||
require 'active_support/core_ext/array/extract_options'
|
||||
|
||||
module QA
|
||||
module Resource
|
||||
|
|
|
@ -7,7 +7,7 @@ module QA
|
|||
# creating it if it doesn't yet exist.
|
||||
#
|
||||
class Sandbox < Base
|
||||
attr_reader :path
|
||||
attr_accessor :path
|
||||
|
||||
attribute :id
|
||||
|
||||
|
|
|
@ -6,7 +6,8 @@ module QA
|
|||
module Resource
|
||||
class User < Base
|
||||
attr_reader :unique_id
|
||||
attr_writer :username, :password
|
||||
attr_writer :username, :password, :name, :email
|
||||
attr_accessor :provider, :extern_uid
|
||||
|
||||
def initialize
|
||||
@unique_id = SecureRandom.hex(8)
|
||||
|
@ -73,7 +74,7 @@ module QA
|
|||
username: username,
|
||||
name: name,
|
||||
skip_confirmation: true
|
||||
}
|
||||
}.merge(ldap_post_body)
|
||||
end
|
||||
|
||||
def self.fabricate_or_use(username, password)
|
||||
|
@ -89,6 +90,15 @@ module QA
|
|||
|
||||
private
|
||||
|
||||
def ldap_post_body
|
||||
return {} unless extern_uid && provider
|
||||
|
||||
{
|
||||
extern_uid: extern_uid,
|
||||
provider: provider
|
||||
}
|
||||
end
|
||||
|
||||
def fetch_id(username)
|
||||
users = parse_body(api_get_from("/users?username=#{username}"))
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ module QA
|
|||
module Env
|
||||
extend self
|
||||
|
||||
attr_writer :personal_access_token
|
||||
attr_writer :personal_access_token, :ldap_username, :ldap_password
|
||||
|
||||
# The environment variables used to indicate if the environment under test
|
||||
# supports the given feature
|
||||
|
@ -92,11 +92,11 @@ module QA
|
|||
end
|
||||
|
||||
def ldap_username
|
||||
ENV['GITLAB_LDAP_USERNAME']
|
||||
@ldap_username ||= ENV['GITLAB_LDAP_USERNAME']
|
||||
end
|
||||
|
||||
def ldap_password
|
||||
ENV['GITLAB_LDAP_PASSWORD']
|
||||
@ldap_password ||= ENV['GITLAB_LDAP_PASSWORD']
|
||||
end
|
||||
|
||||
def sandbox_name
|
||||
|
|
Loading…
Reference in New Issue