From 1ffb8053f6d003de96b5348e52fb6a627d75969e Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Thu, 28 Aug 2025 19:56:05 +0300 Subject: [PATCH] Add missing changeset tests for api element writes --- test/controllers/api/nodes_controller_test.rb | 10 ++++++ .../api/relations_controller_test.rb | 31 +++++++++++++++++++ test/controllers/api/ways_controller_test.rb | 20 ++++++++++++ 3 files changed, 61 insertions(+) diff --git a/test/controllers/api/nodes_controller_test.rb b/test/controllers/api/nodes_controller_test.rb index b1f6ff2de..511585e41 100644 --- a/test/controllers/api/nodes_controller_test.rb +++ b/test/controllers/api/nodes_controller_test.rb @@ -137,6 +137,16 @@ module Api end end + def test_create_in_missing_changeset + with_unchanging_request do |headers| + osm = "" + + post api_nodes_path, :params => osm, :headers => headers + + assert_response :conflict + end + end + def test_create_with_invalid_osm_structure with_unchanging_request do |headers| osm = "" diff --git a/test/controllers/api/relations_controller_test.rb b/test/controllers/api/relations_controller_test.rb index 3f9b44389..acbc216ba 100644 --- a/test/controllers/api/relations_controller_test.rb +++ b/test/controllers/api/relations_controller_test.rb @@ -421,6 +421,24 @@ module Api end end + def test_create_in_missing_changeset + node = create(:node) + + with_unchanging_request do |headers| + osm = <<~OSM + + + + + + OSM + + post api_relations_path, :params => osm, :headers => headers + + assert_response :conflict + end + end + def test_create_with_missing_node_member with_unchanging_request do |headers, changeset| osm = <<~OSM @@ -504,6 +522,19 @@ module Api end end + def test_update_in_missing_changeset + with_unchanging(:relation) do |relation| + with_unchanging_request do |headers| + osm_xml = xml_for_relation relation + osm_xml = update_changeset osm_xml, 0 + + put api_relation_path(relation), :params => osm_xml.to_s, :headers => headers + + assert_response :conflict, "update with changeset=0 should be rejected" + end + end + end + def test_update_other_relation with_unchanging(:relation) do |relation| with_unchanging(:relation) do |other_relation| diff --git a/test/controllers/api/ways_controller_test.rb b/test/controllers/api/ways_controller_test.rb index 1e8e9289a..905e4d0b8 100644 --- a/test/controllers/api/ways_controller_test.rb +++ b/test/controllers/api/ways_controller_test.rb @@ -257,6 +257,26 @@ module Api end end + def test_create_in_missing_changeset + node1 = create(:node) + node2 = create(:node) + + with_unchanging_request do |headers| + osm = <<~OSM + + + + + + + OSM + + post api_ways_path, :params => osm, :headers => headers + + assert_response :conflict + end + end + def test_create_with_missing_node_by_private_user with_unchanging_request([:data_public => false]) do |headers, changeset| osm = <<~OSM -- 2.39.5