mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 23:30:12 +01:00
improving todo creation tests and implement context, project and tag setting/creation
This commit is contained in:
parent
3180164ed0
commit
9eae8a7068
2 changed files with 110 additions and 44 deletions
|
|
@ -8,8 +8,8 @@ class TodoXmlApiTest < ActionController::IntegrationTest
|
|||
|
||||
def setup
|
||||
assert_test_environment_ok
|
||||
@user = users(:other_user)
|
||||
@password = 'sesame'
|
||||
@user = users(:admin_user)
|
||||
@password = 'abracadabra'
|
||||
end
|
||||
|
||||
def test_get_tickler_succeeds
|
||||
|
|
@ -51,39 +51,73 @@ class TodoXmlApiTest < ActionController::IntegrationTest
|
|||
end
|
||||
|
||||
def test_post_create_todo_with_dependencies
|
||||
old_count = @user.todos.count
|
||||
authenticated_post_xml_to_todo_create "
|
||||
<todo>
|
||||
<description>this will succeed 2</description>
|
||||
<context_id type='integer'>10</context_id>
|
||||
<project_id type='integer'>4</project_id>
|
||||
<context_id>8</context_id>
|
||||
<project_id>1</project_id>
|
||||
<predecessor_dependencies>
|
||||
<predecessor>12</predecessor>
|
||||
<predecessor>5</predecessor>
|
||||
<predecessor>6</predecessor>
|
||||
</predecessor_dependencies>
|
||||
<successor_dependencies>
|
||||
<successor>12</successor>
|
||||
</successor_dependencies>
|
||||
</todo>"
|
||||
|
||||
assert_response :success
|
||||
assert_equal @user.todos.count, old_count + 1
|
||||
todo = @user.todos.find_by_description("this will succeed 2")
|
||||
assert_not_nil todo
|
||||
assert !todo.uncompleted_predecessors.empty?
|
||||
end
|
||||
|
||||
def test_post_create_todo_with_tags
|
||||
old_count = @user.todos.count
|
||||
authenticated_post_xml_to_todo_create "
|
||||
<todo>
|
||||
<description>this will succeed 2</description>
|
||||
<context_id type='integer'>10</context_id>
|
||||
<project_id type='integer'>4</project_id>
|
||||
<description>this will succeed 3</description>
|
||||
<context_id type='integer'>8</context_id>
|
||||
<project_id type='integer'>1</project_id>
|
||||
<tags>
|
||||
<tag><name>starred</name></tag>
|
||||
<tag><name>starred2</name></tag>
|
||||
</tags>
|
||||
</todo>"
|
||||
|
||||
puts @response.body
|
||||
assert_response :success
|
||||
assert_equal @user.todos.count, old_count + 1
|
||||
todo = @user.todos.find_by_description("this will succeed 3")
|
||||
assert_not_nil todo
|
||||
assert !todo.starred?
|
||||
end
|
||||
|
||||
def test_post_create_todo_with_new_context
|
||||
authenticated_post_xml_to_todo_create "
|
||||
<todo>
|
||||
<description>this will succeed 4</description>
|
||||
<project_id>1</project_id>
|
||||
<context>
|
||||
<name>@SomeNewContext</name>
|
||||
</context>
|
||||
</todo>"
|
||||
|
||||
assert_response :success
|
||||
todo = @user.todos.find_by_description("this will succeed 4")
|
||||
assert_not_nil todo
|
||||
assert_not_nil todo.context
|
||||
assert_equal todo.context.name, "@SomeNewContext"
|
||||
end
|
||||
|
||||
def test_post_create_todo_with_new_context
|
||||
authenticated_post_xml_to_todo_create "
|
||||
<todo>
|
||||
<description>this will succeed 5</description>
|
||||
<context_id>8</context_id>
|
||||
<project>
|
||||
<name>Make even more money</name>
|
||||
</project>
|
||||
</todo>"
|
||||
|
||||
assert_response :success
|
||||
todo = @user.todos.find_by_description("this will succeed 5")
|
||||
assert_not_nil todo
|
||||
assert_not_nil todo.project
|
||||
assert_equal todo.project.name, "Make even more money"
|
||||
end
|
||||
|
||||
def test_post_create_todo_with_wrong_project_and_context_id
|
||||
|
|
@ -101,7 +135,7 @@ class TodoXmlApiTest < ActionController::IntegrationTest
|
|||
|
||||
private
|
||||
|
||||
def authenticated_post_xml_to_todo_create(postdata = @@valid_postdata, user = users(:other_user).login, password = 'sesame')
|
||||
def authenticated_post_xml_to_todo_create(postdata = @@valid_postdata, user = @user.login, password = @password)
|
||||
authenticated_post_xml "/todos", user, password, postdata
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue