Commit 7e162ba303c9d8674c6104c8e9e1a7843b772cf7
Committed by
Leandro Santos
1 parent
20e322c5
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Added unit and functional tests of tags in tasks
Showing
2 changed files
with
71 additions
and
4 deletions
Show diff stats
test/functional/tasks_controller_test.rb
@@ -66,6 +66,21 @@ class TasksControllerTest < ActionController::TestCase | @@ -66,6 +66,21 @@ class TasksControllerTest < ActionController::TestCase | ||
66 | assert_not_includes assigns(:tasks), task_spam | 66 | assert_not_includes assigns(:tasks), task_spam |
67 | end | 67 | end |
68 | 68 | ||
69 | + should 'save tasks tags' do | ||
70 | + | ||
71 | + requestor = fast_create(Person) | ||
72 | + | ||
73 | + task_one = Task.create!(:requestor => requestor, :target => profile, :data => {:name => 'Task Test'}) | ||
74 | + task_two = Task.create!(:requestor => requestor, :target => profile, :data => {:name => 'Another Task'}) | ||
75 | + | ||
76 | + post :save_tags, :task_id => task_one.id, :tag_list => 'noosfero,test' | ||
77 | + post :save_tags, :task_id => task_two.id, :tag_list => 'test' | ||
78 | + | ||
79 | + assert_includes task_one.tags_from(nil), 'test' | ||
80 | + assert_not_includes task_two.tags_from(nil), 'noosfero' | ||
81 | + | ||
82 | + end | ||
83 | + | ||
69 | should 'be able to finish a task' do | 84 | should 'be able to finish a task' do |
70 | t = profile.tasks.build; t.save! | 85 | t = profile.tasks.build; t.save! |
71 | 86 | ||
@@ -149,7 +164,7 @@ class TasksControllerTest < ActionController::TestCase | @@ -149,7 +164,7 @@ class TasksControllerTest < ActionController::TestCase | ||
149 | 164 | ||
150 | should 'create a ticket with profile requestor' do | 165 | should 'create a ticket with profile requestor' do |
151 | post :new, :profile => profile.identifier, :ticket => {:name => 'new task'} | 166 | post :new, :profile => profile.identifier, :ticket => {:name => 'new task'} |
152 | - | 167 | + |
153 | assert_equal profile, assigns(:ticket).requestor | 168 | assert_equal profile, assigns(:ticket).requestor |
154 | end | 169 | end |
155 | 170 | ||
@@ -381,13 +396,13 @@ class TasksControllerTest < ActionController::TestCase | @@ -381,13 +396,13 @@ class TasksControllerTest < ActionController::TestCase | ||
381 | t2 = CleanHouse.create!(:requestor => requestor, :target => profile) | 396 | t2 = CleanHouse.create!(:requestor => requestor, :target => profile) |
382 | t3 = FeedDog.create!(:requestor => requestor, :target => profile) | 397 | t3 = FeedDog.create!(:requestor => requestor, :target => profile) |
383 | 398 | ||
384 | - post :index, :filter_type => t1.type | 399 | + get :index, :filter_type => t1.type |
385 | 400 | ||
386 | assert_includes assigns(:tasks), t1 | 401 | assert_includes assigns(:tasks), t1 |
387 | assert_includes assigns(:tasks), t2 | 402 | assert_includes assigns(:tasks), t2 |
388 | assert_not_includes assigns(:tasks), t3 | 403 | assert_not_includes assigns(:tasks), t3 |
389 | 404 | ||
390 | - post :index | 405 | + get :index |
391 | 406 | ||
392 | assert_includes assigns(:tasks), t1 | 407 | assert_includes assigns(:tasks), t1 |
393 | assert_includes assigns(:tasks), t2 | 408 | assert_includes assigns(:tasks), t2 |
@@ -416,6 +431,22 @@ class TasksControllerTest < ActionController::TestCase | @@ -416,6 +431,22 @@ class TasksControllerTest < ActionController::TestCase | ||
416 | assert_includes assigns(:tasks), t3 | 431 | assert_includes assigns(:tasks), t3 |
417 | end | 432 | end |
418 | 433 | ||
434 | + should 'filter tasks by tags' do | ||
435 | + | ||
436 | + requestor = fast_create(Person) | ||
437 | + | ||
438 | + task_one = Task.create!(:requestor => requestor, :target => profile, :data => {:name => 'Task Test'}) | ||
439 | + task_two = Task.create!(:requestor => requestor, :target => profile, :data => {:name => 'Another Task'}) | ||
440 | + | ||
441 | + profile.tag(task_one, with: 'noosfero,test', on: :tags) | ||
442 | + profile.tag(task_two, with: 'test', on: :tags) | ||
443 | + | ||
444 | + get :index, :filter_tags => 'noosfero' | ||
445 | + | ||
446 | + assert_includes assigns(:tasks), task_one | ||
447 | + assert_not_includes assigns(:tasks), task_two | ||
448 | + end | ||
449 | + | ||
419 | should 'return tasks ordered accordingly and limited by pages' do | 450 | should 'return tasks ordered accordingly and limited by pages' do |
420 | time = Time.now | 451 | time = Time.now |
421 | person = fast_create(Person) | 452 | person = fast_create(Person) |
test/unit/task_test.rb
@@ -317,7 +317,7 @@ class TaskTest < ActiveSupport::TestCase | @@ -317,7 +317,7 @@ class TaskTest < ActiveSupport::TestCase | ||
317 | assert_includes Task.to(another_person), t4 | 317 | assert_includes Task.to(another_person), t4 |
318 | end | 318 | end |
319 | 319 | ||
320 | - should 'filter tasks by type with named_scope' do | 320 | + should 'filter tasks by type with named scope' do |
321 | class CleanHouse < Task; end | 321 | class CleanHouse < Task; end |
322 | class FeedDog < Task; end | 322 | class FeedDog < Task; end |
323 | requestor = fast_create(Person) | 323 | requestor = fast_create(Person) |
@@ -333,6 +333,25 @@ class TaskTest < ActiveSupport::TestCase | @@ -333,6 +333,25 @@ class TaskTest < ActiveSupport::TestCase | ||
333 | assert_includes Task.of(nil), t3 | 333 | assert_includes Task.of(nil), t3 |
334 | end | 334 | end |
335 | 335 | ||
336 | + should 'filter tasks by tags with named scope' do | ||
337 | + | ||
338 | + requestor = fast_create(Person) | ||
339 | + target = fast_create(Person) | ||
340 | + profile = sample_user | ||
341 | + | ||
342 | + task_one = Task.create!(:requestor => requestor, :target => target, :data => {:name => 'Task Test'}) | ||
343 | + task_two = Task.create!(:requestor => requestor, :target => target, :data => {:name => 'Another Task'}) | ||
344 | + | ||
345 | + profile.tag(task_one, with: 'noosfero,test', on: :tags) | ||
346 | + profile.tag(task_two, with: 'test', on: :tags) | ||
347 | + | ||
348 | + data = Task.tagged_with('noosfero', any: true) | ||
349 | + | ||
350 | + assert_includes data, task_one | ||
351 | + assert_not_includes data, task_two | ||
352 | + | ||
353 | + end | ||
354 | + | ||
336 | should 'order tasks by some attribute correctly' do | 355 | should 'order tasks by some attribute correctly' do |
337 | Task.destroy_all | 356 | Task.destroy_all |
338 | t1 = fast_create(Task, :status => 4, :created_at => Time.now + 1.hour) | 357 | t1 = fast_create(Task, :status => 4, :created_at => Time.now + 1.hour) |
@@ -440,6 +459,23 @@ class TaskTest < ActiveSupport::TestCase | @@ -440,6 +459,23 @@ class TaskTest < ActiveSupport::TestCase | ||
440 | assert_equal person, task.responsible | 459 | assert_equal person, task.responsible |
441 | end | 460 | end |
442 | 461 | ||
462 | + should 'save tasks tags' do | ||
463 | + | ||
464 | + requestor = fast_create(Person) | ||
465 | + target = fast_create(Person) | ||
466 | + profile = sample_user | ||
467 | + | ||
468 | + task_one = Task.create!(:requestor => requestor, :target => target, :data => {:name => 'Task Test'}) | ||
469 | + task_two = Task.create!(:requestor => requestor, :target => target, :data => {:name => 'Another Task'}) | ||
470 | + | ||
471 | + profile.tag(task_one, with: 'noosfero,test', on: :tags) | ||
472 | + profile.tag(task_two, with: 'test', on: :tags) | ||
473 | + | ||
474 | + assert_includes task_one.tags_from(nil), 'test' | ||
475 | + assert_not_includes task_two.tags_from(nil), 'noosfero' | ||
476 | + | ||
477 | + end | ||
478 | + | ||
443 | protected | 479 | protected |
444 | 480 | ||
445 | def sample_user | 481 | def sample_user |