Merge pull request #1184 from thoughtbot/extract-proper-status
DRY up reblog vs original status check
This commit is contained in:
commit
32748c0f71
7 changed files with 86 additions and 11 deletions
|
@ -99,11 +99,75 @@ RSpec.describe Account, type: :model do
|
|||
end
|
||||
|
||||
describe '#favourited?' do
|
||||
pending
|
||||
let(:original_status) do
|
||||
author = Fabricate(:account, username: 'original')
|
||||
Fabricate(:status, account: author)
|
||||
end
|
||||
|
||||
context 'when the status is a reblog of another status' do
|
||||
let(:original_reblog) do
|
||||
author = Fabricate(:account, username: 'original_reblogger')
|
||||
Fabricate(:status, reblog: original_status, account: author)
|
||||
end
|
||||
|
||||
it 'is is true when this account has favourited it' do
|
||||
Fabricate(:favourite, status: original_reblog, account: subject)
|
||||
|
||||
expect(subject.favourited?(original_status)).to eq true
|
||||
end
|
||||
|
||||
it 'is false when this account has not favourited it' do
|
||||
expect(subject.favourited?(original_status)).to eq false
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the status is an original status' do
|
||||
it 'is is true when this account has favourited it' do
|
||||
Fabricate(:favourite, status: original_status, account: subject)
|
||||
|
||||
expect(subject.favourited?(original_status)).to eq true
|
||||
end
|
||||
|
||||
it 'is false when this account has not favourited it' do
|
||||
expect(subject.favourited?(original_status)).to eq false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#reblogged?' do
|
||||
pending
|
||||
let(:original_status) do
|
||||
author = Fabricate(:account, username: 'original')
|
||||
Fabricate(:status, account: author)
|
||||
end
|
||||
|
||||
context 'when the status is a reblog of another status'do
|
||||
let(:original_reblog) do
|
||||
author = Fabricate(:account, username: 'original_reblogger')
|
||||
Fabricate(:status, reblog: original_status, account: author)
|
||||
end
|
||||
|
||||
it 'is true when this account has reblogged it' do
|
||||
Fabricate(:status, reblog: original_reblog, account: subject)
|
||||
|
||||
expect(subject.reblogged?(original_reblog)).to eq true
|
||||
end
|
||||
|
||||
it 'is false when this account has not reblogged it' do
|
||||
expect(subject.reblogged?(original_reblog)).to eq false
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the status is an original status' do
|
||||
it 'is true when this account has reblogged it' do
|
||||
Fabricate(:status, reblog: original_status, account: subject)
|
||||
|
||||
expect(subject.reblogged?(original_status)).to eq true
|
||||
end
|
||||
|
||||
it 'is false when this account has not reblogged it' do
|
||||
expect(subject.reblogged?(original_status)).to eq false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.find_local' do
|
||||
|
|
|
@ -107,4 +107,15 @@ RSpec.describe Status, type: :model do
|
|||
expect(subject.favourites_count).to eq 2
|
||||
end
|
||||
end
|
||||
|
||||
describe '#proper' do
|
||||
it 'is itself for original statuses' do
|
||||
expect(subject.proper).to eq subject
|
||||
end
|
||||
|
||||
it 'is the source status for reblogs' do
|
||||
subject.reblog = other
|
||||
expect(subject.proper).to eq other
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue