@@ -17,7 +17,9 @@ import {
1717} from '../../plugins/test-utils/index.mjs' ;
1818import { wrappedValidateAjvStorage } from '../../plugins/validate-ajv/index.mjs' ;
1919import { RxDBPipelinePlugin } from '../../plugins/pipeline/index.mjs' ;
20+ import { RxDBLocalDocumentsPlugin } from '../../plugins/local-documents/index.mjs' ;
2021addRxPlugin ( RxDBPipelinePlugin ) ;
22+ addRxPlugin ( RxDBLocalDocumentsPlugin ) ;
2123import { RxDBLeaderElectionPlugin } from '../../plugins/leader-election/index.mjs' ;
2224import { assertThrows } from 'async-test-util' ;
2325addRxPlugin ( RxDBLeaderElectionPlugin ) ;
@@ -392,6 +394,31 @@ describe('rx-pipeline.test.js', () => {
392394 assert . strictEqual ( c2After . firstName , 'foobar' ) ;
393395
394396
397+ c1 . database . close ( ) ;
398+ c2 . database . close ( ) ;
399+ } ) ;
400+ it ( 'should not block reads when localDocument inserted' , async ( ) => {
401+ const c1 = await humansCollection . create ( 0 ) ;
402+ await c1 . database . waitForLeadership ( ) ;
403+ const c2 = await humansCollection . create ( 0 ) ;
404+
405+ await c1 . addPipeline ( {
406+ destination : c2 ,
407+ handler : async ( docs ) => {
408+ for ( const doc of docs ) {
409+ await c2 . insert ( schemaObjects . humanData ( doc . passportId ) ) ;
410+ }
411+ } ,
412+ identifier : randomToken ( 10 )
413+ } ) ;
414+ await c1 . insert ( schemaObjects . humanData ( 'foobar' ) ) ;
415+ const doc2 = await c2 . findOne ( ) . exec ( true ) ;
416+ assert . strictEqual ( doc2 . passportId , 'foobar' ) ;
417+
418+ await c1 . insertLocal ( 'LOCAL_KEY' , { data : true } ) ;
419+ const doc2AfterLocalInserted = await c2 . findOne ( ) . exec ( true ) ;
420+ assert . strictEqual ( doc2AfterLocalInserted . passportId , 'foobar' ) ;
421+
395422 c1 . database . close ( ) ;
396423 c2 . database . close ( ) ;
397424 } ) ;
0 commit comments