@@ -23,15 +23,14 @@ import {promisify} from 'util';
2323import * as path from 'path' ;
2424import * as tmp from 'tmp' ;
2525import * as uuid from 'uuid' ;
26- import { ApiError , Metadata } from '../src/nodejs-common' ;
26+ import { ApiError } from '../src/nodejs-common' ;
2727import {
2828 Storage ,
2929 Bucket ,
3030 File ,
3131 AccessControlObject ,
3232 Notification ,
3333 DeleteBucketCallback ,
34- GetFileCallback ,
3534 CRC32C ,
3635} from '../src' ;
3736import * as nock from 'nock' ;
@@ -133,7 +132,7 @@ describe('storage', () => {
133132 // eslint-disable-next-line @typescript-eslint/no-unused-vars
134133 let GOOGLE_CLOUD_PROJECT : string | undefined ;
135134
136- before ( done => {
135+ before ( async ( ) => {
137136 // CI authentication is done with ADC. Cache it here, restore it `after`
138137 GOOGLE_APPLICATION_CREDENTIALS =
139138 process . env . GOOGLE_APPLICATION_CREDENTIALS ;
@@ -142,7 +141,7 @@ describe('storage', () => {
142141
143142 privateBucket = bucket ; // `bucket` was created in the global `before`
144143 privateFile = privateBucket . file ( 'file-name' ) ;
145- privateFile . save ( 'data' , done ) ;
144+ await privateFile . save ( 'data' ) ;
146145 } ) ;
147146
148147 beforeEach ( ( ) => {
@@ -334,20 +333,15 @@ describe('storage', () => {
334333 describe ( 'files' , ( ) => {
335334 let file : File ;
336335
337- beforeEach ( done => {
336+ beforeEach ( async ( ) => {
338337 const options = {
339338 destination : generateName ( ) + '.png' ,
340339 } ;
341-
342- bucket . upload ( FILES . logo . path , options , ( err , f ) => {
343- assert . ifError ( err ) ;
344- file = f ! ;
345- done ( ) ;
346- } ) ;
340+ [ file ] = await bucket . upload ( FILES . logo . path , options ) ;
347341 } ) ;
348342
349- afterEach ( done => {
350- file . delete ( done ) ;
343+ afterEach ( async ( ) => {
344+ await file . delete ( ) ;
351345 } ) ;
352346
353347 it ( 'should get access controls' , async ( ) => {
@@ -486,15 +480,8 @@ describe('storage', () => {
486480 describe ( 'iam' , ( ) => {
487481 let PROJECT_ID : string ;
488482
489- before ( done => {
490- storage . authClient . getProjectId ( ( err , projectId ) => {
491- if ( err ) {
492- done ( err ) ;
493- return ;
494- }
495- PROJECT_ID = projectId ! ;
496- done ( ) ;
497- } ) ;
483+ before ( async ( ) => {
484+ PROJECT_ID = await storage . authClient . getProjectId ( ) ;
498485 } ) ;
499486
500487 describe ( 'buckets' , ( ) => {
@@ -1101,8 +1088,8 @@ describe('storage', () => {
11011088 labeltwo : 'labelvaluetwo' ,
11021089 } ;
11031090
1104- beforeEach ( done => {
1105- bucket . deleteLabels ( done ) ;
1091+ beforeEach ( async ( ) => {
1092+ await bucket . deleteLabels ( ) ;
11061093 } ) ;
11071094
11081095 it ( 'should set labels' , async ( ) => {
@@ -1432,22 +1419,13 @@ describe('storage', () => {
14321419 const FILE = BUCKET . file ( generateName ( ) ) ;
14331420
14341421 const BUCKET_RETENTION_PERIOD = 1 ;
1435- before ( done => {
1436- BUCKET . create (
1437- {
1438- retentionPolicy : {
1439- retentionPeriod : BUCKET_RETENTION_PERIOD ,
1440- } ,
1422+ before ( async ( ) => {
1423+ await BUCKET . create ( {
1424+ retentionPolicy : {
1425+ retentionPeriod : BUCKET_RETENTION_PERIOD ,
14411426 } ,
1442- err => {
1443- if ( err ) {
1444- done ( err ) ;
1445- return ;
1446- }
1447-
1448- FILE . save ( 'data' , done ) ;
1449- }
1450- ) ;
1427+ } ) ;
1428+ await FILE . save ( 'data' ) ;
14511429 } ) ;
14521430
14531431 afterEach ( ( ) => {
@@ -1484,18 +1462,11 @@ describe('storage', () => {
14841462
14851463 const RETENTION_PERIOD_SECONDS = 5 ; // Each test has this much time!
14861464
1487- function createFile ( callback : GetFileCallback ) {
1465+ async function createFile ( ) : Promise < File > {
14881466 const file = BUCKET . file ( generateName ( ) ) ;
14891467 FILES . push ( file ) ;
1490-
1491- file . save ( 'data' , err => {
1492- if ( err ) {
1493- callback ( err ) ;
1494- return ;
1495- }
1496-
1497- callback ( null , file ) ;
1498- } ) ;
1468+ await file . save ( 'data' ) ;
1469+ return file ;
14991470 }
15001471
15011472 async function deleteFilesAsync ( ) {
@@ -1510,38 +1481,29 @@ describe('storage', () => {
15101481 ) ;
15111482 }
15121483
1513- before ( done => {
1514- BUCKET . create (
1515- {
1516- retentionPolicy : {
1517- retentionPeriod : RETENTION_PERIOD_SECONDS ,
1518- } ,
1484+ before ( async ( ) => {
1485+ await BUCKET . create ( {
1486+ retentionPolicy : {
1487+ retentionPeriod : RETENTION_PERIOD_SECONDS ,
15191488 } ,
1520- done
1521- ) ;
1489+ } ) ;
15221490 } ) ;
15231491
15241492 after ( ( ) => {
15251493 return deleteFilesAsync ( ) ;
15261494 } ) ;
15271495
15281496 it ( 'should block an overwrite request' , async ( ) => {
1529- createFile ( ( err , file ) => {
1530- assert . ifError ( err ) ;
1531- assert . rejects ( file ! . save ( 'new data' ) , ( err : ApiError ) => {
1532- assert . strictEqual ( err . code , 403 ) ;
1533- } ) ;
1497+ const file = await createFile ( ) ;
1498+ assert . rejects ( file . save ( 'new data' ) , ( err : ApiError ) => {
1499+ assert . strictEqual ( err . code , 403 ) ;
15341500 } ) ;
15351501 } ) ;
15361502
1537- it ( 'should block a delete request' , done => {
1538- createFile ( ( err , file ) => {
1539- assert . ifError ( err ) ;
1540-
1541- file ! . delete ( ( err : ApiError ) => {
1542- assert . strictEqual ( err . code , 403 ) ;
1543- done ( ) ;
1544- } ) ;
1503+ it ( 'should block a delete request' , async ( ) => {
1504+ const file = await createFile ( ) ;
1505+ assert . rejects ( file . delete ( ) , ( err : ApiError ) => {
1506+ assert . strictEqual ( err . code , 403 ) ;
15451507 } ) ;
15461508 } ) ;
15471509 } ) ;
@@ -1578,19 +1540,16 @@ describe('storage', () => {
15781540 process . env . GCN_STORAGE_2ND_PROJECT_ID !== undefined ;
15791541 let bucket : Bucket ;
15801542
1581- before ( done => {
1543+ before ( async ( ) => {
15821544 bucket = storage . bucket ( generateName ( ) ) ;
15831545
1584- bucket . create (
1585- {
1586- requesterPays : true ,
1587- } ,
1588- done
1589- ) ;
1546+ await bucket . create ( {
1547+ requesterPays : true ,
1548+ } ) ;
15901549 } ) ;
15911550
1592- after ( done => {
1593- bucket . delete ( done ) ;
1551+ after ( async ( ) => {
1552+ await bucket . delete ( ) ;
15941553 } ) ;
15951554
15961555 it ( 'should have enabled requesterPays functionality' , async ( ) => {
@@ -1613,62 +1572,33 @@ describe('storage', () => {
16131572 // the bucket object from the requesting user.
16141573 let bucketNonAllowList : Bucket ;
16151574
1616- function isRequesterPaysEnabled (
1617- callback : ( err : Error | null , isEnabled ?: boolean ) => void
1618- ) {
1619- bucket . getMetadata ( ( err : ApiError | null , metadata : Metadata ) => {
1620- if ( err ) {
1621- callback ( err ) ;
1622- return ;
1623- }
1624-
1625- const billing = metadata . billing || { } ;
1626- callback ( null , ! ! billing && billing . requesterPays === true ) ;
1627- } ) ;
1575+ async function isRequesterPaysEnabled ( ) : Promise < boolean > {
1576+ const [ metadata ] = await bucket . getMetadata ( ) ;
1577+ const billing = metadata . billing || { } ;
1578+ return ! ! billing && billing . requesterPays === true ;
16281579 }
16291580
1630- before ( done => {
1581+ before ( async ( ) => {
16311582 bucket = storage . bucket ( generateName ( ) ) ;
16321583 bucketNonAllowList = storageNonAllowList . bucket ( bucket . name ) ;
1633- bucket . create ( done ) ;
1584+ await bucket . create ( ) ;
16341585 } ) ;
16351586
1636- it ( 'should enable requesterPays' , done => {
1637- isRequesterPaysEnabled ( ( err , isEnabled ) => {
1638- assert . ifError ( err ) ;
1639- assert . strictEqual ( isEnabled , false ) ;
1640-
1641- bucket . enableRequesterPays ( err => {
1642- assert . ifError ( err ) ;
1643-
1644- isRequesterPaysEnabled ( ( err , isEnabled ) => {
1645- assert . ifError ( err ) ;
1646- assert . strictEqual ( isEnabled , true ) ;
1647- done ( ) ;
1648- } ) ;
1649- } ) ;
1650- } ) ;
1587+ it ( 'should enable requesterPays' , async ( ) => {
1588+ let isEnabled = await isRequesterPaysEnabled ( ) ;
1589+ assert . strictEqual ( isEnabled , false ) ;
1590+ await bucket . enableRequesterPays ( ) ;
1591+ isEnabled = await isRequesterPaysEnabled ( ) ;
1592+ assert . strictEqual ( isEnabled , true ) ;
16511593 } ) ;
16521594
1653- it ( 'should disable requesterPays' , done => {
1654- bucket . enableRequesterPays ( err => {
1655- assert . ifError ( err ) ;
1656-
1657- isRequesterPaysEnabled ( ( err , isEnabled ) => {
1658- assert . ifError ( err ) ;
1659- assert . strictEqual ( isEnabled , true ) ;
1660-
1661- bucket . disableRequesterPays ( err => {
1662- assert . ifError ( err ) ;
1663-
1664- isRequesterPaysEnabled ( ( err , isEnabled ) => {
1665- assert . ifError ( err ) ;
1666- assert . strictEqual ( isEnabled , false ) ;
1667- done ( ) ;
1668- } ) ;
1669- } ) ;
1670- } ) ;
1671- } ) ;
1595+ it ( 'should disable requesterPays' , async ( ) => {
1596+ await bucket . enableRequesterPays ( ) ;
1597+ let isEnabled = await isRequesterPaysEnabled ( ) ;
1598+ assert . strictEqual ( isEnabled , true ) ;
1599+ await bucket . disableRequesterPays ( ) ;
1600+ isEnabled = await isRequesterPaysEnabled ( ) ;
1601+ assert . strictEqual ( isEnabled , false ) ;
16721602 } ) ;
16731603
16741604 describe ( 'methods that accept userProject' , ( ) => {
@@ -2396,8 +2326,8 @@ describe('storage', () => {
23962326 } ) ;
23972327 const unencryptedFile = bucket . file ( file . name ) ;
23982328
2399- before ( done => {
2400- file . save ( 'secret data' , { resumable : false } , done ) ;
2329+ before ( async ( ) => {
2330+ await file . save ( 'secret data' , { resumable : false } ) ;
24012331 } ) ;
24022332
24032333 it ( 'should not get the hashes from the unencrypted file' , async ( ) => {
@@ -2512,9 +2442,9 @@ describe('storage', () => {
25122442 describe ( 'files' , ( ) => {
25132443 let file : File ;
25142444
2515- before ( done => {
2445+ before ( async ( ) => {
25162446 file = bucket . file ( 'kms-encrypted-file' , { kmsKeyName} ) ;
2517- file . save ( FILE_CONTENTS , { resumable : false } , done ) ;
2447+ await file . save ( FILE_CONTENTS , { resumable : false } ) ;
25182448 } ) ;
25192449
25202450 it ( 'should have set kmsKeyName on created file' , async ( ) => {
@@ -2588,13 +2518,10 @@ describe('storage', () => {
25882518 } ) ;
25892519 } ) ;
25902520
2591- after ( done => {
2592- bucket . setMetadata (
2593- {
2594- encryption : null ,
2595- } ,
2596- done
2597- ) ;
2521+ after ( async ( ) => {
2522+ await bucket . setMetadata ( {
2523+ encryption : null ,
2524+ } ) ;
25982525 } ) ;
25992526
26002527 it ( 'should have set defaultKmsKeyName on created bucket' , async ( ) => {
@@ -3076,30 +3003,19 @@ describe('storage', () => {
30763003 describe ( 'file generations' , ( ) => {
30773004 const bucketWithVersioning = storage . bucket ( generateName ( ) ) ;
30783005
3079- before ( done => {
3080- bucketWithVersioning . create (
3081- {
3082- versioning : {
3083- enabled : true ,
3084- } ,
3006+ before ( async ( ) => {
3007+ await bucketWithVersioning . create ( {
3008+ versioning : {
3009+ enabled : true ,
30853010 } ,
3086- done
3087- ) ;
3011+ } ) ;
30883012 } ) ;
30893013
3090- after ( done => {
3091- bucketWithVersioning . deleteFiles (
3092- {
3093- versions : true ,
3094- } ,
3095- err => {
3096- if ( err ) {
3097- done ( err ) ;
3098- return ;
3099- }
3100- bucketWithVersioning . delete ( done ) ;
3101- }
3102- ) ;
3014+ after ( async ( ) => {
3015+ await bucketWithVersioning . deleteFiles ( {
3016+ versions : true ,
3017+ } ) ;
3018+ await bucketWithVersioning . delete ( ) ;
31033019 } ) ;
31043020
31053021 it ( 'should overwrite file, then get older version' , async ( ) => {
0 commit comments