@@ -512,93 +512,93 @@ mod tests {
512512 assert_eq ! ( views. len( ) , 1 ) ;
513513 }
514514 }
515- }
516515
517- #[ tokio:: test]
518- async fn delete_multiple_views_in_sequence_test ( ) {
519- let workspace_id = "w1" . to_string ( ) ;
520- let mut builder = NestedViewBuilder :: new ( workspace_id, 1 ) ;
521-
522- // Create a 3-level nested view hierarchy
523- builder
524- . with_view_builder ( |view_builder| async {
525- view_builder
526- . with_name ( "Root" )
527- . with_child_view_builder ( |child_view_builder| async {
528- child_view_builder
529- . with_name ( "Child-1" )
530- . with_child_view_builder ( |grandchild_view_builder| async {
531- grandchild_view_builder
532- . with_name ( "Grandchild-1-1" )
533- . with_child_view_builder ( |great_grandchild_view_builder| async {
534- great_grandchild_view_builder
535- . with_name ( "Great-Grandchild-1-1-1" )
536- . build ( )
537- } )
538- . await
539- . build ( )
540- } )
541- . await
542- . with_child_view_builder ( |grandchild_view_builder| async {
543- grandchild_view_builder. with_name ( "Grandchild-1-2" ) . build ( )
544- } )
545- . await
546- . build ( )
547- } )
548- . await
549- . with_child_view_builder ( |child_view_builder| async {
550- child_view_builder. with_name ( "Child-2" ) . build ( )
551- } )
552- . await
553- . build ( )
554- } )
555- . await ;
556-
557- let workspace_views = builder. build ( ) ;
558- assert_eq ! ( workspace_views. len( ) , 1 ) ; // Ensure there is one root view
559-
560- let views = FlattedViews :: flatten_views ( workspace_views. clone ( ) . into_inner ( ) ) ;
561- assert_eq ! ( views. len( ) , 6 ) ; // Ensure there are 6 total views (1 root, 2 children, 2 grandchildren, 1 great-grandchild)
562-
563- // Test deleting multiple views in sequence
564- {
565- let mut cloned_workspace_views = workspace_views. clone ( ) ;
566-
567- // First, delete a third-level view (Grandchild-1-2)
568- let view_id_grandchild_1_2 = workspace_views[ 0 ] . children [ 0 ] . children [ 1 ] . view . id . clone ( ) ; // "Grandchild-1-2"
569- cloned_workspace_views. remove_view ( & view_id_grandchild_1_2) ;
570- let views_after_delete =
571- FlattedViews :: flatten_views ( cloned_workspace_views. clone ( ) . into_inner ( ) ) ;
572- assert_eq ! ( views_after_delete. len( ) , 5 ) ; // Should have 5 views left
573- assert ! ( !views_after_delete
574- . iter( )
575- . any( |v| v. name == "Grandchild-1-2" ) ) ;
576-
577- // Second, delete the great-grandchild (Great-Grandchild-1-1-1)
578- let view_id_great_grandchild_1_1_1 = workspace_views[ 0 ] . children [ 0 ] . children [ 0 ] . children [ 0 ]
579- . view
580- . id
581- . clone ( ) ; // "Great-Grandchild-1-1-1"
582- cloned_workspace_views. remove_view ( & view_id_great_grandchild_1_1_1) ;
583- let views_after_delete =
584- FlattedViews :: flatten_views ( cloned_workspace_views. clone ( ) . into_inner ( ) ) ;
585- assert_eq ! ( views_after_delete. len( ) , 4 ) ; // Should have 4 views left
586- assert ! ( !views_after_delete
587- . iter( )
588- . any( |v| v. name == "Great-Grandchild-1-1-1" ) ) ;
589-
590- // Third, delete a second-level view (Child-2)
591- let view_id_child_2 = workspace_views[ 0 ] . children [ 1 ] . view . id . clone ( ) ; // "Child-2"
592- cloned_workspace_views. remove_view ( & view_id_child_2) ;
593- let views_after_delete =
594- FlattedViews :: flatten_views ( cloned_workspace_views. clone ( ) . into_inner ( ) ) ;
595- assert_eq ! ( views_after_delete. len( ) , 3 ) ; // Should have 3 views left
596- assert ! ( !views_after_delete. iter( ) . any( |v| v. name == "Child-2" ) ) ;
597-
598- // Fourth, delete the root view (Root)
599- let view_id_root = workspace_views[ 0 ] . view . id . clone ( ) ; // "Root"
600- cloned_workspace_views. remove_view ( & view_id_root) ;
601- let views_after_delete = FlattedViews :: flatten_views ( cloned_workspace_views. into_inner ( ) ) ;
602- assert_eq ! ( views_after_delete. len( ) , 0 ) ; // Should have no views left
516+ #[ tokio:: test]
517+ async fn delete_multiple_views_in_sequence_test ( ) {
518+ let workspace_id = "w1" . to_string ( ) ;
519+ let mut builder = NestedViewBuilder :: new ( workspace_id, 1 ) ;
520+
521+ // Create a 3-level nested view hierarchy
522+ builder
523+ . with_view_builder ( |view_builder| async {
524+ view_builder
525+ . with_name ( "Root" )
526+ . with_child_view_builder ( |child_view_builder| async {
527+ child_view_builder
528+ . with_name ( "Child-1" )
529+ . with_child_view_builder ( |grandchild_view_builder| async {
530+ grandchild_view_builder
531+ . with_name ( "Grandchild-1-1" )
532+ . with_child_view_builder ( |great_grandchild_view_builder| async {
533+ great_grandchild_view_builder
534+ . with_name ( "Great-Grandchild-1-1-1" )
535+ . build ( )
536+ } )
537+ . await
538+ . build ( )
539+ } )
540+ . await
541+ . with_child_view_builder ( |grandchild_view_builder| async {
542+ grandchild_view_builder. with_name ( "Grandchild-1-2" ) . build ( )
543+ } )
544+ . await
545+ . build ( )
546+ } )
547+ . await
548+ . with_child_view_builder ( |child_view_builder| async {
549+ child_view_builder. with_name ( "Child-2" ) . build ( )
550+ } )
551+ . await
552+ . build ( )
553+ } )
554+ . await ;
555+
556+ let workspace_views = builder. build ( ) ;
557+ assert_eq ! ( workspace_views. len( ) , 1 ) ; // Ensure there is one root view
558+
559+ let views = FlattedViews :: flatten_views ( workspace_views. clone ( ) . into_inner ( ) ) ;
560+ assert_eq ! ( views. len( ) , 6 ) ; // Ensure there are 6 total views (1 root, 2 children, 2 grandchildren, 1 great-grandchild)
561+
562+ // Test deleting multiple views in sequence
563+ {
564+ let mut cloned_workspace_views = workspace_views. clone ( ) ;
565+
566+ // First, delete a third-level view (Grandchild-1-2)
567+ let view_id_grandchild_1_2 = workspace_views[ 0 ] . children [ 0 ] . children [ 1 ] . view . id . clone ( ) ; // "Grandchild-1-2"
568+ cloned_workspace_views. remove_view ( & view_id_grandchild_1_2) ;
569+ let views_after_delete =
570+ FlattedViews :: flatten_views ( cloned_workspace_views. clone ( ) . into_inner ( ) ) ;
571+ assert_eq ! ( views_after_delete. len( ) , 5 ) ; // Should have 5 views left
572+ assert ! ( !views_after_delete
573+ . iter( )
574+ . any( |v| v. name == "Grandchild-1-2" ) ) ;
575+
576+ // Second, delete the great-grandchild (Great-Grandchild-1-1-1)
577+ let view_id_great_grandchild_1_1_1 = workspace_views[ 0 ] . children [ 0 ] . children [ 0 ] . children [ 0 ]
578+ . view
579+ . id
580+ . clone ( ) ; // "Great-Grandchild-1-1-1"
581+ cloned_workspace_views. remove_view ( & view_id_great_grandchild_1_1_1) ;
582+ let views_after_delete =
583+ FlattedViews :: flatten_views ( cloned_workspace_views. clone ( ) . into_inner ( ) ) ;
584+ assert_eq ! ( views_after_delete. len( ) , 4 ) ; // Should have 4 views left
585+ assert ! ( !views_after_delete
586+ . iter( )
587+ . any( |v| v. name == "Great-Grandchild-1-1-1" ) ) ;
588+
589+ // Third, delete a second-level view (Child-2)
590+ let view_id_child_2 = workspace_views[ 0 ] . children [ 1 ] . view . id . clone ( ) ; // "Child-2"
591+ cloned_workspace_views. remove_view ( & view_id_child_2) ;
592+ let views_after_delete =
593+ FlattedViews :: flatten_views ( cloned_workspace_views. clone ( ) . into_inner ( ) ) ;
594+ assert_eq ! ( views_after_delete. len( ) , 3 ) ; // Should have 3 views left
595+ assert ! ( !views_after_delete. iter( ) . any( |v| v. name == "Child-2" ) ) ;
596+
597+ // Fourth, delete the root view (Root)
598+ let view_id_root = workspace_views[ 0 ] . view . id . clone ( ) ; // "Root"
599+ cloned_workspace_views. remove_view ( & view_id_root) ;
600+ let views_after_delete = FlattedViews :: flatten_views ( cloned_workspace_views. into_inner ( ) ) ;
601+ assert_eq ! ( views_after_delete. len( ) , 0 ) ; // Should have no views left
602+ }
603603 }
604604}
0 commit comments