@@ -543,4 +543,110 @@ describe('Secret Manager samples', () => {
543543 ) ;
544544 assert . match ( output , new RegExp ( `Destroyed ${ regionalVersion . name } ` ) ) ;
545545 } ) ;
546+
547+ it ( 'creates a secret with delayed destroy enabled' , async ( ) => {
548+ const timeToLive = 24 * 60 * 60 ;
549+ const output = execSync (
550+ `node createSecretWithDelayedDestroy.js projects/${ projectId } ${ secretId } -2 ${ timeToLive } `
551+ ) ;
552+ assert . match ( output , new RegExp ( 'Created secret' ) ) ;
553+ } ) ;
554+
555+ it ( 'disables a secret delayed destroy' , async ( ) => {
556+ await client . createSecret ( {
557+ parent : `projects/${ projectId } ` ,
558+ secretId : `${ secretId } -delayedDestroy` ,
559+ secret : {
560+ replication : {
561+ automatic : { } ,
562+ } ,
563+ version_destroy_ttl : {
564+ seconds : 24 * 60 * 60 ,
565+ } ,
566+ } ,
567+ } ) ;
568+
569+ const output = execSync (
570+ `node disableSecretDelayedDestroy.js ${ secret . name } -delayedDestroy`
571+ ) ;
572+ assert . match ( output , new RegExp ( 'Disabled delayed destroy' ) ) ;
573+
574+ await client . deleteSecret ( {
575+ name : `${ secret . name } -delayedDestroy` ,
576+ } ) ;
577+ } ) ;
578+
579+ it ( 'updates a secret delayed destroy' , async ( ) => {
580+ const updatedTimeToLive = 24 * 60 * 60 * 2 ;
581+ await client . createSecret ( {
582+ parent : `projects/${ projectId } ` ,
583+ secretId : `${ secretId } -delayedDestroy` ,
584+ secret : {
585+ replication : {
586+ automatic : { } ,
587+ } ,
588+ version_destroy_ttl : {
589+ seconds : 24 * 60 * 60 ,
590+ } ,
591+ } ,
592+ } ) ;
593+
594+ const output = execSync (
595+ `node updateSecretWithDelayedDestroy.js ${ secret . name } -delayedDestroy ${ updatedTimeToLive } `
596+ ) ;
597+ assert . match ( output , new RegExp ( 'Updated secret' ) ) ;
598+ await client . deleteSecret ( {
599+ name : `${ secret . name } -delayedDestroy` ,
600+ } ) ;
601+ } ) ;
602+
603+ it ( 'creates a regional secret with delayed destroy' , async ( ) => {
604+ const timeToLive = 24 * 60 * 60 ;
605+ const output = execSync (
606+ `node regional_samples/createRegionalSecretWithDelayedDestroy.js ${ projectId } ${ locationId } ${ secretId } -2-dd ${ timeToLive } `
607+ ) ;
608+ assert . match ( output , new RegExp ( 'Created regional secret' ) ) ;
609+ } ) ;
610+
611+ it ( 'disables a regional secret delayed destroy' , async ( ) => {
612+ await regionalClient . createSecret ( {
613+ parent : `projects/${ projectId } /locations/${ locationId } ` ,
614+ secretId : `${ secretId } -delayedDestroy` ,
615+ secret : {
616+ version_destroy_ttl : {
617+ seconds : 24 * 60 * 60 ,
618+ } ,
619+ } ,
620+ } ) ;
621+
622+ const output = execSync (
623+ `node regional_samples/disableRegionalSecretDelayedDestroy.js ${ projectId } ${ locationId } ${ secretId } -delayedDestroy`
624+ ) ;
625+ assert . match ( output , new RegExp ( 'Disabled delayed destroy' ) ) ;
626+
627+ await regionalClient . deleteSecret ( {
628+ name : `projects/${ projectId } /locations/${ locationId } /secrets/${ secretId } -delayedDestroy` ,
629+ } ) ;
630+ } ) ;
631+
632+ it ( 'updates a regional secret delayed destroy' , async ( ) => {
633+ const updatedTimeToLive = 24 * 60 * 60 * 2 ;
634+ await regionalClient . createSecret ( {
635+ parent : `projects/${ projectId } /locations/${ locationId } ` ,
636+ secretId : `${ secretId } -delayedDestroy` ,
637+ secret : {
638+ version_destroy_ttl : {
639+ seconds : 24 * 60 * 60 ,
640+ } ,
641+ } ,
642+ } ) ;
643+
644+ const output = execSync (
645+ `node regional_samples/updateRegionalSecretWithDelayedDestroy.js ${ projectId } ${ locationId } ${ secretId } -delayedDestroy ${ updatedTimeToLive } `
646+ ) ;
647+ assert . match ( output , new RegExp ( 'Updated regional secret' ) ) ;
648+ await regionalClient . deleteSecret ( {
649+ name : `projects/${ projectId } /locations/${ locationId } /secrets/${ secretId } -delayedDestroy` ,
650+ } ) ;
651+ } ) ;
546652} ) ;
0 commit comments