0
0
Fork 0

Admission-based registrations mode (#10250)

Fix #6856
Fix #6951
This commit is contained in:
Eugen Rochko 2019-03-14 05:28:30 +01:00 committed by GitHub
parent 6e3936aa6f
commit 51e154f5e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
92 changed files with 282 additions and 249 deletions

View file

@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe AccountsController, type: :controller do
render_views
let(:alice) { Fabricate(:account, username: 'alice') }
let(:alice) { Fabricate(:account, username: 'alice', user: Fabricate(:user)) }
let(:eve) { Fabricate(:user) }
describe 'GET #show' do

View file

@ -62,22 +62,6 @@ RSpec.describe Admin::SettingsController, type: :controller do
expect(Setting.site_title).to eq 'New title'
end
end
context do
around do |example|
open_registrations = Setting.open_registrations
example.run
Setting.open_registrations = open_registrations
end
it 'typecasts open_registrations to boolean' do
Setting.open_registrations = false
patch :update, params: { form_admin_settings: { open_registrations: '1' } }
expect(response).to redirect_to(edit_admin_settings_path)
expect(Setting.open_registrations).to eq true
end
end
end
end
end

View file

@ -5,14 +5,14 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
shared_examples 'checks for enabled registrations' do |path|
around do |example|
open_registrations = Setting.open_registrations
registrations_mode = Setting.registrations_mode
example.run
Setting.open_registrations = open_registrations
Setting.registrations_mode = registrations_mode
end
it 'redirects if it is in single user mode while it is open for registration' do
Fabricate(:account)
Setting.open_registrations = true
Setting.registrations_mode = 'open'
expect(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
get path
@ -21,7 +21,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
it 'redirects if it is not open for registration while it is not in single user mode' do
Setting.open_registrations = false
Setting.registrations_mode = 'none'
expect(Rails.configuration.x).to receive(:single_user_mode).and_return(false)
get path
@ -55,13 +55,13 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
context do
around do |example|
open_registrations = Setting.open_registrations
registrations_mode = Setting.registrations_mode
example.run
Setting.open_registrations = open_registrations
Setting.registrations_mode = registrations_mode
end
it 'returns http success' do
Setting.open_registrations = true
Setting.registrations_mode = 'open'
get :new
expect(response).to have_http_status(200)
end
@ -83,13 +83,13 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
context do
around do |example|
open_registrations = Setting.open_registrations
registrations_mode = Setting.registrations_mode
example.run
Setting.open_registrations = open_registrations
Setting.registrations_mode = registrations_mode
end
subject do
Setting.open_registrations = true
Setting.registrations_mode = 'open'
request.headers["Accept-Language"] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678' } }
end

View file

@ -17,7 +17,15 @@ describe ApplicationController, type: :controller do
context 'when account is suspended' do
it 'returns http gone' do
account = Fabricate(:account, suspended: true)
account = Fabricate(:account, suspended: true, user: Fabricate(:user))
get 'success', params: { account_username: account.username }
expect(response).to have_http_status(410)
end
end
context 'when account is deleted by owner' do
it 'returns http gone' do
account = Fabricate(:account, suspended: true, user: nil)
get 'success', params: { account_username: account.username }
expect(response).to have_http_status(410)
end
@ -25,19 +33,19 @@ describe ApplicationController, type: :controller do
context 'when account is not suspended' do
it 'assigns @account' do
account = Fabricate(:account)
account = Fabricate(:account, user: Fabricate(:user))
get 'success', params: { account_username: account.username }
expect(assigns(:account)).to eq account
end
it 'sets link headers' do
account = Fabricate(:account, username: 'username')
account = Fabricate(:account, username: 'username', user: Fabricate(:user))
get 'success', params: { account_username: 'username' }
expect(response.headers['Link'].to_s).to eq '<http://test.host/.well-known/webfinger?resource=acct%3Ausername%40cb6e6126.ngrok.io>; rel="lrdd"; type="application/xrd+xml", <http://test.host/users/username.atom>; rel="alternate"; type="application/atom+xml", <https://cb6e6126.ngrok.io/users/username>; rel="alternate"; type="application/activity+json"'
end
it 'returns http success' do
account = Fabricate(:account)
account = Fabricate(:account, user: Fabricate(:user))
get 'success', params: { account_username: account.username }
expect(response).to have_http_status(200)
end