Add specs for xmpp default bookmarks, refactor xmpp job usage
This commit is contained in:
@@ -101,38 +101,23 @@ RSpec.describe User, type: :model do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#exchange_xmpp_contact_with_inviter" do
|
||||
include ActiveJob::TestHelper
|
||||
|
||||
let(:user) { create :user, cn: "willherschel", ou: "kosmos.org" }
|
||||
let(:guest) { create :user, id: 2, cn: "isaacnewton", ou: "kosmos.org", email: "newt@example.com" }
|
||||
|
||||
before do
|
||||
Invitation.create! user: user, invited_user_id: guest.id, used_at: DateTime.now
|
||||
allow_any_instance_of(User).to receive(:services_enabled).and_return(%w[ ejabberd ])
|
||||
end
|
||||
|
||||
it "enqueues a job to exchange XMPP contacts between inviter and invitee" do
|
||||
guest.send(:exchange_xmpp_contact_with_inviter)
|
||||
|
||||
expect(enqueued_jobs.size).to eq(1)
|
||||
args = enqueued_jobs.first['arguments']
|
||||
expect(args[0]['_aj_globalid']).to match('gid://akkounts/User')
|
||||
expect(args[1]).to eq('isaacnewton')
|
||||
expect(args[2]).to eq('kosmos.org')
|
||||
end
|
||||
|
||||
after do
|
||||
clear_enqueued_jobs
|
||||
end
|
||||
end
|
||||
|
||||
describe "#devise_after_confirmation" do
|
||||
include ActiveJob::TestHelper
|
||||
after { clear_enqueued_jobs }
|
||||
|
||||
let(:user) { create :user, cn: "willherschel", ou: "kosmos.org" }
|
||||
|
||||
it "enables default services" do
|
||||
expect(user).to receive(:enable_service).with(%w[ discourse ejabberd gitea mediawiki ])
|
||||
user.send(:devise_after_confirmation)
|
||||
user.send :devise_after_confirmation
|
||||
end
|
||||
|
||||
it "enqueues a job to set default chatroom bookmarks for XMPP" do
|
||||
allow(user).to receive(:enable_service).and_return(true)
|
||||
user.send :devise_after_confirmation
|
||||
|
||||
job = enqueued_jobs.select{|j| j['job_class'] == "XmppSetDefaultBookmarksJob"}.first
|
||||
expect(job['arguments'][0]['_aj_globalid']).to eq('gid://akkounts/User/1')
|
||||
end
|
||||
|
||||
context "for invited user with ejabberd enabled" do
|
||||
@@ -140,12 +125,15 @@ RSpec.describe User, type: :model do
|
||||
|
||||
before do
|
||||
Invitation.create! user: user, invited_user_id: guest.id, used_at: DateTime.now
|
||||
allow_any_instance_of(User).to receive(:enable_service).and_return(true)
|
||||
allow_any_instance_of(User).to receive(:enable_service)
|
||||
end
|
||||
|
||||
it "exchanges XMPP contacts with the inviter" do
|
||||
expect(guest).to receive(:exchange_xmpp_contact_with_inviter)
|
||||
guest.send(:devise_after_confirmation)
|
||||
it "enqueues jobs to exchange XMPP contacts between inviter and invitee" do
|
||||
guest.send :devise_after_confirmation
|
||||
|
||||
job = enqueued_jobs.select{|j| j['job_class'] == "XmppExchangeContactsJob"}.first
|
||||
expect(job["arguments"][0]['_aj_globalid']).to eq('gid://akkounts/User/1')
|
||||
expect(job["arguments"][1]['_aj_globalid']).to eq('gid://akkounts/User/2')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user