Fix: 他のサーバーの同じ絵文字を複数つけられる問題 (#141)
* スタンプ機能のリファクタリング、投稿の反応者へも配送 * Fix: 他のサーバーの絵文字を複数つけられる問題
This commit is contained in:
parent
b73eb1b847
commit
1d9c77063e
2 changed files with 34 additions and 12 deletions
|
@ -19,15 +19,6 @@ RSpec.describe EmojiReactService, type: :service do
|
|||
expect(subject.first.custom_emoji_id).to be_nil
|
||||
end
|
||||
|
||||
context 'with name duplication on same account' do
|
||||
before { Fabricate(:emoji_reaction, status: status, name: '😀') }
|
||||
|
||||
it 'react with emoji' do
|
||||
expect(subject.count).to eq 1
|
||||
expect(subject.first.name).to eq '😀'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when multiple reactions by same account' do
|
||||
let(:name) { '😂' }
|
||||
|
||||
|
@ -139,6 +130,37 @@ RSpec.describe EmojiReactService, type: :service do
|
|||
end
|
||||
end
|
||||
|
||||
context 'with name duplication of unicode emoji on same account' do
|
||||
before { Fabricate(:emoji_reaction, status: status, name: '😀') }
|
||||
|
||||
it 'react with emoji' do
|
||||
expect(subject.count).to eq 1
|
||||
expect(subject.first.name).to eq '😀'
|
||||
end
|
||||
end
|
||||
|
||||
context 'with name duplication of local cuetom emoji on same account' do
|
||||
let(:name) { 'ohagi' }
|
||||
let!(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'ohagi') }
|
||||
|
||||
before { Fabricate(:emoji_reaction, account: sender, status: status, name: 'ohagi', custom_emoji: custom_emoji) }
|
||||
|
||||
it 'react with emoji' do
|
||||
expect { subject.count }.to raise_error Mastodon::ValidationError
|
||||
end
|
||||
end
|
||||
|
||||
context 'with name duplication of remote cuetom emoji on same account' do
|
||||
let(:name) { 'ohagi@foo.bar' }
|
||||
let!(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'ohagi', domain: 'foo.bar', uri: 'https://foo.bar/emoji/ohagi') }
|
||||
|
||||
before { Fabricate(:emoji_reaction, account: sender, status: status, name: 'ohagi', custom_emoji: custom_emoji) }
|
||||
|
||||
it 'react with emoji' do
|
||||
expect { subject.count }.to raise_error Mastodon::ValidationError
|
||||
end
|
||||
end
|
||||
|
||||
context 'when has remote followers' do
|
||||
let!(:bob) { Fabricate(:account, domain: 'foo.bar', uri: 'https://foo.bar/actor', inbox_url: 'https://foo.bar/inbox', protocol: 'activitypub') }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue