DEV: Apply syntax_tree formatting to spec/*

This commit is contained in:
David Taylor
2023-01-09 11:18:21 +00:00
parent 0cf6421716
commit cb932d6ee1
907 changed files with 58693 additions and 45909 deletions

View File

@ -8,7 +8,7 @@ RSpec.describe DiscourseConnect do
SiteSetting.discourse_connect_url = @discourse_connect_url
SiteSetting.enable_discourse_connect = true
SiteSetting.discourse_connect_secret = @discourse_connect_secret
SiteSetting.reserved_usernames = ''
SiteSetting.reserved_usernames = ""
Jobs.run_immediately!
end
@ -86,22 +86,22 @@ RSpec.describe DiscourseConnect do
sso.external_id = " "
expect do
sso.lookup_or_create_user(ip_address)
end.to raise_error(DiscourseConnect::BlankExternalId)
expect do sso.lookup_or_create_user(ip_address) end.to raise_error(
DiscourseConnect::BlankExternalId,
)
sso.external_id = nil
expect do
sso.lookup_or_create_user(ip_address)
end.to raise_error(DiscourseConnect::BlankExternalId)
expect do sso.lookup_or_create_user(ip_address) end.to raise_error(
DiscourseConnect::BlankExternalId,
)
# going for slight duplication here so our intent is crystal clear
%w{none nil Blank null}.each do |word|
%w[none nil Blank null].each do |word|
sso.external_id = word
expect do
sso.lookup_or_create_user(ip_address)
end.to raise_error(DiscourseConnect::BannedExternalId)
expect do sso.lookup_or_create_user(ip_address) end.to raise_error(
DiscourseConnect::BannedExternalId,
)
end
end
@ -180,15 +180,15 @@ RSpec.describe DiscourseConnect do
user = sso.lookup_or_create_user(ip_address)
staff_group.reload
expect(mod_group.users.where('users.id = ?', user.id).exists?).to eq(true)
expect(staff_group.users.where('users.id = ?', user.id).exists?).to eq(true)
expect(admin_group.users.where('users.id = ?', user.id).exists?).to eq(true)
expect(mod_group.users.where("users.id = ?", user.id).exists?).to eq(true)
expect(staff_group.users.where("users.id = ?", user.id).exists?).to eq(true)
expect(admin_group.users.where("users.id = ?", user.id).exists?).to eq(true)
end
it "can force a list of groups with the groups attribute" do
user = Fabricate(:user)
group1 = Fabricate(:group, name: 'group1')
group2 = Fabricate(:group, name: 'group2')
group1 = Fabricate(:group, name: "group1")
group2 = Fabricate(:group, name: "group2")
sso = new_discourse_sso
sso.username = "bobsky"
@ -229,14 +229,13 @@ RSpec.describe DiscourseConnect do
end
it "can specify groups" do
user = Fabricate(:user)
add_group1 = Fabricate(:group, name: 'group1')
add_group2 = Fabricate(:group, name: 'group2')
existing_group = Fabricate(:group, name: 'group3')
add_group4 = Fabricate(:group, name: 'GROUP4')
existing_group2 = Fabricate(:group, name: 'GRoup5')
add_group1 = Fabricate(:group, name: "group1")
add_group2 = Fabricate(:group, name: "group2")
existing_group = Fabricate(:group, name: "group3")
add_group4 = Fabricate(:group, name: "GROUP4")
existing_group2 = Fabricate(:group, name: "GRoup5")
[existing_group, existing_group2].each do |g|
g.add(user)
@ -273,9 +272,9 @@ RSpec.describe DiscourseConnect do
expect(add_group4.usernames).to eq(user.username)
end
it 'creates group logs when users are added to groups' do
it "creates group logs when users are added to groups" do
user = Fabricate(:user)
group = Fabricate(:group, name: 'group1')
group = Fabricate(:group, name: "group1")
sso = new_discourse_sso
sso.username = "bobsky"
@ -289,16 +288,18 @@ RSpec.describe DiscourseConnect do
sso.lookup_or_create_user(ip_address)
expect(group.reload.usernames).to eq(user.username)
expect(GroupHistory.exists?(
target_user_id: user.id,
acting_user: Discourse.system_user.id,
action: GroupHistory.actions[:add_user_to_group]
)).to eq(true)
expect(
GroupHistory.exists?(
target_user_id: user.id,
acting_user: Discourse.system_user.id,
action: GroupHistory.actions[:add_user_to_group],
),
).to eq(true)
end
it 'creates group logs when users are removed from groups' do
it "creates group logs when users are removed from groups" do
user = Fabricate(:user)
group = Fabricate(:group, name: 'group1')
group = Fabricate(:group, name: "group1")
group.add(user)
sso = new_discourse_sso
@ -313,18 +314,20 @@ RSpec.describe DiscourseConnect do
sso.lookup_or_create_user(ip_address)
expect(group.reload.usernames).to be_blank
expect(GroupHistory.exists?(
target_user_id: user.id,
acting_user: Discourse.system_user.id,
action: GroupHistory.actions[:remove_user_from_group]
)).to eq(true)
expect(
GroupHistory.exists?(
target_user_id: user.id,
acting_user: Discourse.system_user.id,
action: GroupHistory.actions[:remove_user_from_group],
),
).to eq(true)
end
it 'creates group logs when users are added to groups when discourse_connect_overrides_groups setting is true' do
it "creates group logs when users are added to groups when discourse_connect_overrides_groups setting is true" do
SiteSetting.discourse_connect_overrides_groups = true
user = Fabricate(:user)
group = Fabricate(:group, name: 'group1')
group = Fabricate(:group, name: "group1")
sso = new_discourse_sso
sso.username = "bobsky"
@ -338,18 +341,20 @@ RSpec.describe DiscourseConnect do
sso.lookup_or_create_user(ip_address)
expect(group.reload.usernames).to eq(user.username)
expect(GroupHistory.exists?(
target_user_id: user.id,
acting_user: Discourse.system_user.id,
action: GroupHistory.actions[:add_user_to_group]
)).to eq(true)
expect(
GroupHistory.exists?(
target_user_id: user.id,
acting_user: Discourse.system_user.id,
action: GroupHistory.actions[:add_user_to_group],
),
).to eq(true)
end
it 'creates group logs when users are removed from groups when discourse_connect_overrides_groups setting is true' do
it "creates group logs when users are removed from groups when discourse_connect_overrides_groups setting is true" do
SiteSetting.discourse_connect_overrides_groups = true
user = Fabricate(:user)
group = Fabricate(:group, name: 'group1')
group = Fabricate(:group, name: "group1")
group.add(user)
sso = new_discourse_sso
@ -364,14 +369,16 @@ RSpec.describe DiscourseConnect do
sso.lookup_or_create_user(ip_address)
expect(group.reload.usernames).to be_blank
expect(GroupHistory.exists?(
target_user_id: user.id,
acting_user: Discourse.system_user.id,
action: GroupHistory.actions[:remove_user_from_group]
)).to eq(true)
expect(
GroupHistory.exists?(
target_user_id: user.id,
acting_user: Discourse.system_user.id,
action: GroupHistory.actions[:remove_user_from_group],
),
).to eq(true)
end
it 'behaves properly when auth_overrides_username is set but username is missing or blank' do
it "behaves properly when auth_overrides_username is set but username is missing or blank" do
SiteSetting.auth_overrides_username = true
sso = new_discourse_sso
@ -392,7 +399,7 @@ RSpec.describe DiscourseConnect do
expect(user.username).to eq "testuser"
# set username in payload to blank
sso.username = ''
sso.username = ""
user = sso.lookup_or_create_user(ip_address)
expect(user.username).to eq "testuser"
end
@ -432,7 +439,7 @@ RSpec.describe DiscourseConnect do
expect(admin.name).to eq "Louis C.K."
end
it 'can override username properly when only the case changes' do
it "can override username properly when only the case changes" do
SiteSetting.auth_overrides_username = true
sso = new_discourse_sso
@ -453,7 +460,7 @@ RSpec.describe DiscourseConnect do
expect(user.username).to eq "TestUser"
end
it 'do not override username when a new username after fixing is the same' do
it "do not override username when a new username after fixing is the same" do
SiteSetting.auth_overrides_username = true
sso = new_discourse_sso
@ -472,7 +479,7 @@ RSpec.describe DiscourseConnect do
expect(user.username).to eq "testuser"
end
it 'should preserve username when several users login with the same username' do
it "should preserve username when several users login with the same username" do
SiteSetting.auth_overrides_username = true
# if several users have username "bill" on the external site,
@ -582,7 +589,7 @@ RSpec.describe DiscourseConnect do
sso.email = "mail@mail.com"
user = sso.lookup_or_create_user(ip_address)
expect(user.username).to eq I18n.t('fallback_username')
expect(user.username).to eq I18n.t("fallback_username")
end
it "uses email as a source for username suggestions if enabled" do
@ -701,7 +708,7 @@ RSpec.describe DiscourseConnect do
sso = make_sso
sso.sso_url = "http://tcdev7.wpengine.com/?action=showlogin"
expect(sso.to_url.split('?').size).to eq 2
expect(sso.to_url.split("?").size).to eq 2
url, payload = sso.to_url.split("?")
expect(url).to eq "http://tcdev7.wpengine.com/"
@ -711,12 +718,13 @@ RSpec.describe DiscourseConnect do
end
it "validates nonce" do
_ , payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
_, payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
sso = DiscourseConnect.parse(payload, secure_session: secure_session)
expect(sso.nonce_valid?).to eq true
other_session_sso = DiscourseConnect.parse(payload, secure_session: SecureSession.new("differentsession"))
other_session_sso =
DiscourseConnect.parse(payload, secure_session: SecureSession.new("differentsession"))
expect(other_session_sso.nonce_valid?).to eq false
sso.expire_nonce!
@ -726,12 +734,13 @@ RSpec.describe DiscourseConnect do
it "allows disabling CSRF protection" do
SiteSetting.discourse_connect_csrf_protection = false
_ , payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
_, payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
sso = DiscourseConnect.parse(payload, secure_session: secure_session)
expect(sso.nonce_valid?).to eq true
other_session_sso = DiscourseConnect.parse(payload, secure_session: SecureSession.new("differentsession"))
other_session_sso =
DiscourseConnect.parse(payload, secure_session: SecureSession.new("differentsession"))
expect(other_session_sso.nonce_valid?).to eq true
sso.expire_nonce!
@ -747,9 +756,9 @@ RSpec.describe DiscourseConnect do
expect(sso.nonce).to_not be_nil
end
describe 'nonce error' do
describe "nonce error" do
it "generates correct error message when nonce has already been used" do
_ , payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
_, payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
sso = DiscourseConnect.parse(payload, secure_session: secure_session)
expect(sso.nonce_valid?).to eq true
@ -759,18 +768,20 @@ RSpec.describe DiscourseConnect do
end
it "generates correct error message when nonce is expired" do
_ , payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
_, payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
sso = DiscourseConnect.parse(payload, secure_session: secure_session)
expect(sso.nonce_valid?).to eq true
Discourse.cache.delete(sso.used_nonce_key)
expect(sso.nonce_error).to eq("Nonce is incorrect, was generated in a different browser session, or has expired")
expect(sso.nonce_error).to eq(
"Nonce is incorrect, was generated in a different browser session, or has expired",
)
end
it "generates correct error message when nonce is expired, and csrf protection disabled" do
SiteSetting.discourse_connect_csrf_protection = false
_ , payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
_, payload = DiscourseConnect.generate_url(secure_session: secure_session).split("?")
sso = DiscourseConnect.parse(payload, secure_session: secure_session)
expect(sso.nonce_valid?).to eq true
@ -780,8 +791,8 @@ RSpec.describe DiscourseConnect do
end
end
describe 'user locale' do
it 'sets default user locale if specified' do
describe "user locale" do
it "sets default user locale if specified" do
SiteSetting.allow_user_locale = true
sso = new_discourse_sso
@ -810,7 +821,7 @@ RSpec.describe DiscourseConnect do
end
end
describe 'trusting emails' do
describe "trusting emails" do
let(:sso) do
sso = new_discourse_sso
sso.username = "test"
@ -821,12 +832,12 @@ RSpec.describe DiscourseConnect do
sso
end
it 'activates users by default' do
it "activates users by default" do
user = sso.lookup_or_create_user(ip_address)
expect(user.active).to eq(true)
end
it 'does not activate user when asked not to' do
it "does not activate user when asked not to" do
sso.require_activation = true
user = sso.lookup_or_create_user(ip_address)
expect(user.active).to eq(false)
@ -835,13 +846,12 @@ RSpec.describe DiscourseConnect do
sso.external_id = "B"
expect do
sso.lookup_or_create_user(ip_address)
end.to raise_error(ActiveRecord::RecordInvalid)
expect do sso.lookup_or_create_user(ip_address) end.to raise_error(
ActiveRecord::RecordInvalid,
)
end
it 'does not deactivate user if email provided is capitalized' do
it "does not deactivate user if email provided is capitalized" do
SiteSetting.email_editable = false
SiteSetting.auth_overrides_email = true
sso.require_activation = true
@ -858,8 +868,7 @@ RSpec.describe DiscourseConnect do
expect(user.active).to eq(true)
end
it 'deactivates accounts that have updated email address' do
it "deactivates accounts that have updated email address" do
SiteSetting.email_editable = false
SiteSetting.auth_overrides_email = true
sso.require_activation = true
@ -873,25 +882,23 @@ RSpec.describe DiscourseConnect do
user = sso.lookup_or_create_user(ip_address)
expect(user.active).to eq(true)
user.primary_email.update_columns(email: 'xXx@themovie.com')
user.primary_email.update_columns(email: "xXx@themovie.com")
user = sso.lookup_or_create_user(ip_address)
expect(user.email).to eq(old_email)
expect(user.active).to eq(false)
end
end
describe 'welcome emails' do
let(:sso) {
describe "welcome emails" do
let(:sso) do
sso = new_discourse_sso
sso.username = "test"
sso.name = "test"
sso.email = "test@example.com"
sso.external_id = "A"
sso
}
end
it "sends a welcome email by default" do
User.any_instance.expects(:enqueue_welcome_message).once
@ -905,18 +912,18 @@ RSpec.describe DiscourseConnect do
end
end
describe 'setting title for a user' do
let(:sso) {
describe "setting title for a user" do
let(:sso) do
sso = new_discourse_sso
sso.username = 'test'
sso.name = 'test'
sso.email = 'test@test.com'
sso.external_id = '100'
sso.username = "test"
sso.name = "test"
sso.email = "test@test.com"
sso.external_id = "100"
sso.title = "The User's Title"
sso
}
end
it 'sets title correctly' do
it "sets title correctly" do
user = sso.lookup_or_create_user(ip_address)
expect(user.title).to eq(sso.title)
@ -932,7 +939,7 @@ RSpec.describe DiscourseConnect do
end
end
describe 'setting bio for a user' do
describe "setting bio for a user" do
let(:sso) do
sso = new_discourse_sso
sso.username = "test"
@ -944,7 +951,7 @@ RSpec.describe DiscourseConnect do
sso
end
it 'can set bio if supplied on new users or users with empty bio' do
it "can set bio if supplied on new users or users with empty bio" do
# new account
user = sso.lookup_or_create_user(ip_address)
expect(user.user_profile.bio_cooked).to match_html("<p>This <strong>is</strong> the bio</p>")
@ -956,7 +963,7 @@ RSpec.describe DiscourseConnect do
expect(user.user_profile.bio_cooked).to match_html("<p>This <strong>is</strong> the bio</p>")
# yes override for blank
user.user_profile.update!(bio_raw: '')
user.user_profile.update!(bio_raw: "")
user = sso.lookup_or_create_user(ip_address)
expect(user.user_profile.bio_cooked).to match_html("<p>new profile</p>")
@ -968,11 +975,9 @@ RSpec.describe DiscourseConnect do
user = sso.lookup_or_create_user(ip_address)
expect(user.user_profile.bio_cooked).to match_html("<p>new profile 2</p")
end
end
context 'when discourse_connect_overrides_avatar is not enabled' do
context "when discourse_connect_overrides_avatar is not enabled" do
it "correctly handles provided avatar_urls" do
sso = new_discourse_sso
sso.external_id = 666
@ -982,7 +987,10 @@ RSpec.describe DiscourseConnect do
sso.avatar_url = "http://awesome.com/image.png"
sso.suppress_welcome_message = true
FileHelper.stubs(:download).returns(file_from_fixtures("logo.png"), file_from_fixtures("logo.png"))
FileHelper.stubs(:download).returns(
file_from_fixtures("logo.png"),
file_from_fixtures("logo.png"),
)
user = sso.lookup_or_create_user(ip_address)
user.reload
avatar_id = user.uploaded_avatar_id
@ -993,7 +1001,10 @@ RSpec.describe DiscourseConnect do
# junk avatar id should be updated
old_id = user.uploaded_avatar_id
Upload.destroy(old_id)
FileHelper.stubs(:download).returns(file_from_fixtures("logo.png"), file_from_fixtures("logo.png"))
FileHelper.stubs(:download).returns(
file_from_fixtures("logo.png"),
file_from_fixtures("logo.png"),
)
user = sso.lookup_or_create_user(ip_address)
user.reload
avatar_id = user.uploaded_avatar_id
@ -1028,26 +1039,25 @@ RSpec.describe DiscourseConnect do
# # we better have the same avatar
# expect(user.uploaded_avatar_id).to eq(avatar_id)
end
end
context 'when discourse_connect_overrides_avatar is enabled' do
fab!(:sso_record) { Fabricate(:single_sign_on_record, external_avatar_url: "http://example.com/an_image.png") }
context "when discourse_connect_overrides_avatar is enabled" do
fab!(:sso_record) do
Fabricate(:single_sign_on_record, external_avatar_url: "http://example.com/an_image.png")
end
let!(:sso) {
let!(:sso) do
sso = new_discourse_sso
sso.username = "test"
sso.name = "test"
sso.email = sso_record.user.email
sso.external_id = sso_record.external_id
sso
}
end
let(:logo) { file_from_fixtures("logo.png") }
before do
SiteSetting.discourse_connect_overrides_avatar = true
end
before { SiteSetting.discourse_connect_overrides_avatar = true }
it "deal with no avatar url passed for an existing user with an avatar" do
Sidekiq::Testing.inline! do
@ -1079,8 +1089,7 @@ RSpec.describe DiscourseConnect do
end
end
context 'when discourse_connect_overrides_profile_background is not enabled' do
context "when discourse_connect_overrides_profile_background is not enabled" do
it "correctly handles provided profile_background_urls" do
sso = new_discourse_sso
sso.external_id = 666
@ -1098,7 +1107,7 @@ RSpec.describe DiscourseConnect do
# initial creation ...
expect(profile_background_url).to_not eq(nil)
expect(profile_background_url).to_not eq('')
expect(profile_background_url).to_not eq("")
FileHelper.stubs(:download) { raise "should not be called" }
sso.profile_background_url = "https://some.new/avatar.png"
@ -1111,23 +1120,26 @@ RSpec.describe DiscourseConnect do
end
end
context 'when discourse_connect_overrides_profile_background is enabled' do
fab!(:sso_record) { Fabricate(:single_sign_on_record, external_profile_background_url: "http://example.com/an_image.png") }
context "when discourse_connect_overrides_profile_background is enabled" do
fab!(:sso_record) do
Fabricate(
:single_sign_on_record,
external_profile_background_url: "http://example.com/an_image.png",
)
end
let!(:sso) {
let!(:sso) do
sso = new_discourse_sso
sso.username = "test"
sso.name = "test"
sso.email = sso_record.user.email
sso.external_id = sso_record.external_id
sso
}
end
let(:logo) { file_from_fixtures("logo.png") }
before do
SiteSetting.discourse_connect_overrides_profile_background = true
end
before { SiteSetting.discourse_connect_overrides_profile_background = true }
it "deal with no profile_background_url passed for an existing user with a profile_background" do
# Deliberately not setting profile_background_url so it should not update
@ -1151,8 +1163,7 @@ RSpec.describe DiscourseConnect do
end
end
context 'when discourse_connect_overrides_card_background is not enabled' do
context "when discourse_connect_overrides_card_background is not enabled" do
it "correctly handles provided card_background_urls" do
sso = new_discourse_sso
sso.external_id = 666
@ -1177,29 +1188,30 @@ RSpec.describe DiscourseConnect do
user.user_profile.reload
# card_background updated but no override specified ...
expect(user.user_profile.card_background_upload.url).to eq(
card_background_url
)
expect(user.user_profile.card_background_upload.url).to eq(card_background_url)
end
end
context 'when discourse_connect_overrides_card_background is enabled' do
fab!(:sso_record) { Fabricate(:single_sign_on_record, external_card_background_url: "http://example.com/an_image.png") }
context "when discourse_connect_overrides_card_background is enabled" do
fab!(:sso_record) do
Fabricate(
:single_sign_on_record,
external_card_background_url: "http://example.com/an_image.png",
)
end
let!(:sso) {
let!(:sso) do
sso = new_discourse_sso
sso.username = "test"
sso.name = "test"
sso.email = sso_record.user.email
sso.external_id = sso_record.external_id
sso
}
end
let(:logo) { file_from_fixtures("logo.png") }
before do
SiteSetting.discourse_connect_overrides_card_background = true
end
before { SiteSetting.discourse_connect_overrides_card_background = true }
it "deal with no card_background_url passed for an existing user with a card_background" do
# Deliberately not setting card_background_url so it should not update
@ -1220,7 +1232,7 @@ RSpec.describe DiscourseConnect do
user = sso.lookup_or_create_user(ip_address)
user.reload
expect(user.user_profile.card_background_upload.url).to_not eq('')
expect(user.user_profile.card_background_upload.url).to_not eq("")
end
end