70 lines
2.0 KiB
Ruby
70 lines
2.0 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe CreateLdapUserJob, type: :job do
|
|
let(:ldap_client_mock) { instance_double(Net::LDAP) }
|
|
|
|
before do
|
|
allow_any_instance_of(described_class).to receive(:ldap_client).and_return(ldap_client_mock)
|
|
end
|
|
|
|
subject(:job) {
|
|
described_class.perform_later(
|
|
username: 'halfinney', domain: 'kosmos.org',
|
|
email: 'halfinney@example.com',
|
|
hashed_pw: 'remember-remember-the-5th-of-november'
|
|
)
|
|
}
|
|
|
|
subject(:job_for_preconfirmed_account) {
|
|
described_class.perform_later(
|
|
username: 'halfinney', domain: 'kosmos.org',
|
|
email: 'halfinney@example.com',
|
|
hashed_pw: 'remember-remember-the-5th-of-november',
|
|
confirmed: true
|
|
)
|
|
}
|
|
|
|
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", "inetOrgPerson", "extensibleObject"],
|
|
cn: "halfinney",
|
|
sn: "halfinney",
|
|
uid: "halfinney",
|
|
mail: "halfinney@example.com",
|
|
userPassword: "remember-remember-the-5th-of-november"
|
|
}
|
|
)
|
|
end
|
|
|
|
it "adds default services for pre-confirmed accounts" do
|
|
allow(ldap_client_mock).to receive(:add) # spy on mock
|
|
Setting.default_services = ["ejabberd", "discourse"]
|
|
|
|
perform_enqueued_jobs { job_for_preconfirmed_account }
|
|
|
|
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", "inetOrgPerson", "extensibleObject"],
|
|
cn: "halfinney",
|
|
sn: "halfinney",
|
|
uid: "halfinney",
|
|
mail: "halfinney@example.com",
|
|
serviceEnabled: ["ejabberd", "discourse"],
|
|
userPassword: "remember-remember-the-5th-of-november"
|
|
}
|
|
)
|
|
end
|
|
|
|
after do
|
|
clear_enqueued_jobs
|
|
clear_performed_jobs
|
|
end
|
|
end
|