From ebd6aca211b17459de69a703b00373e61c342396 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sat, 5 Jul 2025 21:33:19 +0300 Subject: [PATCH] Update number of created nodes in changeset --- app/models/node.rb | 2 ++ .../api/changesets/uploads_controller_test.rb | 11 ++++++++++- test/controllers/api/nodes_controller_test.rb | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/models/node.rb b/app/models/node.rb index baf0c180f..6431c1a5a 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -196,6 +196,8 @@ class Node < ApplicationRecord # update the changeset to include the new location changeset.update_bbox!(bbox) + changeset.num_created_nodes += 1 + save_with_history! end diff --git a/test/controllers/api/changesets/uploads_controller_test.rb b/test/controllers/api/changesets/uploads_controller_test.rb index 350fc95f9..c6769f8dc 100644 --- a/test/controllers/api/changesets/uploads_controller_test.rb +++ b/test/controllers/api/changesets/uploads_controller_test.rb @@ -232,6 +232,11 @@ module Api end end + changeset.reload + assert_equal 1, changeset.num_changes + assert_predicate changeset, :num_type_changes_in_sync? + assert_equal 1, changeset.num_created_nodes + assert_equal 1, node.version assert_equal changeset, node.changeset assert_predicate node, :visible? @@ -1565,8 +1570,12 @@ module Api assert_response :success - # check that the changeset bbox is within bounds changeset.reload + assert_equal 18, changeset.num_changes + assert_predicate changeset, :num_type_changes_in_sync? + assert_equal 18, changeset.num_created_nodes + + # check that the changeset bbox is within bounds assert_operator changeset.min_lon, :>=, -180 * GeoRecord::SCALE, "Minimum longitude (#{changeset.min_lon / GeoRecord::SCALE}) should be >= -180 to be valid." assert_operator changeset.max_lon, :<=, 180 * GeoRecord::SCALE, "Maximum longitude (#{changeset.max_lon / GeoRecord::SCALE}) should be <= 180 to be valid." assert_operator changeset.min_lat, :>=, -90 * GeoRecord::SCALE, "Minimum latitude (#{changeset.min_lat / GeoRecord::SCALE}) should be >= -90 to be valid." diff --git a/test/controllers/api/nodes_controller_test.rb b/test/controllers/api/nodes_controller_test.rb index 11b2f41ff..eb821559b 100644 --- a/test/controllers/api/nodes_controller_test.rb +++ b/test/controllers/api/nodes_controller_test.rb @@ -129,6 +129,11 @@ module Api assert_in_delta lon * 10000000, node.longitude, 1, "saved node does not match requested longitude" assert_equal changeset.id, node.changeset_id, "saved node does not belong to changeset that it was created in" assert node.visible, "saved node is not visible" + + changeset.reload + assert_equal 1, changeset.num_changes + assert_predicate changeset, :num_type_changes_in_sync? + assert_equal 1, changeset.num_created_nodes end end -- 2.39.5