@@ -375,17 +375,15 @@ describe('VaultManager', () => {
375375 const v9 = await vaultManager . getVaultId ( 'Vault9' as VaultName ) ;
376376 expect ( v9 ) . toBeTruthy ( ) ;
377377 await vaultManager . renameVault ( v9 ! , 'Vault10' as VaultName ) ;
378- await vaultManager . createVault ( 'ThirdImpact' as VaultName ) ;
378+ const beforeVault = await vaultManager . createVault ( 'ThirdImpact' as VaultName ) ;
379379 await vaultManager . createVault ( 'Cake' as VaultName ) ;
380380 const vn : Array < string > = [ ] ;
381381 ( await vaultManager . listVaults ( ) ) . forEach ( ( _ , vaultName ) =>
382382 vn . push ( vaultName ) ,
383383 ) ;
384384 expect ( vn . sort ( ) ) . toEqual ( alteredVaultNames . sort ( ) ) ;
385385 await vaultManager . destroy ( ) ;
386- await db . stop ( ) ;
387386
388- await db . start ( ) ;
389387 const vaultManagerReloaded = await VaultManager . createVaultManager ( {
390388 keyManager : keyManager ,
391389 vaultsPath,
@@ -412,6 +410,14 @@ describe('VaultManager', () => {
412410 vnAltered . push ( vaultName ) ,
413411 ) ;
414412 expect ( vnAltered . sort ( ) ) . toEqual ( alteredVaultNames . sort ( ) ) ;
413+ const reloadedVault = await vaultManagerReloaded . openVault ( beforeVault . vaultId ) ;
414+ await reloadedVault . commit ( async ( efs ) => {
415+ await efs . writeFile ( 'reloaded' , 'reload' ) ;
416+ } ) ;
417+ const file = await reloadedVault . access ( async ( efs ) => {
418+ return await efs . readFile ( 'reloaded' , { encoding : 'utf8' } ) ;
419+ } ) ;
420+ expect ( file ) . toBe ( 'reload' ) ;
415421 await vaultManagerReloaded . destroy ( ) ;
416422 } ,
417423 global . defaultTimeout * 2 ,
@@ -970,5 +976,76 @@ describe('VaultManager', () => {
970976 } ,
971977 global . defaultTimeout * 2 ,
972978 ) ;
979+ test (
980+ 'manage pulling from different remotes' ,
981+ async ( ) => {
982+ const vault = await targetVaultManager . createVault ( vaultName ) ;
983+ await nodeManager . setNode ( targetNodeId , {
984+ ip : targetRevProxy . getIngressHost ( ) ,
985+ port : targetRevProxy . getIngressPort ( ) ,
986+ } as NodeAddress ) ;
987+ await targetNodeManager . setNode ( nodeManager . getNodeId ( ) , {
988+ ip : revProxy . getIngressHost ( ) ,
989+ port : revProxy . getIngressPort ( ) ,
990+ } as NodeAddress ) ;
991+ await nodeManager . setNode ( altNodeId , {
992+ ip : altRevProxy . getIngressHost ( ) ,
993+ port : altRevProxy . getIngressPort ( ) ,
994+ } as NodeAddress ) ;
995+ await altNodeManager . setNode ( nodeManager . getNodeId ( ) , {
996+ ip : revProxy . getIngressHost ( ) ,
997+ port : revProxy . getIngressPort ( ) ,
998+ } as NodeAddress ) ;
999+ await altNodeManager . setNode ( targetNodeId , {
1000+ ip : targetRevProxy . getIngressHost ( ) ,
1001+ port : targetRevProxy . getIngressPort ( ) ,
1002+ } as NodeAddress ) ;
1003+ await targetNodeManager . setNode ( altNodeId , {
1004+ ip : altRevProxy . getIngressHost ( ) ,
1005+ port : altRevProxy . getIngressPort ( ) ,
1006+ } as NodeAddress ) ;
1007+ await targetVaultManager . shareVault (
1008+ vault . vaultId ,
1009+ altNodeManager . getNodeId ( ) ,
1010+ ) ;
1011+ await targetVaultManager . shareVault (
1012+ vault . vaultId ,
1013+ nodeManager . getNodeId ( )
1014+ ) ;
1015+ const names : string [ ] = [ ] ;
1016+ for ( let i = 0 ; i < 2 ; i ++ ) {
1017+ const name = 'secret ' + i . toString ( ) ;
1018+ names . push ( name ) ;
1019+ const content = 'Success?' ;
1020+ await vaultOps . addSecret ( vault , name , content ) ;
1021+ }
1022+ const clonedVaultAlt = await altVaultManager . cloneVault ( targetNodeId , vault . vaultId ) ;
1023+ await altVaultManager . shareVault (
1024+ clonedVaultAlt . vaultId ,
1025+ nodeManager . getNodeId ( )
1026+ ) ;
1027+ const vaultClone = await vaultManager . cloneVault ( altNodeId , clonedVaultAlt . vaultId ) ;
1028+ for ( let i = 2 ; i < 4 ; i ++ ) {
1029+ const name = 'secret ' + i . toString ( ) ;
1030+ names . push ( name ) ;
1031+ const content = 'Success?' ;
1032+ await vaultOps . addSecret ( vault , name , content ) ;
1033+ }
1034+ await vaultManager . pullVault ( { vaultId : vaultClone . vaultId , pullNodeId : targetNodeId , pullVaultNameOrId : vaultName } ) ;
1035+ expect ( ( await vaultOps . listSecrets ( vaultClone ) ) . sort ( ) ) . toStrictEqual (
1036+ names . sort ( ) ,
1037+ ) ;
1038+ for ( let i = 4 ; i < 6 ; i ++ ) {
1039+ const name = 'secret ' + i . toString ( ) ;
1040+ const content = 'Success?' ;
1041+ await vaultOps . addSecret ( clonedVaultAlt , name , content ) ;
1042+ }
1043+ await vaultManager . pullVault ( { vaultId : vaultClone . vaultId } ) ;
1044+ expect ( ( await vaultOps . listSecrets ( vaultClone ) ) . sort ( ) ) . toStrictEqual (
1045+ names . sort ( ) ,
1046+ ) ;
1047+ } ,
1048+ global . defaultTimeout * 2 ,
1049+ ) ;
9731050 } ) ;
9741051} ) ;
0 commit comments