Keep ENV['LOCAL_HTTPS'] with ApplicationControllerSpec (fix random fail) (#3479)
* Keep ENV['LOCAL_HTTPS'] with ApplicationControllerSpec (fix random fail) * use climate_control
This commit is contained in:
		
							parent
							
								
									c00ead8a72
								
							
						
					
					
						commit
						41fa53253c
					
				
					 4 changed files with 19 additions and 12 deletions
				
			
		
							
								
								
									
										1
									
								
								Gemfile
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								Gemfile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -70,6 +70,7 @@ end
 | 
			
		|||
 | 
			
		||||
group :test do
 | 
			
		||||
  gem 'capybara', '~> 2.14'
 | 
			
		||||
  gem 'climate_control', '~> 0.2'
 | 
			
		||||
  gem 'faker', '~> 1.7'
 | 
			
		||||
  gem 'microformats2', '~> 3.0'
 | 
			
		||||
  gem 'rails-controller-testing', '~> 1.0'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -487,6 +487,7 @@ DEPENDENCIES
 | 
			
		|||
  capistrano-yarn (~> 2.0)
 | 
			
		||||
  capybara (~> 2.14)
 | 
			
		||||
  cld3 (~> 3.1)
 | 
			
		||||
  climate_control (~> 0.2)
 | 
			
		||||
  devise (~> 4.2)
 | 
			
		||||
  devise-two-factor (~> 3.0)
 | 
			
		||||
  doorkeeper (~> 4.2)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,18 +39,20 @@ describe ApplicationController, type: :controller do
 | 
			
		|||
 | 
			
		||||
  it "does not force ssl if LOCAL_HTTPS is not 'true'" do
 | 
			
		||||
    routes.draw { get 'success' => 'anonymous#success' }
 | 
			
		||||
    ENV['LOCAL_HTTPS'] = ''
 | 
			
		||||
    allow(Rails.env).to receive(:production?).and_return(true)
 | 
			
		||||
    get 'success'
 | 
			
		||||
    expect(response).to have_http_status(:success)
 | 
			
		||||
    ClimateControl.modify LOCAL_HTTPS: '' do
 | 
			
		||||
      allow(Rails.env).to receive(:production?).and_return(true)
 | 
			
		||||
      get 'success'
 | 
			
		||||
      expect(response).to have_http_status(:success)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  it "forces ssl if LOCAL_HTTPS is 'true'" do
 | 
			
		||||
    routes.draw { get 'success' => 'anonymous#success' }
 | 
			
		||||
    ENV['LOCAL_HTTPS'] = 'true'
 | 
			
		||||
    allow(Rails.env).to receive(:production?).and_return(true)
 | 
			
		||||
    get 'success'
 | 
			
		||||
    expect(response).to redirect_to('https://test.host/success')
 | 
			
		||||
    ClimateControl.modify LOCAL_HTTPS: 'true' do
 | 
			
		||||
      allow(Rails.env).to receive(:production?).and_return(true)
 | 
			
		||||
      get 'success'
 | 
			
		||||
      expect(response).to redirect_to('https://test.host/success')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'helper_method :current_account' do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,14 @@
 | 
			
		|||
require "rails_helper"
 | 
			
		||||
 | 
			
		||||
feature "Log in" do
 | 
			
		||||
  scenario "A valid email and password user is able to log in" do
 | 
			
		||||
    email = "test@example.com"
 | 
			
		||||
    password = "password"
 | 
			
		||||
    Fabricate(:user, email: email, password: password)
 | 
			
		||||
  given(:email)    { "test@examle.com" }
 | 
			
		||||
  given(:password) { "password" }
 | 
			
		||||
 | 
			
		||||
  background do
 | 
			
		||||
    Fabricate(:user, email: email, password: password)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  scenario "A valid email and password user is able to log in" do
 | 
			
		||||
    visit new_user_session_path
 | 
			
		||||
    fill_in "user_email", with: email
 | 
			
		||||
    fill_in "user_password", with: password
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue