require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'todos_controller' require 'recurring_todos_controller' class RecurringTodosTest < ActionController::IntegrationTest fixtures :users, :preferences, :projects, :contexts, :todos, :tags, :taggings, :recurring_todos def logs_in_as(user,plain_pass) @user = user post "/login", :user_login => @user.login, :user_password => plain_pass, :user_noexpiry => 'n' assert_response :redirect follow_redirect! assert_response :success assert_template "todos/index" end def test_deleting_recurring_todo_clears_reference_from_related_todos logs_in_as(users(:admin_user), 'abracadabra') rt = RecurringTodo.find(1) assert !rt.nil? # given there is a recurring todo assert rt.todos.size, 1 # and it has one todos referencing it # when I toggle the todo complete todo = Todo.find_by_recurring_todo_id(1) post "/todos/toggle_check/#{todo.id}", :_source_view => 'todo' todo.reload assert todo.completed? rt.reload # then there should be two todos referencing assert rt.todos.size, 2 todo2 = Todo.find(:first, :conditions => {:recurring_todo_id => rt.id, :state => 'active'}) assert_not_equal todo2.id, todo.id # and the todos should be different # when I delete the recurring todo delete_via_redirect "/recurring_todos/#{rt.id}", :_source_view => 'todo' todo.reload todo2.reload assert todo.recurring_todo_id.nil? assert todo2.recurring_todo_id.nil? end end