summaryrefslogtreecommitdiff
path: root/test/models/node_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/models/node_test.rb')
-rw-r--r--test/models/node_test.rb22
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
476end 498end