summaryrefslogtreecommitdiff
path: root/test/controllers
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-10 02:13:02 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-10 02:13:02 +0200
commitc2b2648d327e1c1749c37fe2e58cd051ed871547 (patch)
treee8d3c48eb01b8d6b512d20603a1db8f910ec110c /test/controllers
parent205e6216fc7850fe717122c189e5003d1f9e8afe (diff)
Destroying Draft or Discarding Autosave drops you where you left
Diffstat (limited to 'test/controllers')
-rw-r--r--test/controllers/nodes_controller_test.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/controllers/nodes_controller_test.rb b/test/controllers/nodes_controller_test.rb
index f3e04c2..ce3419c 100644
--- a/test/controllers/nodes_controller_test.rb
+++ b/test/controllers/nodes_controller_test.rb
@@ -423,4 +423,43 @@ class NodesControllerTest < ActionController::TestCase
423 assert_select "form.button_to.destructive", count: 0 423 assert_select "form.button_to.destructive", count: 0
424 end 424 end
425 425
426 test "reverting from nodes#show returns to the show page, not the editor, even if a draft remains" do
427 user = User.find_by_login("aaron")
428 node = Node.root.children.create!(:slug => "revert_return_to_test")
429 node.lock_for_editing!(user)
430 node.autosave!({:title => "v1"}, user)
431 node.save_draft!(user)
432 node.publish_draft!
433 node.lock_for_editing!(user)
434 node.autosave!({:title => "v2"}, user)
435 node.save_draft!(user)
436 node.lock_for_editing!(user)
437 node.autosave!({:title => "v3"}, user)
438 # state D: head, draft, and autosave all present, locked by aaron
439
440 login_as :aaron
441 put :revert, params: { :id => node.id, :return_to => node_path(node) }
442 assert_redirected_to node_path(node)
443 node.reload
444 assert node.draft.present?
445 assert node.autosave.blank?
446 end
447
448 test "reverting from nodes#edit without return_to still lands back in the editor when a draft remains" do
449 user = User.find_by_login("aaron")
450 node = Node.root.children.create!(:slug => "revert_default_test")
451 node.lock_for_editing!(user)
452 node.autosave!({:title => "v1"}, user)
453 node.save_draft!(user)
454 node.publish_draft!
455 node.lock_for_editing!(user)
456 node.autosave!({:title => "v2"}, user)
457 node.save_draft!(user)
458 node.lock_for_editing!(user)
459 node.autosave!({:title => "v3"}, user)
460
461 login_as :aaron
462 put :revert, params: { :id => node.id }
463 assert_redirected_to edit_node_path(node)
464 end
426end 465end