Files
fizzy/test/controllers/accounts/join_codes_controller_test.rb
T
Mike Dalessio fa118a7d83 Add validation for the join code usage limit
which is preferred to generating a database error
2025-12-10 10:10:08 -05:00

51 lines
1.4 KiB
Ruby

require "test_helper"
class Account::JoinCodesControllerTest < ActionDispatch::IntegrationTest
setup do
sign_in_as :kevin
end
test "reset" do
get account_join_code_path
assert_response :success
assert_changes -> { Current.account.join_code.reload.code } do
delete account_join_code_path
assert_redirected_to account_join_code_path
end
end
test "update" do
get edit_account_join_code_path
assert_response :success
put account_join_code_path, params: { account_join_code: { usage_limit: 5 } }
assert_equal 5, Current.account.join_code.reload.usage_limit
assert_redirected_to account_join_code_path
end
test "update requires admin" do
logout_and_sign_in_as :david
put account_join_code_path, params: { account_join_code: { usage_limit: 5 } }
assert_response :forbidden
end
test "destroy requires admin" do
logout_and_sign_in_as :david
delete account_join_code_path
assert_response :forbidden
end
test "update with extremely large usage_limit" do
# A number larger than bigint max (2^63 - 1 = 9223372036854775807)
huge_number = "99999999999999999999999999999999999"
put account_join_code_path, params: { account_join_code: { usage_limit: huge_number } }
assert_response :unprocessable_entity
assert_select ".txt-negative", text: /cannot be larger than the population of the planet/
end
end