mirror of
https://github.com/TracksApp/tracks.git
synced 2026-01-07 01:38:50 +01:00
get the first cucumber feature running: calendar
This commit is contained in:
parent
393eae1937
commit
c9d64e6f4b
28 changed files with 400 additions and 418 deletions
|
|
@ -6,7 +6,7 @@ end
|
|||
Given /^there exists an active context called "([^"]*)" for user "([^"]*)"$/ do |context_name, login|
|
||||
user = User.find_by_login(login)
|
||||
user.should_not be_nil
|
||||
@context = user.contexts.find_or_create(:name => context_name, :hide => false)
|
||||
@context = user.contexts.find_or_create_by_name(:name => context_name, :hide => false)
|
||||
end
|
||||
|
||||
Given /^there exists a context called "([^"]*)" for user "([^"]*)"$/ do |context_name, login|
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ Given /^I have logged in as "(.*)" with password "(.*)"$/ do |username, password
|
|||
fill_in "Login", :with => username
|
||||
fill_in "Password", :with => password
|
||||
uncheck "Stay logged in:"
|
||||
click_button "Sign in »"
|
||||
click_button "Sign in"
|
||||
|
||||
logout_regexp = @mobile_interface ? "Logout" : "Logout \(#{username}\)"
|
||||
page.should have_content(logout_regexp)
|
||||
|
|
@ -14,7 +14,7 @@ When /^I submit the login form as user "([^\"]*)" with password "([^\"]*)"$/ do
|
|||
fill_in 'Login', :with => username
|
||||
fill_in 'Password', :with => password
|
||||
uncheck "Stay logged in:"
|
||||
click_button "Sign in »"
|
||||
click_button "Sign in"
|
||||
end
|
||||
|
||||
When /^my session expires$/ do
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Given /^I have a todo "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |d
|
|||
end
|
||||
|
||||
Given /^I have a todo "([^"]*)" in the context "([^"]*)" which is due tomorrow$/ do |description, context_name|
|
||||
context = @current_user.contexts.find_or_create(:name => context_name)
|
||||
context = @current_user.contexts.find_or_create_by_name(context_name)
|
||||
@todo = @current_user.todos.create!(:context_id => context.id, :description => description)
|
||||
@todo.due = @todo.created_at + 1.day
|
||||
@todo.save!
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
Given /^the following user records?$/ do |table|
|
||||
User.delete_all
|
||||
table.hashes.each do |hash|
|
||||
user = Factory(:user, hash)
|
||||
user = FactoryGirl.create(:user, hash)
|
||||
user.create_preference({:locale => 'en'})
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,30 +1,10 @@
|
|||
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
||||
# files.
|
||||
|
||||
ENV["RAILS_ENV"] ||= "cucumber"
|
||||
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
|
||||
|
||||
require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
|
||||
require 'cucumber/rails/rspec'
|
||||
require 'cucumber/rails/world'
|
||||
require 'cucumber/rails/active_record'
|
||||
require 'cucumber/web/tableish'
|
||||
require 'aruba/cucumber'
|
||||
|
||||
require 'capybara/rails'
|
||||
require 'capybara/cucumber'
|
||||
require 'capybara/session'
|
||||
# BUG in this version of cucumber/capybara: require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
|
||||
|
||||
Capybara.default_wait_time = 5
|
||||
Capybara.javascript_driver = ENV["JS_DRIVER"] ? ENV["JS_DRIVER"].to_sym : :selenium
|
||||
|
||||
if Capybara.javascript_driver == :webkit
|
||||
require 'capybara/webkit'
|
||||
end
|
||||
require 'cucumber/rails'
|
||||
|
||||
# Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
|
||||
# order to ease the transition to Capybara we set the default here. If you'd
|
||||
|
|
@ -32,39 +12,48 @@ end
|
|||
# steps to use the XPath syntax.
|
||||
Capybara.default_selector = :css
|
||||
|
||||
Capybara.prefer_visible_elements = true
|
||||
|
||||
# If you set this to false, any error raised from within your app will bubble
|
||||
# up to your step definition and out to cucumber unless you catch it somewhere
|
||||
# on the way. You can make Rails rescue errors and render error pages on a
|
||||
# per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
|
||||
# By default, any exception happening in your Rails application will bubble up
|
||||
# to Cucumber so that your scenario will fail. This is a different from how
|
||||
# your application behaves in the production environment, where an error page will
|
||||
# be rendered instead.
|
||||
#
|
||||
# Sometimes we want to override this default behaviour and allow Rails to rescue
|
||||
# exceptions and display an error page (just like when the app is running in production).
|
||||
# Typical scenarios where you want to do this is when you test your error pages.
|
||||
# There are two ways to allow Rails to rescue exceptions:
|
||||
#
|
||||
# 1) Tag your scenario (or feature) with @allow-rescue
|
||||
#
|
||||
# 2) Set the value below to true. Beware that doing this globally is not
|
||||
# recommended as it will mask a lot of errors for you!
|
||||
#
|
||||
# If you set this to true, Rails will rescue all errors and render error
|
||||
# pages, more or less in the same way your application would behave in the
|
||||
# default production environment. It's not recommended to do this for all
|
||||
# of your scenarios, as this makes it hard to discover errors in your application.
|
||||
ActionController::Base.allow_rescue = false
|
||||
|
||||
# If you set this to true, each scenario will run in a database transaction.
|
||||
# You can still turn off transactions on a per-scenario basis, simply tagging
|
||||
# a feature or scenario with the @no-txn tag. If you are using Capybara,
|
||||
# tagging with @culerity or @javascript will also turn transactions off.
|
||||
#
|
||||
# If you set this to false, transactions will be off for all scenarios,
|
||||
# regardless of whether you use @no-txn or not.
|
||||
#
|
||||
# Beware that turning transactions off will leave data in your database
|
||||
# after each scenario, which can lead to hard-to-debug failures in
|
||||
# subsequent scenarios. If you do this, we recommend you create a Before
|
||||
# block that will explicitly put your database in a known state.
|
||||
Cucumber::Rails::World.use_transactional_fixtures = true
|
||||
|
||||
# How to clean your database when transactions are turned off. See
|
||||
# http://github.com/bmabey/database_cleaner for more info.
|
||||
if defined?(ActiveRecord::Base)
|
||||
begin
|
||||
require 'database_cleaner'
|
||||
DatabaseCleaner.strategy = :truncation
|
||||
rescue LoadError => ignore_if_database_cleaner_not_present
|
||||
end
|
||||
# Remove/comment out the lines below if your app doesn't have a database.
|
||||
# For some databases (like MongoDB and CouchDB) you may need to use :truncation instead.
|
||||
begin
|
||||
DatabaseCleaner.strategy = :transaction
|
||||
rescue NameError
|
||||
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
|
||||
end
|
||||
|
||||
# You may also want to configure DatabaseCleaner to use different strategies for certain features and scenarios.
|
||||
# See the DatabaseCleaner documentation for details. Example:
|
||||
#
|
||||
# Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do
|
||||
# # { :except => [:widgets] } may not do what you expect here
|
||||
# # as tCucumber::Rails::Database.javascript_strategy overrides
|
||||
# # this setting.
|
||||
# DatabaseCleaner.strategy = :truncation
|
||||
# end
|
||||
#
|
||||
# Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do
|
||||
# DatabaseCleaner.strategy = :transaction
|
||||
# end
|
||||
#
|
||||
|
||||
# Possible values are :truncation and :transaction
|
||||
# The :transaction strategy is faster, but might give you threading problems.
|
||||
# See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature
|
||||
Cucumber::Rails::Database.javascript_strategy = :truncation
|
||||
|
||||
|
|
|
|||
23
features/support/factories/factories.rb
Normal file
23
features/support/factories/factories.rb
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
FactoryGirl.define do
|
||||
factory :user do
|
||||
sequence(:login) { |n| "testuser#{n}" }
|
||||
password "secret"
|
||||
password_confirmation { |user| user.password }
|
||||
is_admin false
|
||||
end
|
||||
|
||||
factory :context do
|
||||
sequence(:name) { |n| "testcontext#{n}" }
|
||||
hide false
|
||||
created_at Time.now.utc
|
||||
end
|
||||
|
||||
factory :project do
|
||||
sequence(:name) { |n| "testproject#{n}" }
|
||||
end
|
||||
|
||||
factory :todo do
|
||||
sequence(:description) { |n| "testtodo#{n}" }
|
||||
association :context
|
||||
end
|
||||
end
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
require 'factory_girl'
|
||||
Dir.glob(File.join(File.dirname(__FILE__), '../../spec/factories/*.rb')).each {|f| require f }
|
||||
# require 'factory_girl'
|
||||
# Dir.glob(File.join(File.dirname(__FILE__), 'factories/*.rb')).each {|f| require f }
|
||||
13
features/support/tracks_cucumber_settings.rb
Normal file
13
features/support/tracks_cucumber_settings.rb
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
require 'aruba/cucumber'
|
||||
|
||||
require 'capybara/rails'
|
||||
require 'capybara/cucumber'
|
||||
require 'capybara/session'
|
||||
# BUG in this version of cucumber/capybara: require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
|
||||
|
||||
Capybara.default_wait_time = 5
|
||||
Capybara.javascript_driver = ENV["JS_DRIVER"] ? ENV["JS_DRIVER"].to_sym : :selenium
|
||||
|
||||
if Capybara.javascript_driver == :webkit
|
||||
require 'capybara/webkit'
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue