Merge commit 'f652c54c3334890176331f62150559a96eeb41ae' into glitch-soc/merge-upstream

Conflicts:
- `app/services/backup_service.rb`:
  Upstream refactored activity serialization while glitch-soc passed an extra argument.
  Followed upstream's refactor, keeping our extra argument.
This commit is contained in:
Claire
2026-02-05 12:43:12 +01:00
108 changed files with 1228 additions and 995 deletions

View File

@@ -0,0 +1,54 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'Admin Confirmations' do
before { sign_in Fabricate(:admin_user) }
describe 'Confirming a user' do
let!(:user) { Fabricate :user, confirmed_at: nil }
it 'changes user to confirmed and returns to accounts page' do
# Go to accounts listing page
visit admin_accounts_path
expect(page)
.to have_title(I18n.t('admin.accounts.title'))
# Go to account page
click_on user.account.username
# Click to confirm
expect { click_on I18n.t('admin.accounts.confirm') }
.to change(Admin::ActionLog.where(action: 'confirm'), :count).by(1)
expect(page)
.to have_title(I18n.t('admin.accounts.title'))
expect(user.reload)
.to be_confirmed
end
end
describe 'Resending a confirmation email', :inline_jobs do
let!(:user) { Fabricate(:user, confirmed_at: confirmed_at) }
context 'when email is not confirmed' do
let(:confirmed_at) { nil }
it 'resends the confirmation mail' do
visit admin_account_path(id: user.account.id)
emails = capture_emails { resend_confirmation }
expect(page)
.to have_title(I18n.t('admin.accounts.title'))
.and have_content(I18n.t('admin.accounts.resend_confirmation.success'))
expect(emails.first)
.to be_present
.and deliver_to(user.email)
end
end
def resend_confirmation
click_on I18n.t('admin.accounts.resend_confirmation.send')
end
end
end

View File

@@ -25,7 +25,7 @@ RSpec.describe 'Log in' do
it 'A invalid email and password user is not able to log in' do
fill_in_auth_details('invalid_email', 'invalid_password')
expect(subject).to have_css('.flash-message', text: failure_message('invalid'))
expect(subject).to have_css('.flash-message', text: /#{failure_message_invalid}/i)
end
context 'when confirmed at is nil' do
@@ -38,8 +38,8 @@ RSpec.describe 'Log in' do
end
end
def failure_message(message)
def failure_message_invalid
keys = User.authentication_keys.map { |key| User.human_attribute_name(key) }
I18n.t("devise.failure.#{message}", authentication_keys: keys.join('support.array.words_connector'))
I18n.t('devise.failure.invalid', authentication_keys: keys.join('support.array.words_connector'))
end
end