Bläddra i källkod

Cover Favourite more (#3841)

Akihiko Odaki (@fn_aki@pawoo.net) 7 år sedan
förälder
incheckning
05e4728de7
1 ändrade filer med 24 tillägg och 4 borttagningar
  1. 24 4
      spec/models/favourite_spec.rb

+ 24 - 4
spec/models/favourite_spec.rb

@@ -1,9 +1,29 @@
 require 'rails_helper'
 
 RSpec.describe Favourite, type: :model do
-  let(:alice)  { Fabricate(:account, username: 'alice') }
-  let(:bob)    { Fabricate(:account, username: 'bob') }
-  let(:status) { Fabricate(:status, account: bob) }
+  let(:account) { Fabricate(:account) }
 
-  subject { Favourite.new(account: alice, status: status) }
+  context 'when status is a reblog' do
+    let(:reblog) { Fabricate(:status, reblog: nil) }
+    let(:status) { Fabricate(:status, reblog: reblog) }
+
+    it 'invalidates if the reblogged status is already a favourite' do
+      Favourite.create!(account: account, status: reblog)
+      expect(Favourite.new(account: account, status: status).valid?).to eq false
+    end
+
+    it 'replaces status with the reblogged one if it is a reblog' do
+      favourite = Favourite.create!(account: account, status: status)
+      expect(favourite.status).to eq reblog
+    end
+  end
+
+  context 'when status is not a reblog' do
+    let(:status) { Fabricate(:status, reblog: nil) }
+
+    it 'saves with the specified status' do
+      favourite = Favourite.create!(account: account, status: status)
+      expect(favourite.status).to eq status
+    end
+  end
 end