Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `app/controllers/settings/preferences_controller.rb`:
  Upstream dropping `digest` from notifications emails while we have more
  notification emails settings.
  Removed `digest` from our list while keeping our extra settings.
- `app/javascript/packs/admin.js`:
  Conflicts caused by glitch-soc's theming system.
  Applied the changes to `app/javascript/core/admin.js`.
- `app/views/settings/preferences/other/show.html.haml`:
  Upstream removed a setting close to a glitch-soc-only setting.
  Applied upstream's change.
This commit is contained in:
Claire
2022-08-28 11:26:27 +02:00
72 changed files with 1796 additions and 830 deletions

View File

@@ -3,32 +3,4 @@
require 'rails_helper'
RSpec.describe Admin::ActionLogsHelper, type: :helper do
klass = Class.new do
include ActionView::Helpers
include Admin::ActionLogsHelper
end
let(:hoge) { klass.new }
describe '#log_target' do
after do
hoge.log_target(log)
end
context 'log.target' do
let(:log) { double(target: true) }
it 'calls linkable_log_target' do
expect(hoge).to receive(:linkable_log_target).with(log.target)
end
end
context '!log.target' do
let(:log) { double(target: false, target_type: :type, recorded_changes: :change) }
it 'calls log_target_from_history' do
expect(hoge).to receive(:log_target_from_history).with(log.target_type, log.recorded_changes)
end
end
end
end

View File

@@ -101,35 +101,4 @@ RSpec.describe NotificationMailer, type: :mailer do
expect(mail.body.encoded).to match("bob has requested to follow you")
end
end
describe 'digest' do
before do
mention = Fabricate(:mention, account: receiver.account, status: foreign_status)
Fabricate(:notification, account: receiver.account, activity: mention)
sender.follow!(receiver.account)
end
context do
let!(:mail) { NotificationMailer.digest(receiver.account, since: 5.days.ago) }
include_examples 'localized subject', 'notification_mailer.digest.subject', count: 1, name: 'bob'
it 'renders the headers' do
expect(mail.subject).to match('notification since your last')
expect(mail.to).to eq([receiver.email])
end
it 'renders the body' do
expect(mail.body.encoded).to match('brief summary')
expect(mail.body.encoded).to include 'The body of the foreign status'
expect(mail.body.encoded).to include sender.username
end
end
it 'includes activities since the receiver last signed in' do
receiver.update!(last_emailed_at: nil, current_sign_in_at: '2000-03-01T00:00:00Z')
mail = NotificationMailer.digest(receiver.account)
expect(mail.body.encoded).to include 'Mar 01, 2000, 00:00'
end
end
end

View File

@@ -1,36 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
describe DigestMailerWorker do
describe 'perform' do
let(:user) { Fabricate(:user, last_emailed_at: 3.days.ago) }
context 'for a user who receives digests' do
it 'sends the email' do
service = double(deliver_now!: nil)
allow(NotificationMailer).to receive(:digest).and_return(service)
update_user_digest_setting(true)
described_class.perform_async(user.id)
expect(NotificationMailer).to have_received(:digest)
expect(user.reload.last_emailed_at).to be_within(1).of(Time.now.utc)
end
end
context 'for a user who does not receive digests' do
it 'does not send the email' do
allow(NotificationMailer).to receive(:digest)
update_user_digest_setting(false)
described_class.perform_async(user.id)
expect(NotificationMailer).not_to have_received(:digest)
expect(user.last_emailed_at).to be_within(1).of(3.days.ago)
end
end
def update_user_digest_setting(value)
user.settings['notification_emails'] = user.settings['notification_emails'].merge('digest' => value)
end
end
end