@@ -749,6 +749,57 @@ describe("context/middleware", () => {
749749
750750 unsub ( ) ;
751751 } ) ;
752+
753+ it ( "works with createRoutesFromElements" , async ( ) => {
754+ let context = new RouterContextProvider ( ) ;
755+ router = createRouter ( {
756+ history : createMemoryHistory ( ) ,
757+ getContext : ( ) => context ,
758+ routes : createRoutesFromElements (
759+ < >
760+ < Route path = "/" />
761+ < Route
762+ id = "parent"
763+ path = "/parent"
764+ middleware = { [
765+ getOrderMiddleware ( orderContext , "a" ) ,
766+ getOrderMiddleware ( orderContext , "b" ) ,
767+ ] }
768+ loader = { ( { context } ) => {
769+ context . get ( orderContext ) . push ( "parent loader" ) ;
770+ } }
771+ >
772+ < Route
773+ id = "child"
774+ path = "child"
775+ middleware = { [
776+ getOrderMiddleware ( orderContext , "c" ) ,
777+ getOrderMiddleware ( orderContext , "d" ) ,
778+ ] }
779+ loader = { ( { context } ) => {
780+ context . get ( orderContext ) . push ( "child loader" ) ;
781+ } }
782+ />
783+ </ Route >
784+ </ > ,
785+ ) ,
786+ } ) ;
787+
788+ await router . navigate ( "/parent/child" ) ;
789+
790+ expect ( context . get ( orderContext ) ) . toEqual ( [
791+ "a middleware - before next()" ,
792+ "b middleware - before next()" ,
793+ "c middleware - before next()" ,
794+ "d middleware - before next()" ,
795+ "parent loader" ,
796+ "child loader" ,
797+ "d middleware - after next()" ,
798+ "c middleware - after next()" ,
799+ "b middleware - after next()" ,
800+ "a middleware - after next()" ,
801+ ] ) ;
802+ } ) ;
752803 } ) ;
753804
754805 describe ( "lazy" , ( ) => {
0 commit comments