@vendure/testing 3.3.0 → 3.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.populateForTesting = populateForTesting;
4
4
  const generated_types_1 = require("@vendure/common/lib/generated-types");
5
+ const core_1 = require("@vendure/core");
5
6
  const cli_1 = require("@vendure/core/cli");
6
7
  const populate_customers_1 = require("./populate-customers");
7
8
  /* eslint-disable @typescript-eslint/no-floating-promises */
@@ -15,6 +16,7 @@ async function populateForTesting(config, bootstrapFn, options) {
15
16
  const originalRequireVerification = config.authOptions.requireVerification;
16
17
  config.authOptions.requireVerification = false;
17
18
  const app = await bootstrapFn(config);
19
+ await awaitOutstandingJobs(app);
18
20
  const logFn = (message) => (logging ? console.log(message) : null);
19
21
  await (0, cli_1.populateInitialData)(app, options.initialData);
20
22
  await populateProducts(app, options.productsCsvPath, logging);
@@ -23,6 +25,37 @@ async function populateForTesting(config, bootstrapFn, options) {
23
25
  config.authOptions.requireVerification = originalRequireVerification;
24
26
  return app;
25
27
  }
28
+ /**
29
+ * Sometimes there will be jobs created during the bootstrap process, e.g. when
30
+ * a plugin needs to create certain entities during bootstrap, which might then
31
+ * trigger e.g. search index update jobs. This can lead to very hard-to-debug
32
+ * failures in e2e tests suites (specifically at this moment, consistent failures
33
+ * of the sql.js tests on Node v20).
34
+ *
35
+ * This function will wait for all outstanding jobs to finish before returning.
36
+ */
37
+ async function awaitOutstandingJobs(app) {
38
+ const { jobQueueStrategy } = app.get(core_1.ConfigService).jobQueueOptions;
39
+ const maxAttempts = 10;
40
+ let attempts = 0;
41
+ if ((0, core_1.isInspectableJobQueueStrategy)(jobQueueStrategy)) {
42
+ const inspectableJobQueueStrategy = jobQueueStrategy;
43
+ function waitForJobQueueToBeIdle() {
44
+ return new Promise(resolve => {
45
+ const interval = setInterval(async () => {
46
+ attempts++;
47
+ const { items } = await inspectableJobQueueStrategy.findMany();
48
+ const jobsOutstanding = items.filter(i => i.state === 'RUNNING' || i.state === 'PENDING');
49
+ if (jobsOutstanding.length === 0 || attempts >= maxAttempts) {
50
+ clearInterval(interval);
51
+ resolve();
52
+ }
53
+ }, 500);
54
+ });
55
+ }
56
+ await waitForJobQueueToBeIdle();
57
+ }
58
+ }
26
59
  async function populateProducts(app, productsCsvPath, logging) {
27
60
  if (!productsCsvPath) {
28
61
  if (logging) {
@@ -1 +1 @@
1
- {"version":3,"file":"populate-for-testing.js","sourceRoot":"","sources":["../../src/data-population/populate-for-testing.ts"],"names":[],"mappings":";;AAcA,gDAqBC;AAjCD,yEAAmE;AAEnE,2CAAoG;AAIpG,6DAAyD;AAEzD,4DAA4D;AAC5D;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACpC,MAA+B,EAC/B,WAAkD,EAClD,OAA0B;;IAEzB,MAAM,CAAC,mBAA2B,CAAC,OAAO,GAAG,KAAK,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACvE,MAAM,2BAA2B,GAAG,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC;IAC3E,MAAM,CAAC,WAAW,CAAC,mBAAmB,GAAG,KAAK,CAAC;IAE/C,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3E,MAAM,IAAA,yBAAmB,EAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,IAAA,yBAAmB,EAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,IAAA,sCAAiB,EAAC,GAAG,EAAE,MAAA,OAAO,CAAC,aAAa,mCAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAEjE,MAAM,CAAC,WAAW,CAAC,mBAAmB,GAAG,2BAA2B,CAAC;IACrE,OAAO,GAAG,CAAC;AACf,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC3B,GAA4B,EAC5B,eAAmC,EACnC,OAAgB;IAEhB,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACvE,CAAC;QACD,OAAO;IACX,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAqB,EAAC,GAAG,EAAE,eAAe,EAAE,8BAAY,CAAC,EAAE,CAAC,CAAC;IACxF,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,kDAAkD,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,CAAC,QAAQ,WAAW,CAAC,CAAC;IAChE,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"populate-for-testing.js","sourceRoot":"","sources":["../../src/data-population/populate-for-testing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/testing",
3
- "version": "3.3.0",
3
+ "version": "3.3.2",
4
4
  "description": "End-to-end testing tools for Vendure projects",
5
5
  "keywords": [
6
6
  "vendure",
@@ -38,24 +38,24 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@graphql-typed-document-node/core": "^3.2.0",
41
- "@vendure/common": "3.3.0",
41
+ "@vendure/common": "3.3.2",
42
42
  "faker": "^4.1.0",
43
43
  "form-data": "^4.0.0",
44
44
  "graphql": "^16.10.0",
45
45
  "graphql-tag": "^2.12.6",
46
46
  "node-fetch": "^2.7.0",
47
- "sql.js": "1.8.0"
47
+ "sql.js": "1.13.0"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/faker": "^5.5.9",
51
51
  "@types/mysql": "^2.15.26",
52
52
  "@types/node-fetch": "^2.6.4",
53
53
  "@types/pg": "^8.11.2",
54
- "@vendure/core": "3.3.0",
54
+ "@vendure/core": "3.3.2",
55
55
  "mysql": "^2.18.1",
56
56
  "pg": "^8.11.3",
57
57
  "rimraf": "^5.0.5",
58
58
  "typescript": "5.8.2"
59
59
  },
60
- "gitHead": "a4c56359ec831b0c54dd01eab14fb75455c43ab7"
60
+ "gitHead": "18a7e1f05da5921cc9478db90066654e502bea41"
61
61
  }