@@ -80,6 +80,23 @@ defmodule CodeCorps.Task.QueryTest do
8080 list_sorted_ids ( % { "status" => "closed" } )
8181 end
8282
83+ test "filter by archived" do
84+ tasks = insert_list ( 3 , :task )
85+ task_ids = tasks |> get_sorted_ids ( )
86+
87+ archived_tasks = insert_list ( 3 , :task , archived: true )
88+ archived_task_ids = archived_tasks |> get_sorted_ids ( )
89+
90+ assert task_ids ==
91+ list_sorted_ids ( % { } )
92+
93+ assert task_ids ==
94+ list_sorted_ids ( % { "archived" => false } )
95+
96+ assert archived_task_ids ==
97+ list_sorted_ids ( % { "archived" => true } )
98+ end
99+
83100 test "works with multiple filters" do
84101 project_1 = insert ( :project )
85102 project_2 = insert ( :project )
@@ -97,6 +114,10 @@ defmodule CodeCorps.Task.QueryTest do
97114 task_7 = insert ( :task , status: "open" , project: project_2 , task_list: list_2 )
98115 task_8 = insert ( :task , status: "closed" , project: project_2 , task_list: list_2 )
99116
117+ task_9 = insert ( :task , status: "open" , project: project_1 , task_list: list_2 , archived: true )
118+ task_10 = insert ( :task , status: "closed" , project: project_1 , task_list: list_1 , archived: true )
119+ task_11 = insert ( :task , status: "open" , project: project_2 , task_list: list_1 , archived: true )
120+
100121 assert [ task_1 . id ] ==
101122 list_sorted_ids ( % { "status" => "open" , "project_id" => project_1 . id , "task_list_ids" => "#{ list_1 . id } " } )
102123
@@ -117,6 +138,21 @@ defmodule CodeCorps.Task.QueryTest do
117138
118139 assert [ task_1 , task_3 ] |> get_sorted_ids ( ) ==
119140 list_sorted_ids ( % { "status" => "open" , "project_id" => project_1 . id } )
141+
142+ assert [ task_9 , task_10 ] |> get_sorted_ids ( ) ==
143+ list_sorted_ids ( % { "archived" => true , "project_id" => project_1 . id } )
144+
145+ assert [ task_10 , task_11 ] |> get_sorted_ids ( ) ==
146+ list_sorted_ids ( % { "archived" => true , "task_list_ids" => "#{ list_1 . id } " } )
147+
148+ assert [ task_9 , task_11 ] |> get_sorted_ids ( ) ==
149+ list_sorted_ids ( % { "archived" => true , "status" => "open" } )
150+
151+ assert [ task_11 ] |> get_sorted_ids ( ) ==
152+ list_sorted_ids ( % { "archived" => true ,
153+ "project_id" => project_2 . id ,
154+ "status" => "open" ,
155+ "task_list_ids" => "#{ list_1 . id } " } )
120156 end
121157 end
122158
0 commit comments