about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2020-11-12 22:13:57 +0100
committerThibaut Girka <thib@sitedethib.com>2020-11-12 22:13:57 +0100
commitc077cdaba70eac154909cad412ece409acc2e688 (patch)
tree7d13d319ce62475de15014406635f32a8742ca4b /spec
parent67125534bc0fd48a45d6cb17a5c78712d8e87150 (diff)
parent9870b175b477bbc984fc7945f1ebe07e3f2b0053 (diff)
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- `app/controllers/relationships_controller.rb`:
  Upstream changed a line too close to a glitch-soc only line related to
  glitch-soc's theming system.
  Applied upstream changes accordingly.
Diffstat (limited to 'spec')
-rw-r--r--spec/models/account_spec.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 98d29e6f3..75f628076 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -817,4 +817,27 @@ RSpec.describe Account, type: :model do
 
   include_examples 'AccountAvatar', :account
   include_examples 'AccountHeader', :account
+
+  describe '#increment_count!' do
+    subject { Fabricate(:account) }
+
+    it 'increments the count in multi-threaded an environment when account_stat is not yet initialized' do
+      subject
+
+      increment_by   = 15
+      wait_for_start = true
+
+      threads = Array.new(increment_by) do
+        Thread.new do
+          true while wait_for_start
+          Account.find(subject.id).increment_count!(:followers_count)
+        end
+      end
+
+      wait_for_start = false
+      threads.each(&:join)
+
+      expect(subject.reload.followers_count).to eq 15
+    end
+  end
 end