From 99be82718b436708da00fb2a0e736c628159283d Mon Sep 17 00:00:00 2001 From: erdgeist Date: Wed, 22 Jul 2026 02:24:40 +0200 Subject: Fix Node#title ignoring autosave head ? head.title : draft.title never accounted for a node with only an autosave, reuses editable_page --- app/models/node.rb | 2 +- test/models/node_test.rb | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/models/node.rb b/app/models/node.rb index a440c2f..0796ea4 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -443,7 +443,7 @@ class Node < ApplicationRecord end def title - head ? head.title : draft.title + editable_page&.title end def update_unique_names? diff --git a/test/models/node_test.rb b/test/models/node_test.rb index ab66f81..d7e4dd0 100644 --- a/test/models/node_test.rb +++ b/test/models/node_test.rb @@ -268,7 +268,6 @@ class NodeTest < ActiveSupport::TestCase assert_equal "quentin", node.head.user.login end - test "update?" do Node.root.descendants.delete_all updates = Node.root.children.create!( :slug => "updates" ) @@ -359,6 +358,16 @@ class NodeTest < ActiveSupport::TestCase assert_equal @user1, node.reload.lock_owner end + test "title reads from autosave when neither draft nor head exists yet" do + node = Node.root.children.create!(:slug => "title_autosave_only_test") + node.draft.destroy + node.update_column(:draft_id, nil) + node.lock_for_editing!(users(:quentin)) + node.autosave!({ :title => "autosave-only title" }, users(:quentin)) + + assert_equal "autosave-only title", node.reload.title + end + test "revert! is a safe no-op on a fresh node with only a draft" do node = create_node_with_draft node.lock_for_editing!(@user1) -- cgit v1.3