Browse Source

test(core): Add configurable delay to awaitRunningJobs

Michael Bromley 4 years ago
parent
commit
c74e3120e6

+ 14 - 14
packages/core/e2e/collection.e2e-spec.ts

@@ -408,7 +408,7 @@ describe('Collection resolver', () => {
                 },
             });
 
-            await awaitRunningJobs(adminClient);
+            await awaitRunningJobs(adminClient, 5000, 500);
             expect(updateCollection).toMatchSnapshot();
 
             pearCollection = updateCollection;
@@ -425,7 +425,7 @@ describe('Collection resolver', () => {
                     featuredAssetId: assets[3].id,
                 },
             });
-            await awaitRunningJobs(adminClient);
+            await awaitRunningJobs(adminClient, 5000, 500);
             expect(updateCollection.assets.map(a => a.id)).toEqual([assets[3].id, assets[0].id]);
         });
 
@@ -439,7 +439,7 @@ describe('Collection resolver', () => {
                     assetIds: [],
                 },
             });
-            await awaitRunningJobs(adminClient);
+            await awaitRunningJobs(adminClient, 5000, 500);
             expect(updateCollection.assets).toEqual([]);
             expect(updateCollection.featuredAsset).toBeNull();
         });
@@ -712,7 +712,7 @@ describe('Collection resolver', () => {
         });
 
         it('re-evaluates Collection contents on move', async () => {
-            await awaitRunningJobs(adminClient);
+            await awaitRunningJobs(adminClient, 5000, 500);
 
             const result = await adminClient.query<
                 GetCollectionProducts.Query,
@@ -922,7 +922,7 @@ describe('Collection resolver', () => {
                 },
             );
             collectionToDeleteChild = result2.createCollection;
-            await awaitRunningJobs(adminClient);
+            await awaitRunningJobs(adminClient, 5000, 500);
         });
 
         it(
@@ -1166,7 +1166,7 @@ describe('Collection resolver', () => {
                     } as CreateCollectionInput,
                 });
 
-                await awaitRunningJobs(adminClient);
+                await awaitRunningJobs(adminClient, 5000, 500);
                 const { collection } = await adminClient.query<GetCollection.Query, GetCollection.Variables>(
                     GET_COLLECTION,
                     {
@@ -1211,7 +1211,7 @@ describe('Collection resolver', () => {
                     } as CreateCollectionInput,
                 });
 
-                await awaitRunningJobs(adminClient);
+                await awaitRunningJobs(adminClient, 5000, 500);
                 const { collection } = await adminClient.query<GetCollection.Query, GetCollection.Variables>(
                     GET_COLLECTION,
                     {
@@ -1265,7 +1265,7 @@ describe('Collection resolver', () => {
                     } as CreateCollectionInput,
                 });
 
-                await awaitRunningJobs(adminClient);
+                await awaitRunningJobs(adminClient, 5000, 500);
                 const { collection } = await adminClient.query<GetCollection.Query, GetCollection.Variables>(
                     GET_COLLECTION,
                     {
@@ -1321,7 +1321,7 @@ describe('Collection resolver', () => {
                         ],
                     },
                 });
-                await awaitRunningJobs(adminClient);
+                await awaitRunningJobs(adminClient, 5000, 500);
                 return createCollection;
             }
 
@@ -1469,7 +1469,7 @@ describe('Collection resolver', () => {
                     },
                 });
 
-                await awaitRunningJobs(adminClient);
+                await awaitRunningJobs(adminClient, 5000, 500);
 
                 const result = await adminClient.query<
                     GetCollectionProducts.Query,
@@ -1502,7 +1502,7 @@ describe('Collection resolver', () => {
                     },
                 );
 
-                await awaitRunningJobs(adminClient);
+                await awaitRunningJobs(adminClient, 5000, 500);
 
                 const result = await adminClient.query<
                     GetCollectionProducts.Query,
@@ -1536,7 +1536,7 @@ describe('Collection resolver', () => {
                     },
                 );
 
-                await awaitRunningJobs(adminClient);
+                await awaitRunningJobs(adminClient, 5000, 500);
 
                 const result = await adminClient.query<
                     GetCollectionProducts.Query,
@@ -1589,7 +1589,7 @@ describe('Collection resolver', () => {
                 } as CreateCollectionInput,
             });
 
-            await awaitRunningJobs(adminClient);
+            await awaitRunningJobs(adminClient, 5000, 500);
 
             const result = await adminClient.query<
                 GetCollectionProducts.Query,
@@ -1680,7 +1680,7 @@ describe('Collection resolver', () => {
                     input: [{ id: 'T_1', enabled: false }],
                 },
             );
-            await awaitRunningJobs(adminClient);
+            await awaitRunningJobs(adminClient, 5000, 500);
 
             const { collection } = await shopClient.query<
                 GetCollectionProducts.Query,

+ 6 - 2
packages/core/e2e/utils/await-running-jobs.ts

@@ -7,13 +7,17 @@ import { GET_RUNNING_JOBS } from '../graphql/shared-definitions';
  * For mutation which trigger background jobs, this can be used to "pause" the execution of
  * the test until those jobs have completed;
  */
-export async function awaitRunningJobs(adminClient: SimpleGraphQLClient, timeout: number = 5000) {
+export async function awaitRunningJobs(
+    adminClient: SimpleGraphQLClient,
+    timeout: number = 5000,
+    delay = 100,
+) {
     let runningJobs = 0;
     const startTime = +new Date();
     let timedOut = false;
     // Allow a brief period for the jobs to start in the case that
     // e.g. event debouncing is used before triggering the job.
-    await new Promise(resolve => setTimeout(resolve, 100));
+    await new Promise(resolve => setTimeout(resolve, delay));
     do {
         const { jobs } = await adminClient.query<GetRunningJobs.Query, GetRunningJobs.Variables>(
             GET_RUNNING_JOBS,