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

78 lines
2.0 KiB
Ruby

require 'test_helper'
# Event management, moderation means refusal, acceptation or demands for more
# information
class ModerationsControllerTest < ActionController::TestCase
include Devise::TestHelpers
setup do
@moderation = events :one
sign_in users(:one)
end
test 'should preview event' do
patch :preview, id: @moderation, event: {
title: 'hello world',
related_region: regions(:region_one)
}
end
test 'should edit event' do
put :update, id: @moderation, event: {
title: 'hello world',
related_region: regions(:region_one)
}
assert_redirected_to moderations_path
end
test 'should accept event' do
@moderation = events :proposed
decision = @moderation.decision_time
assert !@moderation.moderated?
assert_difference 'Event.moderated.count' do
put :accept, id: @moderation
end
assert assigns(:moderation).moderated?
assert_empty assigns(:moderation).errors
assert decision < assigns(:moderation).decision_time
assert_redirected_to moderations_path
end
test 'should update event' do
patch :update, id: @moderation, secret: 'MyString', event: {
title: @moderation.title,
start_time: @moderation.start_time,
end_time: @moderation.end_time,
description: @moderation.description,
city: @moderation.city,
region: @moderation.related_region,
locality: @moderation.locality,
url: @moderation.url,
contact: @moderation.contact,
moderated: @moderation.moderated,
secret: @moderation.secret,
submission_time: @moderation.submission_time,
submitter: @moderation.submitter,
tags: @moderation.tags }
assert_empty assigns(:moderation).errors
assert_redirected_to moderations_path
end
test 'should reject event' do
assert_difference 'Event.count', -1 do
delete :destroy, id: @moderation
end
assert_empty assigns(:moderation).errors
assert_redirected_to moderations_path
end
end