# Copyright (c) 2014 Perforce Software, Inc. All rights reserved. require 'rspec' require 'helix_web_services_client' require_relative './test_config' RSpec.describe 'HelixWebServicesClient users' do randstr = (0...8).map { (65 + rand(26)).chr }.join new_user = { 'User' => "test_#{randstr}", 'FullName' => "Test #{randstr}", 'Email' => "test_#{randstr}@example.com" } it "should at least return the 'jdoe' and 'super' users" do client_as_jdoe do |c| users = c.users expect(users.length).to be >= 2 logins = users.map(&:user) expect(logins).to include('jdoe') expect(logins).to include('super') end end it "should return the user 'mmustermann' who has the name 'Max Mustermann'" do client_as_jdoe do |c| max = c.user_details('mmustermann') expect(max.full_name).to eq('Max Mustermann') end end it 'should be able to create a new user and load it' do client_as_super do |c| c.create_user(new_user) loaded = c.user_details(new_user['User']) expect(loaded.user).to eq(new_user['User']) expect(loaded.full_name).to eq(new_user['FullName']) expect(loaded.email).to eq(new_user['Email']) end end it "should be able update mmusterman's email to max_power@example.com" do client_as_super do |c| max_user = c.user_details('mmustermann') randstr = (0...8).map { (65 + rand(26)).chr }.join new_email = "max_mower_#{randstr}@example.com" max_user.email = new_email c.update_user(max_user) loaded = c.user_details('mmustermann') expect(loaded.email).to eq(new_email) end end it 'should be able to delete the newuser user' do client_as_super do |c| c.delete_user(new_user['User']) users = c.users expect(users.find { |u| u.user == new_user['User'] }).to be nil end end end