Add: #348 新規登録の上限人数 (#527)

* Add: #348 新規登録の上限人数

* Fix test

* Fix test

* Wip

* Fix test

* Add invite support

* Wip

* Fix test

* Fix test

* Fix test
This commit is contained in:
KMY(雪あすか) 2024-02-12 22:05:32 +09:00 committed by GitHub
parent d7cc6b788c
commit e317edecb8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 362 additions and 6 deletions

View file

@ -233,6 +233,38 @@ RSpec.describe User do
expect(TriggerWebhookWorker).to_not have_received(:perform_async).with('account.approved', 'Account', user.account_id)
end
end
context 'when max user count is set' do
let(:users_max) { 3 }
before do
Fabricate(:user)
Fabricate(:user)
Setting.registrations_limit = users_max
end
it 'creates user' do
expect { subject }.to_not raise_error
expect(user.confirmed?).to be true
end
context 'with limit is reached' do
let(:users_max) { 2 }
it 'does not create user' do
expect { subject }.to raise_error Mastodon::ValidationError
expect(user.confirmed?).to be false
end
it 'but creates user when invited' do
invite = Fabricate(:invite, user: Fabricate(:user), max_uses: nil, expires_at: 1.hour.from_now)
user.update!(invite: invite)
expect { subject }.to_not raise_error
expect(user.confirmed?).to be true
end
end
end
end
end