agenda-libre-ruby/test/controllers/moderations_controller_test.rb

132 lines
3.3 KiB
Ruby
Raw Normal View History

2014-01-06 11:22:39 +01:00
require 'test_helper'
# Event management, moderation means refusal, acceptation or demands for more
# information
2018-01-01 17:52:33 +01:00
class ModerationsControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::IntegrationHelpers
2014-07-01 15:50:39 +02:00
setup do
@moderation = events :one
sign_in users(:one)
end
2014-09-03 02:14:21 +02:00
test 'should get index' do
2018-01-01 17:52:33 +01:00
get moderations_url
2014-09-03 02:14:21 +02:00
assert_response :success
assert_not_nil assigns(:events)
end
test 'should preview event' do
2018-01-01 17:52:33 +01:00
patch moderation_url(@moderation), params: {
event: {
title: 'hello world',
region: regions(:region_one)
}
}
end
2014-07-01 15:50:39 +02:00
test 'should edit event' do
2018-01-01 17:52:33 +01:00
put moderation_url(@moderation), params: {
event: {
title: 'hello world',
region: regions(:region_one)
}
2014-07-01 15:50:39 +02:00
}
2018-01-01 17:52:33 +01:00
assert_redirected_to moderations_url
2014-07-01 15:50:39 +02:00
end
2014-09-03 02:14:21 +02:00
test 'should not edit event' do
2018-01-01 17:52:33 +01:00
put moderation_url(@moderation), params: { event: { title: nil } }
2014-09-03 02:14:21 +02:00
assert_not_empty assigns(:moderation).errors
end
2014-07-01 15:50:39 +02:00
test 'should accept event' do
@moderation = events :proposed
decision = @moderation.decision_time
assert !@moderation.moderated?
assert_difference 'Event.moderated.count' do
2018-01-01 17:52:33 +01:00
put accept_moderation_url(@moderation)
end
2014-07-01 15:50:39 +02:00
assert assigns(:moderation).moderated?
2014-07-01 15:50:39 +02:00
assert_empty assigns(:moderation).errors
assert decision < assigns(:moderation).decision_time
assert_redirected_to :moderations
2014-07-01 15:50:39 +02:00
end
test 'should update event' do
# Added so paper trail can have some bit of history
2018-01-01 17:52:33 +01:00
patch moderation_url(@moderation), params: { event: { title: 'hop hop' } }
patch moderation_url(@moderation), params: {
event: {
title: @moderation.title,
start_time: @moderation.start_time, end_time: @moderation.end_time,
description: @moderation.description,
url: @moderation.url,
contact: @moderation.contact
}
2014-09-03 02:14:21 +02:00
}
assert_empty assigns(:moderation).errors
assert_redirected_to :moderations
end
2014-09-03 02:14:21 +02:00
test 'should not update event' do
2018-01-01 17:52:33 +01:00
patch moderation_url(@moderation), params: { event: { title: nil } }
2014-09-03 02:14:21 +02:00
assert_not_empty assigns(:moderation).errors
end
test 'can not update event concurrently' do
2018-01-01 17:52:33 +01:00
patch moderation_url(@moderation), params: {
event: { lock_version: @moderation.lock_version - 1 }
}
assert_redirected_to edit_moderation_path @moderation
end
test 'should reject spam' do
assert_difference 'Event.count', -1 do
2018-01-01 17:52:33 +01:00
delete moderation_url(@moderation), params: {
reason: 'r_0', event: { reason: '' }
}
end
assert_not_empty assigns(:moderation).reason
assert_empty assigns(:moderation).errors
assert_redirected_to :moderations
end
2014-07-01 15:50:39 +02:00
test 'should reject event' do
assert_difference 'Event.count', -1 do
2018-01-01 17:52:33 +01:00
delete moderation_url(@moderation), params: {
reason: 'r_1', event: { reason: '' }
}
2014-07-01 15:50:39 +02:00
end
2016-09-11 19:13:10 +02:00
assert_not_empty assigns(:moderation).reason
2014-07-01 15:50:39 +02:00
assert_empty assigns(:moderation).errors
assert_redirected_to :moderations
2014-07-01 15:50:39 +02:00
end
2014-09-03 02:14:21 +02:00
test 'should reject event with a reason' do
assert_difference 'Event.count', -1 do
2018-01-01 17:52:33 +01:00
delete moderation_url(@moderation), params: {
reason: 'r_4', event: { reason: 'bye' }
}
2014-09-03 02:14:21 +02:00
end
assert_equal 'bye', assigns(:moderation).reason
2014-09-03 02:14:21 +02:00
assert_empty assigns(:moderation).errors
assert_redirected_to :moderations
2014-09-03 02:14:21 +02:00
end
2014-01-06 11:22:39 +01:00
end