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 'rspec-rails'
|
||||||
gem 'factory_girl_rails', '~> 4.0'
|
gem 'factory_girl_rails', '~> 4.0'
|
||||||
gem 'faker'
|
gem 'faker'
|
||||||
|
gem 'capybara'
|
||||||
end
|
end
|
||||||
|
|
21
Gemfile.lock
21
Gemfile.lock
|
@ -69,6 +69,15 @@ GEM
|
||||||
net-ssh-gateway (>= 1.1.0)
|
net-ssh-gateway (>= 1.1.0)
|
||||||
capistrano-ext (1.2.1)
|
capistrano-ext (1.2.1)
|
||||||
capistrano (>= 1.0.0)
|
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)
|
chronic (0.9.0)
|
||||||
client_side_validations (3.1.4)
|
client_side_validations (3.1.4)
|
||||||
coderay (1.0.8)
|
coderay (1.0.8)
|
||||||
|
@ -96,6 +105,7 @@ GEM
|
||||||
railties (>= 3.0.0)
|
railties (>= 3.0.0)
|
||||||
faker (1.1.2)
|
faker (1.1.2)
|
||||||
i18n (~> 0.5)
|
i18n (~> 0.5)
|
||||||
|
ffi (1.4.0)
|
||||||
haml (3.1.7)
|
haml (3.1.7)
|
||||||
haml-rails (0.3.5)
|
haml-rails (0.3.5)
|
||||||
actionpack (>= 3.1, < 4.1)
|
actionpack (>= 3.1, < 4.1)
|
||||||
|
@ -153,6 +163,7 @@ GEM
|
||||||
net-ssh (2.6.7)
|
net-ssh (2.6.7)
|
||||||
net-ssh-gateway (1.2.0)
|
net-ssh-gateway (1.2.0)
|
||||||
net-ssh (>= 2.6.5)
|
net-ssh (>= 2.6.5)
|
||||||
|
nokogiri (1.5.10)
|
||||||
pdf-reader (1.2.0)
|
pdf-reader (1.2.0)
|
||||||
Ascii85 (~> 1.0.0)
|
Ascii85 (~> 1.0.0)
|
||||||
hashery (~> 2.0)
|
hashery (~> 2.0)
|
||||||
|
@ -215,11 +226,17 @@ GEM
|
||||||
rspec-expectations (~> 2.14.0)
|
rspec-expectations (~> 2.14.0)
|
||||||
rspec-mocks (~> 2.14.0)
|
rspec-mocks (~> 2.14.0)
|
||||||
ruby-rc4 (0.1.5)
|
ruby-rc4 (0.1.5)
|
||||||
|
rubyzip (0.9.9)
|
||||||
sass (3.2.1)
|
sass (3.2.1)
|
||||||
sass-rails (3.2.5)
|
sass-rails (3.2.5)
|
||||||
railties (~> 3.2.0)
|
railties (~> 3.2.0)
|
||||||
sass (>= 3.1.10)
|
sass (>= 3.1.10)
|
||||||
tilt (~> 1.3)
|
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)
|
simple-navigation (3.9.0)
|
||||||
activesupport (>= 2.3.2)
|
activesupport (>= 2.3.2)
|
||||||
simple-navigation-bootstrap (0.0.4)
|
simple-navigation-bootstrap (0.0.4)
|
||||||
|
@ -264,12 +281,15 @@ GEM
|
||||||
uniform_notifier (1.1.1)
|
uniform_notifier (1.1.1)
|
||||||
vegas (0.1.11)
|
vegas (0.1.11)
|
||||||
rack (>= 1.0.0)
|
rack (>= 1.0.0)
|
||||||
|
websocket (1.0.7)
|
||||||
whenever (0.8.1)
|
whenever (0.8.1)
|
||||||
activesupport (>= 2.3.4)
|
activesupport (>= 2.3.4)
|
||||||
chronic (>= 0.6.3)
|
chronic (>= 0.6.3)
|
||||||
wikicloth (0.8.0)
|
wikicloth (0.8.0)
|
||||||
builder
|
builder
|
||||||
expression_parser
|
expression_parser
|
||||||
|
xpath (1.0.0)
|
||||||
|
nokogiri (~> 1.3)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
@ -284,6 +304,7 @@ DEPENDENCIES
|
||||||
bullet
|
bullet
|
||||||
capistrano (= 2.13.5)
|
capistrano (= 2.13.5)
|
||||||
capistrano-ext
|
capistrano-ext
|
||||||
|
capybara
|
||||||
client_side_validations
|
client_side_validations
|
||||||
coffee-rails (~> 3.2.1)
|
coffee-rails (~> 3.2.1)
|
||||||
daemons
|
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/rails'
|
||||||
require 'rspec/autorun'
|
require 'rspec/autorun'
|
||||||
|
|
||||||
|
require 'capybara/rails'
|
||||||
|
require 'capybara/rspec'
|
||||||
|
|
||||||
# Requires supporting ruby files with custom matchers and macros, etc,
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
||||||
# in spec/support/ and its subdirectories.
|
# in spec/support/ and its subdirectories.
|
||||||
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
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 :flexmock
|
||||||
# config.mock_with :rr
|
# 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
|
# 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
|
# examples within a transaction, remove the following line or assign false
|
||||||
# instead of true.
|
# instead of true.
|
||||||
|
@ -35,6 +35,8 @@ RSpec.configure do |config|
|
||||||
# the seed, which is printed after each run.
|
# the seed, which is printed after each run.
|
||||||
# --seed 1234
|
# --seed 1234
|
||||||
config.order = "random"
|
config.order = "random"
|
||||||
|
|
||||||
|
config.include(SessionHelper)
|
||||||
end
|
end
|
||||||
|
|
||||||
module Faker
|
module Faker
|
||||||
|
@ -46,3 +48,12 @@ module Faker
|
||||||
end
|
end
|
||||||
end
|
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