Sha256: dc51e3dea55e431ea4d9845b000e21369c7b31280125ff2e790924a8928022b3

Contents?: true

Size: 1.1 KB

Versions: 13

Compression:

Stored size: 1.1 KB

Contents

require "test_helper"

class ThreadSafetyTest < ActionController::TestCase
  test "thread-safe when using #set_paper_trail_whodunnit" do
    blocked = true

    slow_thread = Thread.new do
      controller = TestController.new
      controller.send :set_paper_trail_whodunnit
      sleep 0.001 while blocked
      PaperTrail.whodunnit
    end

    fast_thread = Thread.new do
      controller = TestController.new
      controller.send :set_paper_trail_whodunnit
      who = PaperTrail.whodunnit
      blocked = false
      who
    end

    assert_not_equal slow_thread.value, fast_thread.value
  end

  test "thread-safe when using #without_versioning" do
    enabled = nil

    slow_thread = Thread.new do
      Widget.new.paper_trail.without_versioning do
        sleep(0.01)
        enabled = Widget.paper_trail.enabled?
        sleep(0.01)
      end
      enabled
    end

    fast_thread = Thread.new do
      sleep(0.005)
      Widget.paper_trail.enabled?
    end

    assert_not_equal slow_thread.value, fast_thread.value
    assert Widget.paper_trail.enabled?
    assert PaperTrail.enabled_for_model?(Widget)
  end
end

Version data entries

13 entries across 12 versions & 2 rubygems

Version Path
paper_trail-7.0.3 test/functional/thread_safety_test.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/paper_trail-7.0.2/test/functional/thread_safety_test.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/paper_trail-5.2.3/test/functional/thread_safety_test.rb
paper_trail-7.0.2 test/functional/thread_safety_test.rb
paper_trail-7.0.1 test/functional/thread_safety_test.rb
paper_trail-7.0.0 test/functional/thread_safety_test.rb
paper_trail-6.0.2 test/functional/thread_safety_test.rb
paper_trail-6.0.1 test/functional/thread_safety_test.rb
paper_trail-6.0.0 test/functional/thread_safety_test.rb
paper_trail-5.2.3 test/functional/thread_safety_test.rb
paper_trail-5.2.2 test/functional/thread_safety_test.rb
paper_trail-5.2.1 test/functional/thread_safety_test.rb
paper_trail-5.2.0 test/functional/thread_safety_test.rb