@@ -70,6 +70,7 @@ import * as keysUtils from '@/keys/utils';
7070import * as nodesUtils from '@/nodes/utils' ;
7171import * as vaultsUtils from '@/vaults/utils' ;
7272import * as vaultsErrors from '@/vaults/errors' ;
73+ import * as clientErrors from '@/client/errors' ;
7374import * as networkUtils from '@/network/utils' ;
7475import * as utils from '@/utils' ;
7576import * as testsUtils from '../../utils' ;
@@ -2356,6 +2357,80 @@ describe('vaultsSecretsRemove', () => {
23562357 recursive : true ,
23572358 } ) ;
23582359 } ) ;
2360+ test ( 'fails when header is not sent' , async ( ) => {
2361+ // Write paths
2362+ const response = await rpcClient . methods . vaultsSecretsRemove ( ) ;
2363+ const writer = response . writable . getWriter ( ) ;
2364+ // Not sending the header message
2365+ // Content messages
2366+ await writer . write ( {
2367+ type : 'SecretIdentifierMessage' ,
2368+ nameOrId : 'invalid' ,
2369+ secretName : 'invalid' ,
2370+ } ) ;
2371+ await writer . close ( ) ;
2372+ // Read response
2373+ const consumeP = async ( ) => {
2374+ for await ( const _ of response . readable ) {
2375+ // Consume values
2376+ }
2377+ } ;
2378+ await testsUtils . expectRemoteError (
2379+ consumeP ( ) ,
2380+ clientErrors . ErrorClientInvalidHeader ,
2381+ ) ;
2382+ } ) ;
2383+ test ( 'fails when only the header is sent' , async ( ) => {
2384+ const vaultId = await vaultManager . createVault ( 'test-vault' ) ;
2385+ const vaultIdEncoded = vaultsUtils . encodeVaultId ( vaultId ) ;
2386+ // Write paths
2387+ const response = await rpcClient . methods . vaultsSecretsRemove ( ) ;
2388+ const writer = response . writable . getWriter ( ) ;
2389+ // Header message
2390+ await writer . write ( {
2391+ type : 'VaultNamesHeaderMessage' ,
2392+ vaultNames : [ vaultIdEncoded ] ,
2393+ } ) ;
2394+ // Not sending the content messages
2395+ await writer . close ( ) ;
2396+ // Read response
2397+ const consumeP = async ( ) => {
2398+ for await ( const _ of response . readable ) {
2399+ // Consume values
2400+ }
2401+ } ;
2402+ await testsUtils . expectRemoteError (
2403+ consumeP ( ) ,
2404+ clientErrors . ErrorClientProtocolError ,
2405+ ) ;
2406+ } ) ;
2407+ test ( 'fails when the header is sent multiple times' , async ( ) => {
2408+ const vaultId = await vaultManager . createVault ( 'test-vault' ) ;
2409+ const vaultIdEncoded = vaultsUtils . encodeVaultId ( vaultId ) ;
2410+ // Write paths
2411+ const response = await rpcClient . methods . vaultsSecretsRemove ( ) ;
2412+ const writer = response . writable . getWriter ( ) ;
2413+ // Header message
2414+ await writer . write ( {
2415+ type : 'VaultNamesHeaderMessage' ,
2416+ vaultNames : [ vaultIdEncoded ] ,
2417+ } ) ;
2418+ await writer . write ( {
2419+ type : 'VaultNamesHeaderMessage' ,
2420+ vaultNames : [ vaultIdEncoded ] ,
2421+ } ) ;
2422+ await writer . close ( ) ;
2423+ // Read response
2424+ const consumeP = async ( ) => {
2425+ for await ( const _ of response . readable ) {
2426+ // Consume values
2427+ }
2428+ } ;
2429+ await testsUtils . expectRemoteError (
2430+ consumeP ( ) ,
2431+ clientErrors . ErrorClientProtocolError ,
2432+ ) ;
2433+ } ) ;
23592434 test ( 'fails with invalid vault name' , async ( ) => {
23602435 // Write paths
23612436 const response = await rpcClient . methods . vaultsSecretsRemove ( ) ;
@@ -2374,7 +2449,9 @@ describe('vaultsSecretsRemove', () => {
23742449 await writer . close ( ) ;
23752450 // Read response
23762451 const consumeP = async ( ) => {
2377- for await ( const _ of response . readable ) ;
2452+ for await ( const _ of response . readable ) {
2453+ // Consume values
2454+ }
23782455 } ;
23792456 await testsUtils . expectRemoteError (
23802457 consumeP ( ) ,
0 commit comments