add secondary validations to aliases+implications+requests

This commit is contained in:
r888888888
2016-02-10 14:52:26 -08:00
parent 01eac1e587
commit d75546a4e4
18 changed files with 239 additions and 89 deletions

View File

@@ -2,5 +2,6 @@ FactoryGirl.define do
factory(:bulk_update_request) do |f|
title "xxx"
script "create alias aaa -> bbb"
skip_secondary_validations true
end
end

View File

@@ -3,6 +3,7 @@ FactoryGirl.define do
antecedent_name "aaa"
consequent_name "bbb"
status "active"
skip_secondary_validations true
after(:create) do |tag_alias|
unless tag_alias.status == "pending"

View File

@@ -3,7 +3,8 @@ FactoryGirl.define do
antecedent_name "aaa"
consequent_name "bbb"
status "active"
skip_secondary_validations true
after(:create) do |tag_implication|
unless tag_implication.status == "pending"
tag_implication.process!

View File

@@ -17,11 +17,31 @@ class BulkUpdateRequestsControllerTest < ActionController::TestCase
context "#create" do
should "succeed" do
assert_difference("BulkUpdateRequest.count", 1) do
post :create, {:bulk_update_request => {:script => "create alias aaa -> bbb", :title => "xxx"}}, {:user_id => @user.id}
post :create, {:bulk_update_request => {:skip_secondary_validations => "1", :script => "create alias aaa -> bbb", :title => "xxx"}}, {:user_id => @user.id}
end
end
end
context "#update" do
setup do
CurrentUser.scoped(@user) do
@bulk_update_request = FactoryGirl.create(:bulk_update_request)
end
end
should "still handle enabled secondary validations correctly" do
post :update, {:id => @bulk_update_request.id, :bulk_update_request => {:script => "create alias zzz -> 222", :skip_secondary_validations => "0"}}, {:user_id => @user.id}
@bulk_update_request.reload
assert_equal("create alias aaa -> bbb", @bulk_update_request.script)
end
should "still handle disabled secondary validations correctly" do
post :update, {:id => @bulk_update_request.id, :bulk_update_request => {:script => "create alias zzz -> 222", :skip_secondary_validations => "1"}}, {:user_id => @user.id}
@bulk_update_request.reload
assert_equal("create alias zzz -> 222", @bulk_update_request.script)
end
end
context "#index" do
setup do
CurrentUser.scoped(@user) do

View File

@@ -16,28 +16,37 @@ class TagAliasRequestTest < ActiveSupport::TestCase
CurrentUser.ip_addr = nil
end
should "raise an exception if invalid" do
assert_raises(TagAliasRequest::ValidationError) do
TagAliasRequest.new("", "", "reason").create
end
should "handle invalid attributes" do
tar = TagAliasRequest.new(:antecedent_name => "", :consequent_name => "", :reason => "reason", :skip_secondary_validations => true)
tar.create
assert(tar.invalid?)
end
should "handle secondary validations" do
tar = TagAliasRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => false)
tar.create
assert(tar.invalid?)
end
should "create a tag alias" do
assert_difference("TagAlias.count", 1) do
TagAliasRequest.new("aaa", "bbb", "reason").create
tar = TagAliasRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => true)
tar.create
end
assert_equal("pending", TagAlias.last.status)
end
should "create a forum topic" do
assert_difference("ForumTopic.count", 1) do
TagAliasRequest.new("aaa", "bbb", "reason").create
tar = TagAliasRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => true)
tar.create
end
end
should "create a forum post" do
assert_difference("ForumPost.count", 1) do
TagAliasRequest.new("aaa", "bbb", "reason").create
tar = TagAliasRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => true)
tar.create
end
end
end

View File

@@ -16,28 +16,37 @@ class TagImplicationRequestTest < ActiveSupport::TestCase
CurrentUser.ip_addr = nil
end
should "raise an exception if invalid" do
assert_raises(TagImplicationRequest::ValidationError) do
TagImplicationRequest.new("", "", "reason").create
end
should "handle invalid attributes" do
tir = TagImplicationRequest.new(:antecedent_name => "", :consequent_name => "", :reason => "reason", :skip_secondary_validations => true)
tir.create
assert(tir.invalid?)
end
should "handle secondary validations" do
tir = TagImplicationRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => false)
tir.create
assert(tir.invalid?)
end
should "create a tag implication" do
assert_difference("TagImplication.count", 1) do
TagImplicationRequest.new("aaa", "bbb", "reason").create
tir = TagImplicationRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => true)
tir.create
end
assert_equal("pending", TagImplication.last.status)
end
should "create a forum topic" do
assert_difference("ForumTopic.count", 1) do
TagImplicationRequest.new("aaa", "bbb", "reason").create
tir = TagImplicationRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => true)
tir.create
end
end
should "create a forum post" do
assert_difference("ForumPost.count", 1) do
TagImplicationRequest.new("aaa", "bbb", "reason").create
tir = TagImplicationRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => true)
tir.create
end
end
end