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:
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
Reference in New Issue
Block a user