This commit is contained in:
Jason Denney
2012-12-04 00:46:15 -05:00
commit aa3ed3d43b
97 changed files with 2398 additions and 0 deletions
@@ -0,0 +1,30 @@
Feature: Create a team
In order to gather my friends to participate in a hunt
As a user
I want to create a team
Background:
Given a user "test@example.com" with password "password"
When I login with email "test@example.com" and password "password"
And I go to create a new team
Scenario: View the create a team form
Then I should see the create a team form
Scenario: Errors on form are displayed
When I submit the new team form
Then I should see an error message about the team name
Scenario: Created team is in list
When I fill out the team form with team name "Happy Trackers"
And I submit the new team form
And I go to the team list
Then I should see "Happy Trackers" in the team list
Scenario: Create a private team
When I fill out the team form with team name "Happy Trackers"
And I check the box to make my team private
And I submit the new team form
And I go to the team list
Then the team list should be:
| Happy Trackers* |
@@ -0,0 +1,34 @@
Feature: List teams
In order to see the teams
As a user
I want to see them sorted by name and paginated
Background:
Given a user "test@example.com" with password "password"
When I login with email "test@example.com" and password "password"
Scenario: Team list paginated to 15
Given 20 teams exist
And I go to the team list
Then I should see 15 teams in the team list
When I go to the next page
Then I should see 5 teams in the team list
Scenario: Team list should be alphabetical by name
Given the following teams exist:
| name |
| Bad |
| Car |
| Art |
| Door |
| ear |
| apple |
And I go to the team list
Then the team list should be:
| apple |
| Art |
| Bad |
| Car |
| Door |
| ear |
+15
View File
@@ -0,0 +1,15 @@
step "show me the page" do
save_and_open_page
end
step "I click the link :link_text" do |link_text|
page.click_link link_text
end
step "I click the button :button_text" do |button_text|
page.click_button button_text
end
step "I fill out the form with :model :field_name :field_value" do |model, field_name, field_value|
page.fill_in "#{model}_#{field_name}", :with => field_value
end
@@ -0,0 +1,40 @@
FactoryGirl.factories.each do |factory|
factory.compile
factory.human_names.each do |human_name|
step "the following #{human_name} exists:" do |table|
table.hashes.each do |human_hash|
attributes = convert_human_hash_to_attribute_hash(human_hash, factory.associations)
FactoryGirl.create(factory.name, attributes)
end
end
step "the following #{human_name.pluralize} exist:" do |table|
table.hashes.each do |human_hash|
attributes = convert_human_hash_to_attribute_hash(human_hash, factory.associations)
FactoryGirl.create(factory.name, attributes)
end
end
step "a(n) #{human_name} exists" do
FactoryGirl.create(factory.name)
end
step ":count #{human_name.pluralize} exist" do |count|
FactoryGirl.create_list(factory.name, count.to_i)
end
if factory.build_class.respond_to?(:columns)
factory.build_class.columns.each do |column|
name = column.respond_to?(:name) ? column.name : column.to_s
human_column_name = name.downcase.gsub('_', ' ')
step "a(n) #{human_name} exists with a(n) #{human_column_name} of :value" do |value|
FactoryGirl.create(factory.name, name => value)
end
step ":count #{human_name.pluralize} exist with a(n) #{human_column_name} of :value" do |count, value|
FactoryGirl.create_list(factory.name, count.to_i, name => value)
end
end
end
end
end
+7
View File
@@ -0,0 +1,7 @@
step "I login with email :email and password :password" do |email, password|
visit new_user_session_path
fill_in 'Email', :with => email
fill_in 'Password', :with => password
click_button 'Sign in'
page.should have_content("Signed in successfully.")
end
@@ -0,0 +1,3 @@
step "I go to the next page" do
page.find('.pagination li.next a').click
end
+72
View File
@@ -0,0 +1,72 @@
step "I go to create a new team" do
visit new_team_path
end
step 'I go to the team list' do
visit teams_path
end
step "I should see the create a team form" do
page.should have_field 'Name'
page.should have_field 'Max members', :with => '16'
end
step "I submit the new team form" do
page.find('form#new_team').find('input[type=submit]').click
end
step "I fill out the team form with team name :team_name" do |team_name|
page.fill_in 'Name', :with => team_name
end
step "I check the box to make my team private" do
page.check "Private team?"
end
step 'I should see an error message about the team name' do
within 'form#new_team' do
page.should have_content "can't be blank"
end
end
step 'I should see :team_name in the team list' do |team_name|
within '.teams' do
page.should have_content(team_name)
end
end
step 'I should see :count teams in the team list' do |count|
within '.teams' do
page.all('h3.team').count.should == count.to_i
end
end
step 'the team list should be:' do |table|
within '.teams' do
actual = page.all('h3.team').collect { |h3| [h3.text] }
table.raw.should == actual
end
end
step 'I should have the option of joining the team' do
page.should have_button 'Join team'
end
step 'I should not have the option of joining the team' do
page.should have_no_button 'Join team'
end
step ':user_email should be in the team member list' do |user_email|
user = User.find_by_email(user_email)
assert user, "Could not find user by email: #{user_email}"
within '.members' do
page.should have_content user.to_s
end
end
step ':user_email captains the team :team_name' do |user_email, team_name|
user = User.find_by_email(user_email)
assert user, "Could not find user by email: #{user_email}"
FactoryGirl.create(:team, :name => team_name, :captain => user)
end
+3
View File
@@ -0,0 +1,3 @@
step "a user :email with password :password" do |email, password|
FactoryGirl.create(:user, :email => email, :password => password)
end