Fix: #172 他のサーバーからの相乗り絵文字削除が反映されない
This commit is contained in:
parent
1fc8032bdf
commit
dd6db1f337
2 changed files with 62 additions and 5 deletions
|
@ -5,7 +5,8 @@ require 'rails_helper'
|
|||
RSpec.describe ActivityPub::Activity::Undo do
|
||||
subject { described_class.new(json, sender) }
|
||||
|
||||
let(:sender) { Fabricate(:account, domain: 'example.com') }
|
||||
let(:sender_domain) { 'example.com' }
|
||||
let(:sender) { Fabricate(:account, domain: sender_domain) }
|
||||
|
||||
let(:json) do
|
||||
{
|
||||
|
@ -218,6 +219,8 @@ RSpec.describe ActivityPub::Activity::Undo do
|
|||
let(:status) { Fabricate(:status) }
|
||||
|
||||
let(:content) { '😀' }
|
||||
let(:name) { '😀' }
|
||||
let(:tag) { nil }
|
||||
let(:object_json) do
|
||||
{
|
||||
id: 'bar',
|
||||
|
@ -225,20 +228,69 @@ RSpec.describe ActivityPub::Activity::Undo do
|
|||
actor: ActivityPub::TagManager.instance.uri_for(sender),
|
||||
object: ActivityPub::TagManager.instance.uri_for(status),
|
||||
content: content,
|
||||
tag: tag,
|
||||
}
|
||||
end
|
||||
let(:custom_emoji) { nil }
|
||||
|
||||
before do
|
||||
Fabricate(:favourite, account: sender, status: status)
|
||||
Fabricate(:emoji_reaction, account: sender, status: status, name: content)
|
||||
Fabricate(:emoji_reaction, account: sender, status: status, name: name, custom_emoji: custom_emoji)
|
||||
end
|
||||
|
||||
it 'delete emoji reaction' do
|
||||
subject.perform
|
||||
reaction = EmojiReaction.find_by(account: sender, status: status)
|
||||
expect(reaction).to be_nil
|
||||
expect(sender.emoji_reacted?(status)).to be false
|
||||
expect(sender.favourited?(status)).to be true
|
||||
end
|
||||
|
||||
context 'with custom emoji' do
|
||||
let(:content) { ':tinking:' }
|
||||
let(:name) { 'tinking' }
|
||||
let(:tag) do
|
||||
{
|
||||
id: custom_emoji_uri,
|
||||
type: 'Emoji',
|
||||
icon: {
|
||||
url: 'http://example.com/emoji.png',
|
||||
},
|
||||
name: name,
|
||||
}
|
||||
end
|
||||
let(:custom_emoji_domain) { 'example.com' }
|
||||
let(:custom_emoji_uri) { "https://#{custom_emoji_domain}/aaa" }
|
||||
let(:custom_emoji) { Fabricate(:custom_emoji, uri: custom_emoji_uri, domain: custom_emoji_domain, shortcode: name) }
|
||||
|
||||
it 'delete emoji reaction' do
|
||||
subject.perform
|
||||
expect(sender.emoji_reacted?(status)).to be false
|
||||
expect(sender.favourited?(status)).to be true
|
||||
end
|
||||
|
||||
context 'when third server' do
|
||||
let(:sender_domain) { 'foo.bar' }
|
||||
|
||||
it 'delete emoji reaction' do
|
||||
subject.perform
|
||||
expect(sender.emoji_reacted?(status)).to be false
|
||||
expect(sender.favourited?(status)).to be true
|
||||
end
|
||||
end
|
||||
|
||||
context 'when local' do
|
||||
let(:custom_emoji_domain) { 'cb6e6126.ngrok.io' }
|
||||
|
||||
before do
|
||||
custom_emoji.update(domain: nil, uri: nil)
|
||||
end
|
||||
|
||||
it 'delete emoji reaction' do
|
||||
subject.perform
|
||||
expect(sender.emoji_reacted?(status)).to be false
|
||||
expect(sender.favourited?(status)).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue