38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'rails_helper'
 | 
						|
 | 
						|
RSpec.describe CreateLdapUserJob, type: :job do
 | 
						|
  let(:ldap_client_mock) { instance_double(Net::LDAP) }
 | 
						|
 | 
						|
  subject(:job) {
 | 
						|
    allow_any_instance_of(described_class).to receive(:ldap_client).and_return(ldap_client_mock)
 | 
						|
 | 
						|
    described_class.perform_later(
 | 
						|
      'halfinney', 'kosmos.org', 'halfinney@example.com',
 | 
						|
      'remember-remember-the-5th-of-november'
 | 
						|
    )
 | 
						|
  }
 | 
						|
 | 
						|
  it "creates a new document with the correct attributes" do
 | 
						|
    allow(ldap_client_mock).to receive(:add) # spy on mock
 | 
						|
 | 
						|
    perform_enqueued_jobs { job }
 | 
						|
 | 
						|
    expect(ldap_client_mock).to have_received(:add).with(
 | 
						|
      dn: "cn=halfinney,ou=kosmos.org,cn=users,dc=kosmos,dc=org",
 | 
						|
      attributes: {
 | 
						|
        objectclass: ["top", "account", "person", "extensibleObject"],
 | 
						|
        cn: "halfinney",
 | 
						|
        sn: "halfinney",
 | 
						|
        uid: "halfinney",
 | 
						|
        mail: "halfinney@example.com",
 | 
						|
        userPassword: "remember-remember-the-5th-of-november"
 | 
						|
      }
 | 
						|
    )
 | 
						|
  end
 | 
						|
 | 
						|
  after do
 | 
						|
    clear_enqueued_jobs
 | 
						|
    clear_performed_jobs
 | 
						|
  end
 | 
						|
end
 |