Introduce capybara and first feature spec (#1801)
This commit introduces Capybara and the first feature spec.
I focused on coverage for log in for the first feature spec because that would
have prevented 624a9a7136 causing #1236.
			
			
This commit is contained in:
		
							
								
								
									
										1
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Gemfile
									
									
									
									
									
								
							| @@ -70,6 +70,7 @@ group :development, :test do | ||||
| end | ||||
|  | ||||
| group :test do | ||||
|   gem 'capybara' | ||||
|   gem 'faker' | ||||
|   gem 'rails-controller-testing' | ||||
|   gem 'rspec-sidekiq' | ||||
|   | ||||
							
								
								
									
										10
									
								
								Gemfile.lock
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Gemfile.lock
									
									
									
									
									
								
							| @@ -99,6 +99,13 @@ GEM | ||||
|       sshkit (~> 1.3) | ||||
|     capistrano-yarn (2.0.2) | ||||
|       capistrano (~> 3.0) | ||||
|     capybara (2.13.0) | ||||
|       addressable | ||||
|       mime-types (>= 1.16) | ||||
|       nokogiri (>= 1.3.3) | ||||
|       rack (>= 1.0.0) | ||||
|       rack-test (>= 0.5.4) | ||||
|       xpath (~> 2.0) | ||||
|     chunky_png (1.3.8) | ||||
|     climate_control (0.1.0) | ||||
|     cocaine (0.5.8) | ||||
| @@ -446,6 +453,8 @@ GEM | ||||
|     websocket-driver (0.6.5) | ||||
|       websocket-extensions (>= 0.1.0) | ||||
|     websocket-extensions (0.1.2) | ||||
|     xpath (2.0.0) | ||||
|       nokogiri (~> 1.3) | ||||
|  | ||||
| PLATFORMS | ||||
|   ruby | ||||
| @@ -465,6 +474,7 @@ DEPENDENCIES | ||||
|   capistrano-rails | ||||
|   capistrano-rbenv | ||||
|   capistrano-yarn | ||||
|   capybara | ||||
|   coffee-rails (~> 4.1.0) | ||||
|   devise | ||||
|   devise-two-factor | ||||
|   | ||||
							
								
								
									
										16
									
								
								spec/features/log_in_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								spec/features/log_in_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| 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) | ||||
|  | ||||
|     visit new_user_session_path | ||||
|     fill_in "user_email", with: email | ||||
|     fill_in "user_password", with: password | ||||
|     click_on "Log in" | ||||
|  | ||||
|     expect(page).to have_css "div.app-holder[data-react-class=Mastodon]" | ||||
|   end | ||||
| end | ||||
| @@ -7,6 +7,7 @@ require 'spec_helper' | ||||
| require 'rspec/rails' | ||||
| require 'webmock/rspec' | ||||
| require 'paperclip/matchers' | ||||
| require 'capybara/rspec' | ||||
|  | ||||
| Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } | ||||
|  | ||||
| @@ -24,6 +25,11 @@ RSpec.configure do |config| | ||||
|   config.include Devise::Test::ControllerHelpers, type: :controller | ||||
|   config.include Devise::TestHelpers, type: :view | ||||
|   config.include Paperclip::Shoulda::Matchers | ||||
|  | ||||
|   config.before :each, type: :feature do | ||||
|     https = ENV['LOCAL_HTTPS'] == 'true' | ||||
|     Capybara.app_host = "http#{https ? 's' : ''}://#{ENV.fetch('LOCAL_DOMAIN')}" | ||||
|   end | ||||
| end | ||||
|  | ||||
| RSpec::Sidekiq.configure do |config| | ||||
|   | ||||
		Reference in New Issue
	
	Block a user