11import { assert } from 'chai' ;
22import { l10n } from 'vscode' ;
33
4- import { DeepnoteTreeDataProvider } from './deepnoteTreeDataProvider' ;
4+ import { DeepnoteTreeDataProvider , compareTreeItemsByLabel } from './deepnoteTreeDataProvider' ;
55import { DeepnoteTreeItem , DeepnoteTreeItemType } from './deepnoteTreeItem' ;
66import type { DeepnoteProject } from '../../platform/deepnote/deepnoteTypes' ;
77
@@ -338,9 +338,8 @@ suite('DeepnoteTreeDataProvider', () => {
338338 } ) ;
339339
340340 suite ( 'alphabetical sorting' , ( ) => {
341- test ( 'should sort projects alphabetically by name' , async ( ) => {
342- // Note: This test verifies the concept, but actual sorting happens in getDeepnoteProjectFiles()
343- // which scans the workspace. For now, we verify the tree items can be sorted.
341+ test ( 'compareTreeItemsByLabel should sort items alphabetically (case-insensitive)' , ( ) => {
342+ // Test the comparator function in isolation
344343 const mockProjects : DeepnoteProject [ ] = [
345344 {
346345 metadata : {
@@ -383,7 +382,7 @@ suite('DeepnoteTreeDataProvider', () => {
383382 }
384383 ] ;
385384
386- // Create tree items
385+ // Create tree items in unsorted order
387386 const treeItems = mockProjects . map (
388387 ( project ) =>
389388 new DeepnoteTreeItem (
@@ -397,16 +396,13 @@ suite('DeepnoteTreeDataProvider', () => {
397396 )
398397 ) ;
399398
400- // Before sorting
399+ // Verify items are initially unsorted
401400 assert . strictEqual ( treeItems [ 0 ] . label , 'Zebra Project' ) ;
402401
403- // Verify that sorting would work
404- const sortedItems = [ ...treeItems ] . sort ( ( a , b ) => {
405- const labelA = typeof a . label === 'string' ? a . label : '' ;
406- const labelB = typeof b . label === 'string' ? b . label : '' ;
407- return labelA . toLowerCase ( ) . localeCompare ( labelB . toLowerCase ( ) ) ;
408- } ) ;
402+ // Sort using the exported comparator
403+ const sortedItems = [ ...treeItems ] . sort ( compareTreeItemsByLabel ) ;
409404
405+ // Verify alphabetical order
410406 assert . strictEqual ( sortedItems [ 0 ] . label , 'Apple Project' ) ;
411407 assert . strictEqual ( sortedItems [ 1 ] . label , 'Middle Project' ) ;
412408 assert . strictEqual ( sortedItems [ 2 ] . label , 'Zebra Project' ) ;
0 commit comments