diff --git a/app/controllers/post_versions_controller.rb b/app/controllers/post_versions_controller.rb index 11468e356..773fd2ff9 100644 --- a/app/controllers/post_versions_controller.rb +++ b/app/controllers/post_versions_controller.rb @@ -24,7 +24,7 @@ class PostVersionsController < ApplicationController @post_version = authorize PostVersion.find(params[:id]) @post_version.undo! - respond_with(@post_version) + respond_with(@post_version, location: post_versions_path(search: { post_id: @post_version.post_id })) end private diff --git a/app/views/post_versions/_listing.html.erb b/app/views/post_versions/_listing.html.erb index 289d23dd2..04eb02531 100644 --- a/app/views/post_versions/_listing.html.erb +++ b/app/views/post_versions/_listing.html.erb @@ -31,7 +31,7 @@ <% end %> <% t.column do |post_version| %> - <% if policy(post_version).can_undo? %> + <% if policy(post_version).undo? %> <%= link_to "Undo", undo_post_version_path(post_version), method: :put, remote: true, class: "post-version-undo-link" %> <% end %> <% if listing_type(:post_id) == :revert && policy(post_version.post).revert? %> diff --git a/test/functional/post_versions_controller_test.rb b/test/functional/post_versions_controller_test.rb index 59f50066d..a57914cff 100644 --- a/test/functional/post_versions_controller_test.rb +++ b/test/functional/post_versions_controller_test.rb @@ -5,7 +5,7 @@ class PostVersionsControllerTest < ActionDispatch::IntegrationTest @user = create(:user) as(@user) do - @post = create(:post, tag_string: "tagme", rating: "s") + @post = create(:post, tag_string: "tagme", rating: "s", source: "blah") travel(2.hours) { @post.update(tag_string: "1 2", source: "xxx") } travel(4.hours) { @post.update(tag_string: "2 3", rating: "e") } @post2 = create(:post) @@ -45,10 +45,11 @@ class PostVersionsControllerTest < ActionDispatch::IntegrationTest context "undo action" do should "undo the edit" do - put_auth undo_post_version_path(@post.versions.first), @user - assert_response :success - assert_equal("s", @post.reload.rating) - assert_equal("tagme", @post.reload.tag_string) + put_auth undo_post_version_path(@post.versions.second), @user + assert_response :redirect + assert_equal("e", @post.reload.rating) + assert_equal("3 tagme", @post.tag_string) + assert_equal("blah", @post.source) end should "not allow non-members to undo edits" do