Skip to content

Commit 3f74801

Browse files
test: grant proper permissions to bucket destination (#706)
1 parent 00203d2 commit 3f74801

1 file changed

Lines changed: 25 additions & 26 deletions

File tree

handwritten/logging/system-test/logging.ts

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,34 @@ nock(HOST_ADDRESS)
3232
.replyWithError({code: 'ENOTFOUND'})
3333
.persist();
3434

35-
describe('Logging', () => {
36-
let PROJECT_ID: string;
37-
const TESTS_PREFIX = 'nodejs-logging-system-test';
38-
const WRITE_CONSISTENCY_DELAY_MS = 5000;
39-
35+
describe('Logging', async () => {
4036
const bigQuery = new BigQuery();
4137
const pubsub = new PubSub();
4238
const storage = new Storage();
4339
const logging = new Logging();
4440

41+
const PROJECT_ID = await logging.auth.getProjectId();
42+
const TESTS_PREFIX = 'nodejs-logging-system-test';
43+
const WRITE_CONSISTENCY_DELAY_MS = 5000;
44+
4545
// Create the possible destinations for sinks that we will create.
4646
const bucket = storage.bucket(generateName());
4747
const dataset = bigQuery.dataset(generateName().replace(/-/g, '_'));
4848
const topic = pubsub.topic(generateName());
4949

50-
before(async () => {
51-
await Promise.all([
52-
bucket.create(),
53-
dataset.create(),
54-
topic.create(),
55-
logging.auth.getProjectId().then(projectId => {
56-
PROJECT_ID = projectId;
57-
}),
58-
]);
50+
const serviceAccount = (await logging.auth.getCredentials()).client_email;
51+
52+
await bucket.create();
53+
await bucket.iam.setPolicy({
54+
bindings: [
55+
{
56+
role: 'roles/storage.admin',
57+
members: [`serviceAccount:${serviceAccount}`],
58+
},
59+
],
5960
});
61+
await dataset.create();
62+
await topic.create();
6063

6164
after(async () => {
6265
const oneHourAgo = new Date();
@@ -71,19 +74,15 @@ describe('Logging', () => {
7174
]);
7275

7376
async function deleteBuckets() {
74-
const [buckets] = await storage.getBuckets({
75-
prefix: TESTS_PREFIX,
77+
const [buckets] = await storage.getBuckets({prefix: TESTS_PREFIX});
78+
const bucketsToDelete = buckets.filter(bucket => {
79+
return new Date(bucket.metadata.timeCreated) < oneHourAgo;
7680
});
77-
return Promise.all(
78-
buckets
79-
.filter(bucket => {
80-
return new Date(bucket.metadata.timeCreated) < oneHourAgo;
81-
})
82-
.map(async bucket => {
83-
await bucket.deleteFiles();
84-
await bucket.delete();
85-
})
86-
);
81+
82+
for (const bucket of bucketsToDelete) {
83+
await bucket.deleteFiles();
84+
await bucket.delete();
85+
}
8786
}
8887

8988
async function deleteDatasets() {

0 commit comments

Comments
 (0)