about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock10
-rw-r--r--spec/features/log_in_spec.rb16
-rw-r--r--spec/rails_helper.rb6
4 files changed, 33 insertions, 0 deletions
diff --git a/Gemfile b/Gemfile
index 3f80e92e1..d1a1e3234 100644
--- 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
index 2618f47f2..430e20440 100644
--- 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
new file mode 100644
index 000000000..4a634f6b8
--- /dev/null
+++ 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
index faac96982..536c5a774 100644
--- 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|