diff options
Diffstat (limited to 'test/models/node_test.rb')
| -rw-r--r-- | test/models/node_test.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/models/node_test.rb b/test/models/node_test.rb index 2138c19..9e71dec 100644 --- a/test/models/node_test.rb +++ b/test/models/node_test.rb | |||
| @@ -473,4 +473,26 @@ class NodeTest < ActiveSupport::TestCase | |||
| 473 | node.publish_draft! | 473 | node.publish_draft! |
| 474 | end | 474 | end |
| 475 | end | 475 | end |
| 476 | |||
| 477 | test "available_layer_pairs matches the six-state table" do | ||
| 478 | node = Node.root.children.create!(:slug => "layer_pairs_test") | ||
| 479 | user = @user1 || User.find_by_login("aaron") | ||
| 480 | |||
| 481 | assert_equal [[:draft, :autosave]], (node.lock_for_editing!(user); node.autosave!({title: "v1"}, user); node.available_layer_pairs) # state F | ||
| 482 | |||
| 483 | node.save_draft!(user) | ||
| 484 | node.publish_draft! | ||
| 485 | assert_equal [], node.available_layer_pairs # state A | ||
| 486 | |||
| 487 | node.lock_for_editing!(user) | ||
| 488 | node.autosave!({title: "v2"}, user) | ||
| 489 | assert_equal [[:head, :autosave]], node.available_layer_pairs # state B | ||
| 490 | |||
| 491 | node.save_draft!(user) | ||
| 492 | assert_equal [[:head, :draft]], node.available_layer_pairs # state C | ||
| 493 | |||
| 494 | node.lock_for_editing!(user) | ||
| 495 | node.autosave!({title: "v3"}, user) | ||
| 496 | assert_equal [[:head, :draft], [:draft, :autosave]], node.available_layer_pairs # state D | ||
| 497 | end | ||
| 476 | end | 498 | end |
