From e1c0ff0683ea7f7c8369e804b0ea5cf6605d6ea3 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Thu, 22 Mar 2012 16:10:37 +0100 Subject: [PATCH] fix timing issue in cucumber step and fix regression in adding multiple todos --- app/controllers/todos_controller.rb | 10 +++++++--- features/step_definitions/note_steps.rb | 4 +--- features/step_definitions/project_steps.rb | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 00a3eed2..fdd2ddc2 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -180,6 +180,7 @@ class TodosController < ApplicationController @todos_init = [] @predecessor = nil validates = true + errors = [] # first build all todos and check if they would validate on save params[:todo][:multiple_todos].split("\n").map do |line| @@ -188,7 +189,8 @@ class TodosController < ApplicationController :description => line) @todo.project_id = @project_id @todo.context_id = @context_id - validates = validates && !@todo.invalid? + validates = false if @todo.invalid? + @todos_init << @todo end end @@ -198,6 +200,7 @@ class TodosController < ApplicationController if validates @todos_init.each do |todo| @saved = todo.save + validates = validates && @saved if @predecessor && @saved && @sequential todo.add_predecessor(@predecessor) @@ -214,9 +217,10 @@ class TodosController < ApplicationController @predecessor = todo end else + @todos = @todos_init @saved = false end - + respond_to do |format| format.html { redirect_to :action => "index" } format.js do @@ -229,7 +233,7 @@ class TodosController < ApplicationController if @saved && @todos.size > 0 @default_tags = @todos[0].project.default_tags unless @todos[0].project.nil? else - @multiple_error = t('todos.next_action_needed') + @multiple_error = @todos.size > 0 ? "" : t('todos.next_action_needed') @saved = false @default_tags = current_user.projects.find_by_name(@initial_project_name).default_tags unless @initial_project_name.blank? end diff --git a/features/step_definitions/note_steps.rb b/features/step_definitions/note_steps.rb index 52496569..e1dd1211 100644 --- a/features/step_definitions/note_steps.rb +++ b/features/step_definitions/note_steps.rb @@ -75,9 +75,7 @@ Then /^I should see the note text$/ do end Then /^I should not see the note "([^"]*)"$/ do |note_content| - if page.has_selector?("div", :text => note_content) - page.find("div", :text => note_content).should_not be_visible - end + page.should_not have_selector("div", :text => note_content, :visible => true) end Then /^I should see the note "([^"]*)"$/ do |note_content| diff --git a/features/step_definitions/project_steps.rb b/features/step_definitions/project_steps.rb index 07845519..7f7a2853 100644 --- a/features/step_definitions/project_steps.rb +++ b/features/step_definitions/project_steps.rb @@ -104,6 +104,7 @@ end When /^I cancel the project edit form$/ do click_link "cancel_project_#{@project.id}" page.should_not have_css("submit_project_#{@project.id}") + wait_for_animations_to_end end When /^I edit the project description to "([^\"]*)"$/ do |new_description|