mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-23 07:09:39 +02:00
Implement invitation codes
This commit is contained in:
parent
533e6690c2
commit
b3a792c47d
11 changed files with 149 additions and 9 deletions
46
test/controllers/registrations_controller_test.rb
Normal file
46
test/controllers/registrations_controller_test.rb
Normal file
|
@ -0,0 +1,46 @@
|
|||
require "test_helper"
|
||||
|
||||
class RegistrationsControllerTest < ActionDispatch::IntegrationTest
|
||||
test "new" do
|
||||
get new_registration_url
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "create" do
|
||||
post registration_url, params: { user: {
|
||||
email: "john@example.com",
|
||||
password: "password",
|
||||
password_confirmation: "password" } }
|
||||
|
||||
assert_redirected_to root_url
|
||||
end
|
||||
|
||||
test "create when hosted requires an invitation code" do
|
||||
ENV["HOSTED"] = "true"
|
||||
|
||||
assert_no_difference "User.count" do
|
||||
post registration_url, params: { user: {
|
||||
email: "john@example.com",
|
||||
password: "password",
|
||||
password_confirmation: "password" } }
|
||||
assert_redirected_to new_registration_url
|
||||
|
||||
post registration_url, params: { user: {
|
||||
email: "john@example.com",
|
||||
password: "password",
|
||||
password_confirmation: "password",
|
||||
invite_code: "foo" } }
|
||||
assert_redirected_to new_registration_url
|
||||
end
|
||||
|
||||
assert_difference "User.count", +1 do
|
||||
post registration_url, params: { user: {
|
||||
email: "john@example.com",
|
||||
password: "password",
|
||||
password_confirmation: "password",
|
||||
invite_code: InviteCode.generate! } }
|
||||
end
|
||||
ensure
|
||||
ENV["HOSTED"] = nil
|
||||
end
|
||||
end
|
25
test/models/invite_code_test.rb
Normal file
25
test/models/invite_code_test.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
require "test_helper"
|
||||
|
||||
class InviteCodeTest < ActiveSupport::TestCase
|
||||
test "claim! destroys the invitation token" do
|
||||
code = InviteCode.generate!
|
||||
|
||||
assert_difference "InviteCode.count", -1 do
|
||||
InviteCode.claim! code
|
||||
end
|
||||
end
|
||||
|
||||
test "claim! returns true if valid" do
|
||||
assert InviteCode.claim!(InviteCode.generate!)
|
||||
end
|
||||
|
||||
test "claim! is falsy if invalid" do
|
||||
assert_not InviteCode.claim!("invalid")
|
||||
end
|
||||
|
||||
test "generate! creates a new invitation and returns its token" do
|
||||
assert_difference "InviteCode.count", +1 do
|
||||
assert_instance_of String, InviteCode.generate!
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue