about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/fabricators/conversation_fabricator.rb2
-rw-r--r--spec/models/conversation_spec.rb13
-rw-r--r--spec/models/status_spec.rb19
3 files changed, 34 insertions, 0 deletions
diff --git a/spec/fabricators/conversation_fabricator.rb b/spec/fabricators/conversation_fabricator.rb
new file mode 100644
index 000000000..b4fadb46b
--- /dev/null
+++ b/spec/fabricators/conversation_fabricator.rb
@@ -0,0 +1,2 @@
+Fabricator(:conversation) do
+end
diff --git a/spec/models/conversation_spec.rb b/spec/models/conversation_spec.rb
new file mode 100644
index 000000000..8b5e4fdaf
--- /dev/null
+++ b/spec/models/conversation_spec.rb
@@ -0,0 +1,13 @@
+require 'rails_helper'
+
+RSpec.describe Conversation, type: :model do
+  describe '#local?' do
+    it 'returns true when URI is nil' do
+      expect(Fabricate(:conversation).local?).to be true
+    end
+
+    it 'returns false when URI is not nil' do
+      expect(Fabricate(:conversation, uri: 'abc').local?).to be false
+    end
+  end
+end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index f5c65f5c9..b21fcd190 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -377,4 +377,23 @@ RSpec.describe Status, type: :model do
       expect(results).to include(status)
     end
   end
+
+  describe 'before_create' do
+    it 'sets account being replied to correctly over intermediary nodes' do
+      first_status = Fabricate(:status, account: bob)
+      intermediary = Fabricate(:status, thread: first_status, account: alice)
+      final        = Fabricate(:status, thread: intermediary, account: alice)
+
+      expect(final.in_reply_to_account_id).to eq bob.id
+    end
+
+    it 'creates new conversation for stand-alone status' do
+      expect(Status.create(account: alice, text: 'First').conversation_id).to_not be_nil
+    end
+
+    it 'keeps conversation of parent node' do
+      parent = Fabricate(:status, text: 'First')
+      expect(Status.create(account: alice, thread: parent, text: 'Response').conversation_id).to eq parent.conversation_id
+    end
+  end
 end