@@ -116,6 +116,30 @@ describe("readdir", () => {
116116 } ) ;
117117 } ) ;
118118
119+ it ( "keeps UTF-8 filename pages stable when a pending file commits" , async ( ) => {
120+ await withDB ( async ( db ) => {
121+ const bmpName = "\uE000" ;
122+ const astralName = "\u{10000}" ;
123+ await writeFile ( db , `/${ bmpName } ` , "committed" , { } , ( ) => 0 ) ;
124+ openWriteBufferForCreateSync ( db , `/${ astralName } ` , { } , ( ) => 1 ) ;
125+
126+ expect ( readdir ( db , "/" , { limit : 1 , offset : 0 } ) . map ( ( entry ) => entry . name ) ) . toEqual ( [
127+ bmpName ,
128+ ] ) ;
129+ expect ( readdir ( db , "/" , { limit : 1 , offset : 1 } ) . map ( ( entry ) => entry . name ) ) . toEqual ( [
130+ astralName ,
131+ ] ) ;
132+
133+ releaseWriteBufferSync ( db , `/${ astralName } ` , ( ) => 2 ) ;
134+ expect ( readdir ( db , "/" , { limit : 1 , offset : 0 } ) . map ( ( entry ) => entry . name ) ) . toEqual ( [
135+ bmpName ,
136+ ] ) ;
137+ expect ( readdir ( db , "/" , { limit : 1 , offset : 1 } ) . map ( ( entry ) => entry . name ) ) . toEqual ( [
138+ astralName ,
139+ ] ) ;
140+ } ) ;
141+ } ) ;
142+
119143 it ( "rejects invalid offsets" , async ( ) => {
120144 await withDB ( ( db ) => {
121145 expect ( ( ) => readdir ( db , "/" , { offset : - 1 } ) ) . toThrowError (
0 commit comments