add first integration test
This commit is contained in:
parent
427a023135
commit
d58ce31b7f
5 changed files with 72 additions and 3 deletions
1
Gemfile
1
Gemfile
|
@ -70,4 +70,5 @@ group :development, :test do
|
|||
gem 'rspec-rails'
|
||||
gem 'factory_girl_rails', '~> 4.0'
|
||||
gem 'faker'
|
||||
gem 'capybara'
|
||||
end
|
||||
|
|
21
Gemfile.lock
21
Gemfile.lock
|
@ -69,6 +69,15 @@ GEM
|
|||
net-ssh-gateway (>= 1.1.0)
|
||||
capistrano-ext (1.2.1)
|
||||
capistrano (>= 1.0.0)
|
||||
capybara (2.0.2)
|
||||
mime-types (>= 1.16)
|
||||
nokogiri (>= 1.3.3)
|
||||
rack (>= 1.0.0)
|
||||
rack-test (>= 0.5.4)
|
||||
selenium-webdriver (~> 2.0)
|
||||
xpath (~> 1.0.0)
|
||||
childprocess (0.3.9)
|
||||
ffi (~> 1.0, >= 1.0.11)
|
||||
chronic (0.9.0)
|
||||
client_side_validations (3.1.4)
|
||||
coderay (1.0.8)
|
||||
|
@ -96,6 +105,7 @@ GEM
|
|||
railties (>= 3.0.0)
|
||||
faker (1.1.2)
|
||||
i18n (~> 0.5)
|
||||
ffi (1.4.0)
|
||||
haml (3.1.7)
|
||||
haml-rails (0.3.5)
|
||||
actionpack (>= 3.1, < 4.1)
|
||||
|
@ -153,6 +163,7 @@ GEM
|
|||
net-ssh (2.6.7)
|
||||
net-ssh-gateway (1.2.0)
|
||||
net-ssh (>= 2.6.5)
|
||||
nokogiri (1.5.10)
|
||||
pdf-reader (1.2.0)
|
||||
Ascii85 (~> 1.0.0)
|
||||
hashery (~> 2.0)
|
||||
|
@ -215,11 +226,17 @@ GEM
|
|||
rspec-expectations (~> 2.14.0)
|
||||
rspec-mocks (~> 2.14.0)
|
||||
ruby-rc4 (0.1.5)
|
||||
rubyzip (0.9.9)
|
||||
sass (3.2.1)
|
||||
sass-rails (3.2.5)
|
||||
railties (~> 3.2.0)
|
||||
sass (>= 3.1.10)
|
||||
tilt (~> 1.3)
|
||||
selenium-webdriver (2.31.0)
|
||||
childprocess (>= 0.2.5)
|
||||
multi_json (~> 1.0)
|
||||
rubyzip
|
||||
websocket (~> 1.0.4)
|
||||
simple-navigation (3.9.0)
|
||||
activesupport (>= 2.3.2)
|
||||
simple-navigation-bootstrap (0.0.4)
|
||||
|
@ -264,12 +281,15 @@ GEM
|
|||
uniform_notifier (1.1.1)
|
||||
vegas (0.1.11)
|
||||
rack (>= 1.0.0)
|
||||
websocket (1.0.7)
|
||||
whenever (0.8.1)
|
||||
activesupport (>= 2.3.4)
|
||||
chronic (>= 0.6.3)
|
||||
wikicloth (0.8.0)
|
||||
builder
|
||||
expression_parser
|
||||
xpath (1.0.0)
|
||||
nokogiri (~> 1.3)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
@ -284,6 +304,7 @@ DEPENDENCIES
|
|||
bullet
|
||||
capistrano (= 2.13.5)
|
||||
capistrano-ext
|
||||
capybara
|
||||
client_side_validations
|
||||
coffee-rails (~> 3.2.1)
|
||||
daemons
|
||||
|
|
21
spec/integration/session_spec.rb
Normal file
21
spec/integration/session_spec.rb
Normal file
|
@ -0,0 +1,21 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'the session', :type => :feature do
|
||||
let(:user) { FactoryGirl.create :user }
|
||||
|
||||
describe 'login page', :type => :feature do
|
||||
it 'is accesible' do
|
||||
get login_path
|
||||
expect(response).to be_success
|
||||
end
|
||||
it 'logs me in' do
|
||||
login user.nick, user.password
|
||||
expect(page).to_not have_selector('.alert-error')
|
||||
end
|
||||
it 'does not log me in with wrong password' do
|
||||
login user.nick, 'XX'+user.password
|
||||
expect(page).to have_selector('.alert-error')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -4,6 +4,9 @@ require File.expand_path("../../config/environment", __FILE__)
|
|||
require 'rspec/rails'
|
||||
require 'rspec/autorun'
|
||||
|
||||
require 'capybara/rails'
|
||||
require 'capybara/rspec'
|
||||
|
||||
# Requires supporting ruby files with custom matchers and macros, etc,
|
||||
# in spec/support/ and its subdirectories.
|
||||
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
||||
|
@ -17,9 +20,6 @@ RSpec.configure do |config|
|
|||
# config.mock_with :flexmock
|
||||
# config.mock_with :rr
|
||||
|
||||
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
||||
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
||||
|
||||
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
||||
# examples within a transaction, remove the following line or assign false
|
||||
# instead of true.
|
||||
|
@ -35,6 +35,8 @@ RSpec.configure do |config|
|
|||
# the seed, which is printed after each run.
|
||||
# --seed 1234
|
||||
config.order = "random"
|
||||
|
||||
config.include(SessionHelper)
|
||||
end
|
||||
|
||||
module Faker
|
||||
|
@ -46,3 +48,12 @@ module Faker
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
# include default foodsoft scope in urls, so that *_path works
|
||||
ActionDispatch::Integration::Runner.class_eval do
|
||||
undef default_url_options
|
||||
def default_url_options(options={})
|
||||
{foodcoop: FoodsoftConfig.scope}.merge(options)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
15
spec/support/session_helper.rb
Normal file
15
spec/support/session_helper.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
|
||||
module SessionHelper
|
||||
|
||||
def login(nick=nil, password=nil)
|
||||
visit login_path
|
||||
if nick.nil?
|
||||
user = FactoryGirl.create :user
|
||||
nick, password = user.nick, user.password
|
||||
end
|
||||
fill_in 'nick', :with => nick
|
||||
fill_in 'password', :with => password
|
||||
find('input[type=submit]').click
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue