From b2a3955d936b448562db9981560135cf0303a0e0 Mon Sep 17 00:00:00 2001 From: mmd-osm Date: Sat, 16 Dec 2017 13:32:04 +0100 Subject: [PATCH 1/4] Allow (un)subscribing discussions also when changeset still open Fixes #1627 --- app/controllers/changeset_controller.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/controllers/changeset_controller.rb b/app/controllers/changeset_controller.rb index 8fbbe1362..329cbd79c 100644 --- a/app/controllers/changeset_controller.rb +++ b/app/controllers/changeset_controller.rb @@ -357,7 +357,6 @@ class ChangesetController < ApplicationController # Find the changeset and check it is valid changeset = Changeset.find(id) - raise OSM::APIChangesetNotYetClosedError, changeset if changeset.is_open? raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribers.exists?(current_user.id) # Add the subscriber @@ -378,7 +377,6 @@ class ChangesetController < ApplicationController # Find the changeset and check it is valid changeset = Changeset.find(id) - raise OSM::APIChangesetNotYetClosedError, changeset if changeset.is_open? raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribers.exists?(current_user.id) # Remove the subscriber From 7a396e9dc9a7f4097218032a882080403e668bf6 Mon Sep 17 00:00:00 2001 From: mmd-osm Date: Sat, 16 Dec 2017 13:51:02 +0100 Subject: [PATCH 2/4] Fix for failing test cases --- test/controllers/changeset_controller_test.rb | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/test/controllers/changeset_controller_test.rb b/test/controllers/changeset_controller_test.rb index a0f7960c3..c0af4021e 100644 --- a/test/controllers/changeset_controller_test.rb +++ b/test/controllers/changeset_controller_test.rb @@ -2248,6 +2248,13 @@ CHANGESET post :subscribe, :params => { :id => changeset.id } end assert_response :success + + # not closed changeset + changeset = create(:changeset) + assert_difference "changeset.subscribers.count", 1 do + post :subscribe, :params => { :id => changeset.id } + end + assert_response :success end ## @@ -2270,12 +2277,6 @@ CHANGESET end assert_response :not_found - # not closed changeset - changeset = create(:changeset) - assert_no_difference "changeset.subscribers.count" do - post :subscribe, :params => { :id => changeset.id } - end - assert_response :conflict # trying to subscribe when already subscribed changeset = create(:changeset, :closed) @@ -2298,6 +2299,15 @@ CHANGESET post :unsubscribe, :params => { :id => changeset.id } end assert_response :success + + # not closed changeset + changeset = create(:changeset) + changeset.subscribers.push(user) + + assert_difference "changeset.subscribers.count", -1 do + post :unsubscribe, :params => { :id => changeset.id } + end + assert_response :success end ## @@ -2318,13 +2328,6 @@ CHANGESET end assert_response :not_found - # not closed changeset - changeset = create(:changeset) - assert_no_difference "changeset.subscribers.count" do - post :unsubscribe, :params => { :id => changeset.id } - end - assert_response :conflict - # trying to unsubscribe when not subscribed changeset = create(:changeset, :closed) assert_no_difference "changeset.subscribers.count" do From 2c7f2b117bdda7c4ad04af7621a6b39016475db6 Mon Sep 17 00:00:00 2001 From: mmd-osm Date: Sat, 16 Dec 2017 14:06:21 +0100 Subject: [PATCH 3/4] Remove extra blank line --- test/controllers/changeset_controller_test.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/test/controllers/changeset_controller_test.rb b/test/controllers/changeset_controller_test.rb index c0af4021e..329be5be1 100644 --- a/test/controllers/changeset_controller_test.rb +++ b/test/controllers/changeset_controller_test.rb @@ -2277,7 +2277,6 @@ CHANGESET end assert_response :not_found - # trying to subscribe when already subscribed changeset = create(:changeset, :closed) changeset.subscribers.push(user) From 21683db838d66d5b14da08dd5fd467fae09515d4 Mon Sep 17 00:00:00 2001 From: mmd-osm Date: Sat, 16 Dec 2017 17:55:56 +0100 Subject: [PATCH 4/4] Fix rubocop issue --- .rubocop_todo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index b4104079c..d15d23721 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -82,7 +82,7 @@ Metrics/BlockNesting: # Offense count: 63 # Configuration parameters: CountComments. Metrics/ClassLength: - Max: 1796 + Max: 1797 # Offense count: 71 Metrics/CyclomaticComplexity: