@@ -16,6 +16,7 @@ import {
1616 ListObjectsCommand,
1717 PutObjectCommand,
1818 S3Client,
19+ waitUntilObjectNotExists,
1920} from "@aws-sdk/client-s3";
2021
2122import { dirnameFromMetaUrl } from "@aws-doc-sdk-examples/lib/utils/util-fs.js";
@@ -42,7 +43,7 @@ config();
4243
4344const dirname = dirnameFromMetaUrl(import.meta.url);
4445const cdkAppPath = `${dirname}../../../../resources/cdk/glue_role_bucket/setup.yaml`;
45- const stackName = `glue-test-stack-${Date.now()} `;
46+ const stackName = `glue-test-stack`;
4647const fiveMinutesInMs = 5 * 60 * 1000; // 5 Minutes
4748const fiveMinutesInSeconds = fiveMinutesInMs / 1000;
4849
@@ -83,9 +84,10 @@ const emptyS3Bucket = async (bucketName) => {
8384 const { Contents } = await client.send(listCommand);
8485
8586 await Promise.all(
86- Contents.map(({ Key }) =>
87- client.send(new DeleteObjectCommand({ Bucket: bucketName, Key })),
88- ),
87+ Contents.map(async ({ Key }) => {
88+ await client.send(new DeleteObjectCommand({ Bucket: bucketName, Key }));
89+ await waitUntilObjectNotExists({ client }, { Bucket: bucketName, Key });
90+ }),
8991 );
9092};
9193
@@ -113,18 +115,14 @@ describe("actions", () => {
113115 }, fiveMinutesInMs);
114116
115117 afterAll(async () => {
116- try {
117- await emptyS3Bucket(bucketName).catch(console.error);
118- await deleteTable("doc-example-database", "doc-example-csv").catch(
119- console.error,
120- );
121- await deleteDatabase("doc-example-database");
122- await deleteCrawler("s3-flight-data-crawler").catch(console.error);
123- await deleteJob("flight_etl_job").catch(console.error);
124- await deleteStack().catch(console.error);
125- } catch (err) {
126- console.error(err);
127- }
118+ await emptyS3Bucket(bucketName).catch(console.error);
119+ await deleteTable("doc-example-database", "doc-example-csv").catch(
120+ console.error,
121+ );
122+ await deleteDatabase("doc-example-database").catch(console.error);
123+ await deleteCrawler("s3-flight-data-crawler").catch(console.error);
124+ await deleteJob("flight_etl_job").catch(console.error);
125+ await deleteStack().catch(console.error);
128126 }, fiveMinutesInMs);
129127
130128 const addPythonScriptToBucket = async () => {
@@ -207,20 +205,16 @@ describe("actions", () => {
207205 expect(JobRuns[0].JobName).toBe("flight_etl_job");
208206 };
209207
210- it(
211- "should run",
212- async () => {
213- await addPythonScriptToBucket();
214- await testCreateCrawler();
215- await testCreateJob(bucketName, roleName);
216- await testListJobs();
217- await testStartCrawler();
218- await testGetDatabases();
219- await testGetDatabase();
220- await testGetTables();
221- await testStartJobRun(bucketName);
222- await testGetJobRuns();
223- },
224- { timeout: fiveMinutesInMs * 5 },
225- );
208+ it("should run", { timeout: fiveMinutesInMs * 5 }, async () => {
209+ await addPythonScriptToBucket();
210+ await testCreateCrawler();
211+ await testCreateJob(bucketName, roleName);
212+ await testListJobs();
213+ await testStartCrawler();
214+ await testGetDatabases();
215+ await testGetDatabase();
216+ await testGetTables();
217+ await testStartJobRun(bucketName);
218+ await testGetJobRuns();
219+ });
226220});
0 commit comments