Commit 0932417d authored by Sanad Liaquat's avatar Sanad Liaquat

now creating users via api

parent 77137a29
...@@ -6,7 +6,8 @@ module QA ...@@ -6,7 +6,8 @@ module QA
module Resource module Resource
class User < Base class User < Base
attr_reader :unique_id attr_reader :unique_id
attr_writer :username, :password attr_writer :username, :password, :name, :email
attr_accessor :provider, :extern_uid
def initialize def initialize
@unique_id = SecureRandom.hex(8) @unique_id = SecureRandom.hex(8)
...@@ -73,7 +74,7 @@ module QA ...@@ -73,7 +74,7 @@ module QA
username: username, username: username,
name: name, name: name,
skip_confirmation: true skip_confirmation: true
} }.merge(ldap_post_body)
end end
def self.fabricate_or_use(username, password) def self.fabricate_or_use(username, password)
...@@ -89,6 +90,15 @@ module QA ...@@ -89,6 +90,15 @@ module QA
private private
def ldap_post_body
return {} unless extern_uid && provider
{
extern_uid: extern_uid,
provider: provider
}
end
def fetch_id(username) def fetch_id(username)
users = parse_body(api_get_from("/users?username=#{username}")) users = parse_body(api_get_from("/users?username=#{username}"))
......
# frozen_string_literal: true # frozen_string_literal: true
module QA module QA
context 'Manage' do
context 'Manage', :orchestrated, :ldap_tls, :ldap_no_tls do context 'Manage', :orchestrated, :ldap_tls, :ldap_no_tls do
describe 'LDAP Group Sync' do
it 'Has LDAP user synced using group cn method' do it 'Has LDAP user synced using group cn method' do
Runtime::Browser.visit(:gitlab, Page::Main::Login) users = [
{
# Login users to create them name: 'ENG User 2',
login_logout_users(%w[enguser3 enguser2]) username: 'enguser2',
email: 'enguser2@example.org',
provider: 'ldapmain',
extern_uid: 'uid=enguser2,ou=people,ou=global groups,dc=example,dc=org'
},
{
name: 'ENG User 3',
username: 'enguser3',
email: 'enguser3@example.org',
provider: 'ldapmain',
extern_uid: 'uid=enguser3,ou=people,ou=global groups,dc=example,dc=org'
}
]
create_users_via_api(users)
Runtime::Browser.visit(:gitlab, Page::Main::Login)
create_sandbox_group_with_user(user: 'enguser1', group_name: 'Synched-engineering-group') create_sandbox_group_with_user(user: 'enguser1', group_name: 'Synched-engineering-group')
EE::Page::Group::Menu.perform(&:go_to_ldap_sync_settings) EE::Page::Group::Menu.perform(&:go_to_ldap_sync_settings)
...@@ -25,10 +40,26 @@ module QA ...@@ -25,10 +40,26 @@ module QA
end end
it 'Has LDAP user synced using user filter method' do it 'Has LDAP user synced using user filter method' do
Runtime::Browser.visit(:gitlab, Page::Main::Login) users = [
{
name: 'HR User 2',
username: 'hruser2',
email: 'hruser2@example.org',
provider: 'ldapmain',
extern_uid: 'uid=hruser2,ou=people,ou=global groups,dc=example,dc=org'
},
{
name: 'HR User 3',
username: 'hruser3',
email: 'hruser3@example.org',
provider: 'ldapmain',
extern_uid: 'uid=hruser3,ou=people,ou=global groups,dc=example,dc=org'
}
]
create_users_via_api(users)
# Login users to create them Runtime::Browser.visit(:gitlab, Page::Main::Login)
login_logout_users(%w[hruser3 hruser2])
create_sandbox_group_with_user(user: 'hruser1', group_name: 'Synched-human-resources-group') create_sandbox_group_with_user(user: 'hruser1', group_name: 'Synched-human-resources-group')
...@@ -44,18 +75,18 @@ module QA ...@@ -44,18 +75,18 @@ module QA
verify_users_synched(['HR User 2', 'HR User 3']) verify_users_synched(['HR User 2', 'HR User 3'])
end end
def login_logout_users(users) def create_users_via_api(users)
users.each do |user| users.each do |user|
Page::Main::Login.perform do |login_page| Resource::User.fabricate_via_api! do |resource|
login_page.sign_in_using_ldap_credentials(username: user, password: 'password') resource.username = user[:username]
resource.name = user[:name]
resource.email = user[:email]
resource.extern_uid = user[:extern_uid]
resource.provider = user[:provider]
end end
end
Page::Main::Menu.perform do |menu|
expect(menu).to have_personal_area
end
Page::Main::Menu.perform(&:sign_out)
end
end end
def create_sandbox_group_with_user(user: nil, group_name: nil) def create_sandbox_group_with_user(user: nil, group_name: nil)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment