Merge branch 'master' into feature/default_chatrooms
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 4s

This commit is contained in:
Râu Cao
2023-04-18 17:00:48 +02:00
44 changed files with 540 additions and 139 deletions

View File

@@ -0,0 +1,41 @@
require 'rails_helper'
RSpec.describe UserPreferences, type: :model do
let(:default_prefs) { YAML.load_file("#{Rails.root}/config/default_preferences.yml") }
describe ".load" do
it "provides default values when no preferences are stored yet" do
expect(UserPreferences.load(nil)).to eq(default_prefs)
end
it "provides default values for unset preferences" do
prefs = UserPreferences.load("lightning_notify_sats_received: xmpp")
expect(prefs[:lightning_notify_sats_received]).to eq("xmpp")
expect(prefs[:xmpp_exchange_contacts_with_invitees]).to eq(true)
end
end
describe ".process" do
it "turns all keys into strings" do
res = UserPreferences.process({ foo: "bar" })
expect(res[:foo]).to be(nil)
expect(res['foo']).to eq("bar")
end
it "converts value 'true' to boolean" do
res = UserPreferences.process({ lightning_notify_sats_received: "true" })
expect(res['lightning_notify_sats_received']).to be(true)
end
it "converts value 'false' to boolean" do
res = UserPreferences.process({ lightning_notify_sats_received: "false" })
expect(res['lightning_notify_sats_received']).to be(false)
end
it "converts value string with integer into integer" do
res = UserPreferences.process({ lightning_notify_sats_received_threshold: 1000 })
expect(res['lightning_notify_sats_received_threshold']).to be_a(Integer)
expect(res['lightning_notify_sats_received_threshold']).to eq(1000)
end
end
end

View File

@@ -108,7 +108,7 @@ RSpec.describe User, type: :model do
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 ])
expect(user).to receive(:enable_service).with(%w[ discourse gitea mediawiki xmpp ])
user.send :devise_after_confirmation
end
@@ -120,10 +120,12 @@ RSpec.describe User, type: :model do
expect(job['arguments'][0]['_aj_globalid']).to eq('gid://akkounts/User/1')
end
context "for invited user with ejabberd enabled" do
context "for invited user with xmpp enabled" do
let(:guest) { create :user, id: 2, cn: "isaacnewton", ou: "kosmos.org", email: "newt@example.com" }
before do
# TODO remove when defaults are implemented
user.update! preferences: { xmpp_exchange_contacts_with_invitees: true }
Invitation.create! user: user, invited_user_id: guest.id, used_at: DateTime.now
allow_any_instance_of(User).to receive(:enable_service)
end