Skip to content
This repository was archived by the owner on Mar 3, 2026. It is now read-only.

Commit 0845525

Browse files
authored
refactor: change system tests to use await (pt2) (#2027)
* refactor: change system tests to use await (pt2) * test debugging * fixed bug
1 parent a0da9cb commit 0845525

1 file changed

Lines changed: 75 additions & 159 deletions

File tree

system-test/storage.ts

Lines changed: 75 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,14 @@ import {promisify} from 'util';
2323
import * as path from 'path';
2424
import * as tmp from 'tmp';
2525
import * as uuid from 'uuid';
26-
import {ApiError, Metadata} from '../src/nodejs-common';
26+
import {ApiError} from '../src/nodejs-common';
2727
import {
2828
Storage,
2929
Bucket,
3030
File,
3131
AccessControlObject,
3232
Notification,
3333
DeleteBucketCallback,
34-
GetFileCallback,
3534
CRC32C,
3635
} from '../src';
3736
import * 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

Comments
 (0)