@@ -815,6 +815,51 @@ def call_with_params(params)
815
815
expect ( assigns ( :works ) ) . to include ( work , unrevealed_work )
816
816
end
817
817
end
818
+
819
+ context "with sorting options" do
820
+ let! ( :new_work ) do
821
+ create ( :work ,
822
+ title : "New Title" ,
823
+ authors : [ collected_user . default_pseud ] ,
824
+ collection_names : collection . name ,
825
+ created_at : 3 . days . ago ,
826
+ revised_at : 3 . days . ago )
827
+ end
828
+
829
+ let! ( :old_work ) do
830
+ create ( :work ,
831
+ title : "Old Title" ,
832
+ authors : [ collected_user . default_pseud ] ,
833
+ collection_names : collection . name ,
834
+ created_at : 30 . days . ago ,
835
+ revised_at : 30 . days . ago )
836
+ end
837
+
838
+ let! ( :revised_work ) do
839
+ create ( :work ,
840
+ title : "Revised Title" ,
841
+ authors : [ collected_user . default_pseud ] ,
842
+ collection_names : collection . name ,
843
+ created_at : 20 . days . ago ,
844
+ revised_at : 2 . days . ago )
845
+ end
846
+
847
+ before { run_all_indexing_jobs }
848
+
849
+ it "sorts by date" do
850
+ get :collected , params : { user_id : collected_user . login }
851
+ expect ( assigns ( :works ) . map ( &:title ) ) . to eq ( [ revised_work , new_work , old_work ] . map ( &:title ) )
852
+ get :collected , params : { user_id : collected_user . login , work_search : { sort_direction : "asc" } }
853
+ expect ( assigns ( :works ) . map ( &:title ) ) . to eq ( [ old_work , new_work , revised_work ] . map ( &:title ) )
854
+ end
855
+
856
+ it "sorts by title" do
857
+ get :collected , params : { user_id : collected_user . login , work_search : { sort_column : "title_to_sort_on" } }
858
+ expect ( assigns ( :works ) . map ( &:title ) ) . to eq ( [ new_work , old_work , revised_work ] . map ( &:title ) )
859
+ get :collected , params : { user_id : collected_user . login , work_search : { sort_column : "title_to_sort_on" , sort_direction : "desc" } }
860
+ expect ( assigns ( :works ) . map ( &:title ) ) . to eq ( [ revised_work , old_work , new_work ] . map ( &:title ) )
861
+ end
862
+ end
818
863
end
819
864
820
865
describe "destroy" do
0 commit comments