diff options
Diffstat (limited to 'test/unit')
-rw-r--r-- | test/unit/issue_nested_set_concurrency_test.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/unit/issue_nested_set_concurrency_test.rb b/test/unit/issue_nested_set_concurrency_test.rb index b7f3cac13..0c3f9e6a8 100644 --- a/test/unit/issue_nested_set_concurrency_test.rb +++ b/test/unit/issue_nested_set_concurrency_test.rb @@ -59,6 +59,21 @@ class IssueNestedSetConcurrencyTest < ActiveSupport::TestCase end end + def test_concurrent_subtasks_creation + root = Issue.generate! + assert_difference 'Issue.count', 30 do + threaded(3) do + 10.times do + Issue.generate! :parent_issue_id => root.id + end + end + end + root.reload + assert_equal [1, 62], [root.lft, root.rgt] + children_bounds = root.children.sort_by(&:lft).map {|c| [c.lft, c.rgt]}.flatten + assert_equal (2..61).to_a, children_bounds + end + private def threaded(count, &block) |