@@ -3339,24 +3339,13 @@ describe('Spanner', () => {
33393339 const SKIP_POSTGRESQL_BACKUP_TESTS = true ;
33403340
33413341 let googleSqlDatabase1 : Database ;
3342- let googleSqlDatabase2 : Database ;
3343- let restoreDatabase : Database ;
3344-
3342+ let googleSqlRestoreDatabase : Database ;
3343+ let postgreSqlRestoreDatabase : Database ;
33453344 let postgreSqlDatabase1 : Database ;
3346- let postgreSqlDatabase2 : Database ;
3347-
33483345 let googleSqlBackup1 : Backup ;
3349- let googleSqlBackup2 : Backup ;
3350-
33513346 let postgreSqlBackup1 : Backup ;
3352- let postgreSqlBackup2 : Backup ;
3353-
33543347 const googleSqlBackup1Name = generateName ( 'backup' ) ;
3355- const googleSqlBackup2Name = generateName ( 'backup' ) ;
3356-
33573348 const postgreSqlBackup1Name = generateName ( 'pg-backup' ) ;
3358- const postgreSqlBackup2Name = generateName ( 'pg-backup' ) ;
3359-
33603349 const backupExpiryDate = futureDateByHours ( 12 ) ;
33613350 const backupExpiryPreciseDate = Spanner . timestamp ( backupExpiryDate ) ;
33623351
@@ -3375,58 +3364,14 @@ describe('Spanner', () => {
33753364 Name : generateName ( 'name' ) ,
33763365 } ) ;
33773366
3378- await postgreSqlDatabase1 . table ( TABLE_NAME ) . insert ( {
3379- SingerId : generateName ( 'id' ) ,
3380- Name : generateName ( 'name' ) ,
3381- } ) ;
3382-
3383- // Create a second database since only one pending backup can be created
3384- // per database.
3385- const googleSqlDatabase2Id = generateName ( 'database' ) ;
3386- await creategSQLDatabase ( googleSqlDatabase2Id , null ) ;
3387- googleSqlDatabase2 = instance . database ( googleSqlDatabase2Id ) ;
3388- RESOURCES_TO_CLEAN . push ( googleSqlDatabase2 ) ;
3389-
3390- if ( ! SKIP_POSTGRESQL_BACKUP_TESTS ) {
3391- const postgreSqlDatabase2Id = generateName ( 'pg-db' ) ;
3392- await createPostgresDatabase ( postgreSqlDatabase2Id ) ;
3393- postgreSqlDatabase2 = instance . database ( postgreSqlDatabase2Id ) ;
3394- RESOURCES_TO_CLEAN . push ( postgreSqlDatabase2 ) ;
3395- }
3396-
3397- // Create backups.
3398- await createBackup (
3399- googleSqlDatabase1 ,
3400- googleSqlBackup1Name ,
3401- backupExpiryDate ,
3402- ) ;
3403- await createBackup (
3404- googleSqlDatabase2 ,
3405- googleSqlBackup2Name ,
3406- backupExpiryDate ,
3407- ) ;
3408-
34093367 googleSqlBackup1 = instance . backup ( googleSqlBackup1Name ) ;
3410- googleSqlBackup2 = instance . backup ( googleSqlBackup2Name ) ;
3411-
3412- RESOURCES_TO_CLEAN . push ( ...[ googleSqlBackup1 , googleSqlBackup2 ] ) ;
34133368
34143369 if ( ! SKIP_POSTGRESQL_BACKUP_TESTS ) {
3415- await createBackup (
3416- postgreSqlDatabase1 ,
3417- postgreSqlBackup1Name ,
3418- backupExpiryDate ,
3419- ) ;
3420- await createBackup (
3421- postgreSqlDatabase2 ,
3422- postgreSqlBackup2Name ,
3423- backupExpiryDate ,
3424- ) ;
3425-
3370+ await postgreSqlDatabase1 . table ( TABLE_NAME ) . insert ( {
3371+ SingerId : generateName ( 'id' ) ,
3372+ Name : generateName ( 'name' ) ,
3373+ } ) ;
34263374 postgreSqlBackup1 = instance . backup ( postgreSqlBackup1Name ) ;
3427- postgreSqlBackup2 = instance . backup ( postgreSqlBackup2Name ) ;
3428-
3429- RESOURCES_TO_CLEAN . push ( ...[ postgreSqlBackup1 , postgreSqlBackup2 ] ) ;
34303375 }
34313376 } ) ;
34323377
@@ -3463,6 +3408,12 @@ describe('Spanner', () => {
34633408 } ;
34643409
34653410 it ( 'GOOGLE_STANDARD_SQL should have completed a backup' , async ( ) => {
3411+ // Create backups.
3412+ await createBackup (
3413+ googleSqlDatabase1 ,
3414+ googleSqlBackup1Name ,
3415+ backupExpiryDate ,
3416+ ) ;
34663417 await completedBackup (
34673418 googleSqlBackup1 ,
34683419 googleSqlBackup1Name ,
@@ -3471,6 +3422,11 @@ describe('Spanner', () => {
34713422 } ) ;
34723423
34733424 it . skip ( 'POSTGRESQL should have completed a backup' , async ( ) => {
3425+ await createBackup (
3426+ postgreSqlDatabase1 ,
3427+ postgreSqlBackup1Name ,
3428+ backupExpiryDate ,
3429+ ) ;
34743430 await completedBackup (
34753431 postgreSqlBackup1 ,
34763432 postgreSqlBackup1Name ,
@@ -3525,7 +3481,7 @@ describe('Spanner', () => {
35253481 backup => backup . formattedName_ === googleSqlBackup1 . formattedName_ ,
35263482 ) ,
35273483 ) ;
3528- if ( ! IS_EMULATOR_ENABLED && ! SKIP_POSTGRESQL_BACKUP_TESTS ) {
3484+ if ( ! SKIP_POSTGRESQL_BACKUP_TESTS ) {
35293485 assert . ok (
35303486 backups . find (
35313487 backup =>
@@ -3540,47 +3496,29 @@ describe('Spanner', () => {
35403496 pageSize : 1 ,
35413497 gaxOptions : { autoPaginate : false } ,
35423498 } ) ;
3543- const [ page2 ] = await instance . getBackups ( {
3544- pageSize : 1 ,
3545- pageToken : resp1 ! . nextPageToken ! ,
3546- gaxOptions : { autoPaginate : false } ,
3547- } ) ;
35483499
3549- let page3size = 2 ;
3550- if ( ! IS_EMULATOR_ENABLED && ! SKIP_POSTGRESQL_BACKUP_TESTS ) {
3551- page3size = 4 ;
3500+ let totalPageSize = 1 ;
3501+ if ( ! SKIP_POSTGRESQL_BACKUP_TESTS ) {
3502+ totalPageSize = 2 ;
35523503 }
3553- const [ page3 ] = await instance . getBackups ( {
3554- pageSize : page3size ,
3504+ const [ totalPages ] = await instance . getBackups ( {
3505+ pageSize : totalPageSize ,
35553506 gaxOptions : { autoPaginate : false } ,
35563507 } ) ;
35573508 assert . strictEqual ( page1 . length , 1 ) ;
3558- assert . strictEqual ( page2 . length , 1 ) ;
3559- assert . strictEqual ( page3 . length , page3size ) ;
3560- assert . notStrictEqual ( page2 [ 0 ] . formattedName_ , page1 [ 0 ] . formattedName_ ) ;
3509+ assert . strictEqual ( totalPages . length , totalPageSize ) ;
35613510 assert . ok (
3562- page3 . find (
3511+ totalPages . find (
35633512 backup => backup . formattedName_ === googleSqlBackup1 . formattedName_ ,
35643513 ) ,
35653514 ) ;
3566- assert . ok (
3567- page3 . find (
3568- backup => backup . formattedName_ === googleSqlBackup2 . formattedName_ ,
3569- ) ,
3570- ) ;
3571- if ( ! IS_EMULATOR_ENABLED && ! SKIP_POSTGRESQL_BACKUP_TESTS ) {
3515+ if ( ! SKIP_POSTGRESQL_BACKUP_TESTS ) {
35723516 assert . ok (
3573- page3 . find (
3517+ totalPages . find (
35743518 backup =>
35753519 backup . formattedName_ === postgreSqlBackup1 . formattedName_ ,
35763520 ) ,
35773521 ) ;
3578- assert . ok (
3579- page3 . find (
3580- backup =>
3581- backup . formattedName_ === postgreSqlBackup2 . formattedName_ ,
3582- ) ,
3583- ) ;
35843522 }
35853523 } ) ;
35863524
@@ -3596,9 +3534,7 @@ describe('Spanner', () => {
35963534 // Wait for restore to complete.
35973535 await restoreOperation . promise ( ) ;
35983536
3599- restoreDatabase = instance . database ( restoreDatabaseId ) ;
3600-
3601- RESOURCES_TO_CLEAN . push ( restoreDatabase ) ;
3537+ const restoreDatabase = instance . database ( restoreDatabaseId ) ;
36023538
36033539 const [ databaseMetadata ] = await restoreDatabase . getMetadata ( ) ;
36043540 assert . ok (
@@ -3637,11 +3573,13 @@ describe('Spanner', () => {
36373573 filter : 'metadata.@type:RestoreDatabaseMetadata' ,
36383574 } ) ;
36393575 assert . strictEqual ( restoreOperations . length , 1 ) ;
3576+
3577+ return restoreDatabase ;
36403578 } ;
36413579
36423580 it ( 'GOOGLE_STANDARD_SQL should restore a backup' , async ( ) => {
36433581 const googleSqlRestoreDatabaseId = generateName ( 'database' ) ;
3644- await restoreBackup (
3582+ googleSqlRestoreDatabase = await restoreBackup (
36453583 googleSqlRestoreDatabaseId ,
36463584 googleSqlBackup1 ,
36473585 googleSqlDatabase1 ,
@@ -3650,7 +3588,7 @@ describe('Spanner', () => {
36503588
36513589 it . skip ( 'POSTGRESQL should restore a backup' , async ( ) => {
36523590 const postgreSqlRestoreDatabaseId = generateName ( 'pg-db' ) ;
3653- await restoreBackup (
3591+ postgreSqlRestoreDatabase = await restoreBackup (
36543592 postgreSqlRestoreDatabaseId ,
36553593 postgreSqlBackup1 ,
36563594 postgreSqlDatabase1 ,
@@ -3672,11 +3610,17 @@ describe('Spanner', () => {
36723610 } ;
36733611
36743612 it ( 'GOOGLE_STANDARD_SQL should not be able to restore to an existing database' , async ( ) => {
3675- await restoreExistingDatabaseFail ( restoreDatabase , googleSqlBackup1 ) ;
3613+ await restoreExistingDatabaseFail (
3614+ googleSqlRestoreDatabase ,
3615+ googleSqlBackup1 ,
3616+ ) ;
36763617 } ) ;
36773618
36783619 it . skip ( 'POSTGRESQL should not be able to restore to an existing database' , async ( ) => {
3679- await restoreExistingDatabaseFail ( restoreDatabase , postgreSqlBackup1 ) ;
3620+ await restoreExistingDatabaseFail (
3621+ postgreSqlRestoreDatabase ,
3622+ postgreSqlBackup1 ,
3623+ ) ;
36803624 } ) ;
36813625
36823626 const updateBackupExpiry = async backup1 => {
@@ -3746,14 +3690,6 @@ describe('Spanner', () => {
37463690 }
37473691 } ;
37483692
3749- it ( 'GOOGLE_STANDARD_SQL should delete backup' , async ( ) => {
3750- await deleteBackup ( googleSqlBackup2 ) ;
3751- } ) ;
3752-
3753- it . skip ( 'POSTGRESQL should delete backup' , async ( ) => {
3754- await deleteBackup ( postgreSqlBackup2 ) ;
3755- } ) ;
3756-
37573693 const listBackupOperations = async ( backup1 , database1 ) => {
37583694 // List operations and ensure operation for current backup exists.
37593695 // Without a filter.
@@ -3789,13 +3725,25 @@ describe('Spanner', () => {
37893725 ) ;
37903726 } ;
37913727
3792- it ( 'GOOGLE_STANDARD_SQL should delete backup' , async ( ) => {
3728+ it ( 'GOOGLE_STANDARD_SQL should list backup operations ' , async ( ) => {
37933729 await listBackupOperations ( googleSqlBackup1 , googleSqlDatabase1 ) ;
37943730 } ) ;
37953731
3796- it . skip ( 'POSTGRESQL should delete backup' , async ( ) => {
3732+ it . skip ( 'POSTGRESQL should list backup operations ' , async ( ) => {
37973733 await listBackupOperations ( postgreSqlBackup1 , postgreSqlDatabase1 ) ;
37983734 } ) ;
3735+
3736+ it ( 'GOOGLE_STANDARD_SQL should delete backups' , async ( ) => {
3737+ // Delete the restored database before deleting the backup, as backup deletion can fail if the restored database remains in the READY_OPTIMIZING state.
3738+ await googleSqlRestoreDatabase . delete ( ) ;
3739+ await deleteBackup ( googleSqlBackup1 ) ;
3740+ } ) ;
3741+
3742+ it . skip ( 'POSTGRESQL should delete backups' , async ( ) => {
3743+ // Delete the restored database before deleting the backup, as backup deletion can fail if the restored database remains in the READY_OPTIMIZING state.
3744+ await postgreSqlRestoreDatabase . delete ( ) ;
3745+ await deleteBackup ( postgreSqlBackup1 ) ;
3746+ } ) ;
37993747 } ) ;
38003748
38013749 describe ( 'Sessions' , ( ) => {
0 commit comments