pundit: convert post versions to pundit.
This commit is contained in:
@@ -3,30 +3,26 @@ require 'test_helper'
|
||||
class PostVersionsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
@user = create(:user)
|
||||
|
||||
as(@user) do
|
||||
@post = create(:post, tag_string: "tagme", rating: "s")
|
||||
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)
|
||||
end
|
||||
end
|
||||
|
||||
context "The post versions controller" do
|
||||
context "index action" do
|
||||
setup do
|
||||
@user.as_current do
|
||||
@post = create(:post)
|
||||
travel(2.hours) do
|
||||
@post.update(:tag_string => "1 2", :source => "xxx")
|
||||
end
|
||||
travel(4.hours) do
|
||||
@post.update(:tag_string => "2 3", :rating => "e")
|
||||
end
|
||||
@versions = @post.versions
|
||||
@post2 = create(:post)
|
||||
end
|
||||
end
|
||||
|
||||
should "list all versions" do
|
||||
get_auth post_versions_path, @user
|
||||
assert_response :success
|
||||
assert_select "#post-version-#{@versions[0].id}"
|
||||
assert_select "#post-version-#{@versions[1].id}"
|
||||
assert_select "#post-version-#{@versions[2].id}"
|
||||
assert_select "#post-version-#{@post.versions[0].id}"
|
||||
assert_select "#post-version-#{@post.versions[1].id}"
|
||||
assert_select "#post-version-#{@post.versions[2].id}"
|
||||
end
|
||||
|
||||
should "list all versions that match the search criteria" do
|
||||
@@ -38,12 +34,27 @@ class PostVersionsControllerTest < ActionDispatch::IntegrationTest
|
||||
should "list all versions for search[changed_tags]" do
|
||||
get post_versions_path, as: :json, params: { search: { changed_tags: "1" }}
|
||||
assert_response :success
|
||||
assert_equal @versions[1].id, response.parsed_body[1]["id"].to_i
|
||||
assert_equal @versions[2].id, response.parsed_body[0]["id"].to_i
|
||||
assert_equal @post.versions[1].id, response.parsed_body[1]["id"].to_i
|
||||
assert_equal @post.versions[2].id, response.parsed_body[0]["id"].to_i
|
||||
|
||||
get post_versions_path, as: :json, params: { search: { changed_tags: "1 2" }}
|
||||
assert_response :success
|
||||
assert_equal @versions[1].id, response.parsed_body[0]["id"].to_i
|
||||
assert_equal @post.versions[1].id, response.parsed_body[0]["id"].to_i
|
||||
end
|
||||
end
|
||||
|
||||
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)
|
||||
end
|
||||
|
||||
should "not allow non-members to undo edits" do
|
||||
put undo_post_version_path(@post.versions.first)
|
||||
assert_response 403
|
||||
assert_equal("2 3", @post.reload.tag_string)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user