diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-10 02:13:02 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-10 02:13:02 +0200 |
| commit | c2b2648d327e1c1749c37fe2e58cd051ed871547 (patch) | |
| tree | e8d3c48eb01b8d6b512d20603a1db8f910ec110c /test/controllers | |
| parent | 205e6216fc7850fe717122c189e5003d1f9e8afe (diff) | |
Destroying Draft or Discarding Autosave drops you where you left
Diffstat (limited to 'test/controllers')
| -rw-r--r-- | test/controllers/nodes_controller_test.rb | 39 |
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 | ||
| 426 | end | 465 | end |
