Cover Auth::RegistrationsController more (#3353)
This commit is contained in:
		
				
					committed by
					
						
						Eugen Rochko
					
				
			
			
				
	
			
			
			
						parent
						
							8f991831b8
						
					
				
				
					commit
					67243bda31
				
			@@ -3,37 +3,110 @@ require 'rails_helper'
 | 
				
			|||||||
RSpec.describe Auth::RegistrationsController, type: :controller do
 | 
					RSpec.describe Auth::RegistrationsController, type: :controller do
 | 
				
			||||||
  render_views
 | 
					  render_views
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  shared_examples 'checks for enabled registrations' do |path|
 | 
				
			||||||
 | 
					    around do |example|
 | 
				
			||||||
 | 
					      open_registrations = Setting.open_registrations
 | 
				
			||||||
 | 
					      example.run
 | 
				
			||||||
 | 
					      Setting.open_registrations = open_registrations
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it 'redirects if it is in single user mode while it is open for registration' do
 | 
				
			||||||
 | 
					      Fabricate(:account)
 | 
				
			||||||
 | 
					      Setting.open_registrations = true
 | 
				
			||||||
 | 
					      expect(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      get path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(response).to redirect_to '/'
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it 'redirects if it is not open for registration while it is not in single user mode' do
 | 
				
			||||||
 | 
					      Setting.open_registrations = false
 | 
				
			||||||
 | 
					      expect(Rails.configuration.x).to receive(:single_user_mode).and_return(false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      get path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(response).to redirect_to '/'
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe 'GET #edit' do
 | 
				
			||||||
 | 
					    it 'returns http success' do
 | 
				
			||||||
 | 
					      request.env["devise.mapping"] = Devise.mappings[:user]
 | 
				
			||||||
 | 
					      sign_in(Fabricate(:user))
 | 
				
			||||||
 | 
					      get :edit
 | 
				
			||||||
 | 
					      expect(response).to have_http_status(:success)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe 'GET #update' do
 | 
				
			||||||
 | 
					    it 'returns http success' do
 | 
				
			||||||
 | 
					      request.env["devise.mapping"] = Devise.mappings[:user]
 | 
				
			||||||
 | 
					      sign_in(Fabricate(:user), scope: :user)
 | 
				
			||||||
 | 
					      post :update
 | 
				
			||||||
 | 
					      expect(response).to have_http_status(:success)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe 'GET #new' do
 | 
					  describe 'GET #new' do
 | 
				
			||||||
    before do
 | 
					    before do
 | 
				
			||||||
      Setting.open_registrations = true
 | 
					 | 
				
			||||||
      request.env["devise.mapping"] = Devise.mappings[:user]
 | 
					      request.env["devise.mapping"] = Devise.mappings[:user]
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it 'returns http success' do
 | 
					    context do
 | 
				
			||||||
      get :new
 | 
					      around do |example|
 | 
				
			||||||
      expect(response).to have_http_status(:success)
 | 
					        open_registrations = Setting.open_registrations
 | 
				
			||||||
 | 
					        example.run
 | 
				
			||||||
 | 
					        Setting.open_registrations = open_registrations
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'returns http success' do
 | 
				
			||||||
 | 
					        Setting.open_registrations = true
 | 
				
			||||||
 | 
					        get :new
 | 
				
			||||||
 | 
					        expect(response).to have_http_status(:success)
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    include_examples 'checks for enabled registrations', :new
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe 'POST #create' do
 | 
					  describe 'POST #create' do
 | 
				
			||||||
    let(:accept_language) { Rails.application.config.i18n.available_locales.sample.to_s }
 | 
					    let(:accept_language) { Rails.application.config.i18n.available_locales.sample.to_s }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    before do
 | 
					    before { request.env["devise.mapping"] = Devise.mappings[:user] }
 | 
				
			||||||
      Setting.open_registrations = true
 | 
					
 | 
				
			||||||
      request.env["devise.mapping"] = Devise.mappings[:user]
 | 
					    context do
 | 
				
			||||||
      request.headers["Accept-Language"] = accept_language
 | 
					      around do |example|
 | 
				
			||||||
      post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678' } }
 | 
					        open_registrations = Setting.open_registrations
 | 
				
			||||||
 | 
					        example.run
 | 
				
			||||||
 | 
					        Setting.open_registrations = open_registrations
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      subject do
 | 
				
			||||||
 | 
					        Setting.open_registrations = true
 | 
				
			||||||
 | 
					        request.headers["Accept-Language"] = accept_language
 | 
				
			||||||
 | 
					        post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678' } }
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'redirects to login page' do
 | 
				
			||||||
 | 
					        subject
 | 
				
			||||||
 | 
					        expect(response).to redirect_to new_user_session_path
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'creates user' do
 | 
				
			||||||
 | 
					        subject
 | 
				
			||||||
 | 
					        user = User.find_by(email: 'test@example.com')
 | 
				
			||||||
 | 
					        expect(user).to_not be_nil
 | 
				
			||||||
 | 
					        expect(user.locale).to eq(accept_language)
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it 'redirects to login page' do
 | 
					    it 'does nothing if user already exists' do
 | 
				
			||||||
      expect(response).to redirect_to new_user_session_path
 | 
					      Fabricate(:user, account: Fabricate(:account, username: 'test'))
 | 
				
			||||||
 | 
					      subject
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it 'creates user' do
 | 
					    include_examples 'checks for enabled registrations', :create
 | 
				
			||||||
      user = User.find_by(email: 'test@example.com')
 | 
					 | 
				
			||||||
      expect(user).to_not be_nil
 | 
					 | 
				
			||||||
      expect(user.locale).to eq(accept_language)
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe 'DELETE #destroy' do
 | 
					  describe 'DELETE #destroy' do
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user