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