@@ -70,14 +70,41 @@ describe("Table sorting helpers", () => {
7070 it ( "compares strings, numbers, booleans, dates, and nulls consistently" , ( ) => {
7171 expect ( compareSortValues ( "a" , "b" ) ) . toBeLessThan ( 0 ) ;
7272 expect ( compareSortValues ( 2 , 1 ) ) . toBeGreaterThan ( 0 ) ;
73- expect ( compareSortValues ( false , true ) ) . toBeLessThan ( 0 ) ;
73+ expect ( compareSortValues ( true , false ) ) . toBeLessThan ( 0 ) ;
74+ expect ( compareSortValues ( false , true ) ) . toBeGreaterThan ( 0 ) ;
7475 expect (
7576 compareSortValues ( new Date ( "2026-05-01" ) , new Date ( "2026-05-02" ) ) ,
7677 ) . toBeLessThan ( 0 ) ;
7778 expect ( compareSortValues ( null , "a" ) ) . toBeGreaterThan ( 0 ) ;
7879 expect ( compareSortValues ( undefined , null ) ) . toBe ( 0 ) ;
7980 } ) ;
8081
82+ it ( "sortRows puts enrolled employees first in ascending boolean order" , ( ) => {
83+ type Employee = { name : string ; enrolled : boolean } ;
84+
85+ const employees : Employee [ ] = [
86+ { name : "Not enrolled" , enrolled : false } ,
87+ { name : "Enrolled" , enrolled : true } ,
88+ ] ;
89+ const enrolledColumn : Column < Employee > = {
90+ key : "enrolled" ,
91+ header : "Role" ,
92+ sortable : true ,
93+ sortValue : ( employee ) => employee . enrolled ,
94+ } ;
95+
96+ expect (
97+ sortRows ( employees , enrolledColumn , "asc" ) . map (
98+ ( employee ) => employee . name ,
99+ ) ,
100+ ) . toEqual ( [ "Enrolled" , "Not enrolled" ] ) ;
101+ expect (
102+ sortRows ( employees , enrolledColumn , "desc" ) . map (
103+ ( employee ) => employee . name ,
104+ ) ,
105+ ) . toEqual ( [ "Not enrolled" , "Enrolled" ] ) ;
106+ } ) ;
107+
81108 it ( "sortRows keeps null values last in both directions" , ( ) => {
82109 const dateColumn = columns [ 1 ] ;
83110
0 commit comments