logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 92cd207c5083e60074e0ce123bb5b848a58e7417
parent: f5cd1383231af6922dbab4f54b7d29eacfec9d9e
Author: Chad Pytel <chad@thoughtbot.com>
Date:   Fri, 14 Apr 2017 19:21:02 -0400

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 624a9a7136159d460228a0c2f5df18a9ead3b7f2 causing #1236.

Diffstat:

MGemfile1+
MGemfile.lock10++++++++++
Aspec/features/log_in_spec.rb16++++++++++++++++
Mspec/rails_helper.rb6++++++
4 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/Gemfile b/Gemfile @@ -70,6 +70,7 @@ group :development, :test do end group :test do + gem 'capybara' gem 'faker' gem 'rails-controller-testing' gem 'rspec-sidekiq' diff --git a/Gemfile.lock b/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 diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb @@ -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 diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb @@ -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|