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:
parent
f5cd138323
commit
92cd207c50
1
Gemfile
1
Gemfile
|
@ -70,6 +70,7 @@ group :development, :test do
|
||||||
end
|
end
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
|
gem 'capybara'
|
||||||
gem 'faker'
|
gem 'faker'
|
||||||
gem 'rails-controller-testing'
|
gem 'rails-controller-testing'
|
||||||
gem 'rspec-sidekiq'
|
gem 'rspec-sidekiq'
|
||||||
|
|
10
Gemfile.lock
10
Gemfile.lock
|
@ -99,6 +99,13 @@ GEM
|
||||||
sshkit (~> 1.3)
|
sshkit (~> 1.3)
|
||||||
capistrano-yarn (2.0.2)
|
capistrano-yarn (2.0.2)
|
||||||
capistrano (~> 3.0)
|
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)
|
chunky_png (1.3.8)
|
||||||
climate_control (0.1.0)
|
climate_control (0.1.0)
|
||||||
cocaine (0.5.8)
|
cocaine (0.5.8)
|
||||||
|
@ -446,6 +453,8 @@ GEM
|
||||||
websocket-driver (0.6.5)
|
websocket-driver (0.6.5)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.2)
|
websocket-extensions (0.1.2)
|
||||||
|
xpath (2.0.0)
|
||||||
|
nokogiri (~> 1.3)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
@ -465,6 +474,7 @@ DEPENDENCIES
|
||||||
capistrano-rails
|
capistrano-rails
|
||||||
capistrano-rbenv
|
capistrano-rbenv
|
||||||
capistrano-yarn
|
capistrano-yarn
|
||||||
|
capybara
|
||||||
coffee-rails (~> 4.1.0)
|
coffee-rails (~> 4.1.0)
|
||||||
devise
|
devise
|
||||||
devise-two-factor
|
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 'rspec/rails'
|
||||||
require 'webmock/rspec'
|
require 'webmock/rspec'
|
||||||
require 'paperclip/matchers'
|
require 'paperclip/matchers'
|
||||||
|
require 'capybara/rspec'
|
||||||
|
|
||||||
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
|
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::Test::ControllerHelpers, type: :controller
|
||||||
config.include Devise::TestHelpers, type: :view
|
config.include Devise::TestHelpers, type: :view
|
||||||
config.include Paperclip::Shoulda::Matchers
|
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
|
end
|
||||||
|
|
||||||
RSpec::Sidekiq.configure do |config|
|
RSpec::Sidekiq.configure do |config|
|
||||||
|
|
Reference in a new issue