diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/models/node_test.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/models/node_test.rb b/test/models/node_test.rb index 280614e..5626384 100644 --- a/test/models/node_test.rb +++ b/test/models/node_test.rb | |||
| @@ -499,4 +499,16 @@ class NodeTest < ActiveSupport::TestCase | |||
| 499 | node.autosave!({title: "v3"}, user) | 499 | node.autosave!({title: "v3"}, user) |
| 500 | assert_equal [[:head, :draft], [:draft, :autosave]], node.available_layer_pairs # state D | 500 | assert_equal [[:head, :draft], [:draft, :autosave]], node.available_layer_pairs # state D |
| 501 | end | 501 | end |
| 502 | |||
| 503 | test "publishing a staged move under one's own descendant is rejected, not allowed to crash" do | ||
| 504 | a = Node.root.children.create!(:slug => "cycle_guard_a") | ||
| 505 | b = a.children.create!(:slug => "cycle_guard_b") | ||
| 506 | |||
| 507 | a.staged_parent_id = b.id | ||
| 508 | |||
| 509 | assert_raises(ActiveRecord::RecordInvalid) { a.publish_draft! } | ||
| 510 | |||
| 511 | a.reload | ||
| 512 | assert_equal Node.root.id, a.parent_id | ||
| 513 | end | ||
| 502 | end | 514 | end |
