From 738c35da1199b15a8b12e4b5f2bdb46d861aaea8 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Thu, 10 Jul 2025 10:36:03 +0300 Subject: [PATCH] Update number of modified nodes in changeset --- app/models/node.rb | 2 ++ .../api/changesets/uploads_controller_test.rb | 17 ++++++++++++++++- test/controllers/api/nodes_controller_test.rb | 5 +++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/models/node.rb b/app/models/node.rb index 6431c1a5a..6291cf985 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -184,6 +184,8 @@ class Node < ApplicationRecord # update changeset bbox with *new* position changeset.update_bbox!(bbox) + changeset.num_modified_nodes += 1 + save_with_history! end end diff --git a/test/controllers/api/changesets/uploads_controller_test.rb b/test/controllers/api/changesets/uploads_controller_test.rb index fd5223c16..d757c2f2f 100644 --- a/test/controllers/api/changesets/uploads_controller_test.rb +++ b/test/controllers/api/changesets/uploads_controller_test.rb @@ -119,6 +119,9 @@ module Api changeset.reload assert_equal 1, changeset.num_changes + assert_predicate changeset, :num_type_changes_in_sync? + assert_equal 1, changeset.num_modified_nodes + node.reload assert_equal 2, node.version assert_equal 2 * GeoRecord::SCALE, node.latitude @@ -702,6 +705,9 @@ module Api changeset.reload assert_equal 1, changeset.num_changes + assert_predicate changeset, :num_type_changes_in_sync? + assert_equal 1, changeset.num_modified_nodes + node.reload assert_equal 2, node.version assert_equal 2 * GeoRecord::SCALE, node.latitude @@ -910,6 +916,11 @@ module Api assert_dom "diffResult>node", 8 + changeset.reload + assert_equal 8, changeset.num_changes + assert_predicate changeset, :num_type_changes_in_sync? + assert_equal 8, changeset.num_modified_nodes + node.reload assert_equal 9, node.version assert_equal 0.9 * GeoRecord::SCALE, node.latitude @@ -1617,8 +1628,12 @@ module Api assert_response :success - # check the bbox changeset.reload + assert_equal 1, changeset.num_changes + assert_predicate changeset, :num_type_changes_in_sync? + assert_equal 1, changeset.num_modified_nodes + + # check the bbox assert_equal 1.0 * GeoRecord::SCALE, changeset.min_lat, "min_lat should be 1.0 degrees" assert_equal 2.0 * GeoRecord::SCALE, changeset.min_lon, "min_lon should be 2.0 degrees" assert_equal 1.1 * GeoRecord::SCALE, changeset.max_lat, "max_lat should be 1.1 degrees" diff --git a/test/controllers/api/nodes_controller_test.rb b/test/controllers/api/nodes_controller_test.rb index eb821559b..59612fb5d 100644 --- a/test/controllers/api/nodes_controller_test.rb +++ b/test/controllers/api/nodes_controller_test.rb @@ -735,6 +735,11 @@ module Api put api_node_path(node), :params => osm_xml.to_s, :headers => headers assert_response :success, "a valid update request failed" + + changeset.reload + assert_equal 1, changeset.num_changes + assert_predicate changeset, :num_type_changes_in_sync? + assert_equal 1, changeset.num_modified_nodes end end -- 2.39.5