catstodon/spec/models/follow_request_spec.rb
Claire 4ed09276d5 Merge branch 'main' into glitch-soc/merge-upstream
Conflicts:
- `.prettierignore`:
  Upstream added a line at the end of the file, while glitch-soc had its own
  extra lines.
  Took upstream's change.
- `CONTRIBUTING.md`:
  We have our custom CONTRIBUTING.md quoting upstream. Upstream made changes.
  Ported upstream changes.
- `app/controllers/application_controller.rb`:
  Upstream made code style changes in a method that is entirely replaced
  in glitch-soc.
  Ignored the change.
- `app/models/account.rb`:
  Code style changes textually close to glitch-soc-specific changes.
  Ported upstream changes.
- `lib/sanitize_ext/sanitize_config.rb`:
  Upstream code style changes.
  Ignored them.
2023-02-25 14:00:40 +01:00

39 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe FollowRequest, type: :model do
describe '#authorize!' do
let(:follow_request) { Fabricate(:follow_request, account: account, target_account: target_account) }
let(:account) { Fabricate(:account) }
let(:target_account) { Fabricate(:account) }
it 'calls Account#follow!, MergeWorker.perform_async, and #destroy!' do
expect(account).to receive(:follow!).with(target_account, reblogs: true, notify: false, uri: follow_request.uri, languages: nil, bypass_limit: true)
expect(MergeWorker).to receive(:perform_async).with(target_account.id, account.id)
expect(follow_request).to receive(:destroy!)
follow_request.authorize!
end
it 'generates a Follow' do
follow_request = Fabricate.create(:follow_request)
follow_request.authorize!
target = follow_request.target_account
expect(follow_request.account.following?(target)).to be true
end
it 'correctly passes show_reblogs when true' do
follow_request = Fabricate.create(:follow_request, show_reblogs: true)
follow_request.authorize!
target = follow_request.target_account
expect(follow_request.account.muting_reblogs?(target)).to be false
end
it 'correctly passes show_reblogs when false' do
follow_request = Fabricate.create(:follow_request, show_reblogs: false)
follow_request.authorize!
target = follow_request.target_account
expect(follow_request.account.muting_reblogs?(target)).to be true
end
end
end