@vendure/testing 1.4.0-beta.0 → 1.4.3

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.
@@ -1,3 +1,4 @@
1
+ import { CreateAddressInput, CreateCustomerInput } from '@vendure/common/lib/generated-types';
1
2
  import { SimpleGraphQLClient } from '../simple-graphql-client';
2
3
  /**
3
4
  * A service for creating mock data via the GraphQL API.
@@ -7,6 +8,14 @@ export declare class MockDataService {
7
8
  private logging;
8
9
  apiUrl: string;
9
10
  constructor(client: SimpleGraphQLClient, logging?: boolean);
11
+ static getCustomers(count: number): Array<{
12
+ customer: CreateCustomerInput;
13
+ address: CreateAddressInput;
14
+ }>;
15
+ /**
16
+ * @deprecated
17
+ * Use `MockDataService.getCustomers()` and create customers directly with CustomerService.
18
+ */
10
19
  populateCustomers(count?: number): Promise<any>;
11
20
  private log;
12
21
  }
@@ -17,6 +17,34 @@ class MockDataService {
17
17
  // make the generated results deterministic
18
18
  en_GB_1.default.seed(1);
19
19
  }
20
+ static getCustomers(count) {
21
+ en_GB_1.default.seed(1);
22
+ const results = [];
23
+ for (let i = 0; i < count; i++) {
24
+ const firstName = en_GB_1.default.name.firstName();
25
+ const lastName = en_GB_1.default.name.lastName();
26
+ const customer = {
27
+ firstName,
28
+ lastName,
29
+ emailAddress: en_GB_1.default.internet.email(firstName, lastName),
30
+ phoneNumber: en_GB_1.default.phone.phoneNumber(),
31
+ };
32
+ const address = {
33
+ fullName: `${firstName} ${lastName}`,
34
+ streetLine1: en_GB_1.default.address.streetAddress(),
35
+ city: en_GB_1.default.address.city(),
36
+ province: en_GB_1.default.address.county(),
37
+ postalCode: en_GB_1.default.address.zipCode(),
38
+ countryCode: 'GB',
39
+ };
40
+ results.push({ customer, address });
41
+ }
42
+ return results;
43
+ }
44
+ /**
45
+ * @deprecated
46
+ * Use `MockDataService.getCustomers()` and create customers directly with CustomerService.
47
+ */
20
48
  async populateCustomers(count = 5) {
21
49
  for (let i = 0; i < count; i++) {
22
50
  const firstName = en_GB_1.default.name.firstName();
@@ -45,7 +73,7 @@ class MockDataService {
45
73
  .then((data) => data.createCustomer, err => this.log(err));
46
74
  if (customer) {
47
75
  const query2 = graphql_tag_1.default `
48
- mutation($customerId: ID!, $input: CreateAddressInput!) {
76
+ mutation ($customerId: ID!, $input: CreateAddressInput!) {
49
77
  createCustomerAddress(customerId: $customerId, input: $input) {
50
78
  id
51
79
  streetLine1
@@ -1 +1 @@
1
- {"version":3,"file":"mock-data.service.js","sourceRoot":"","sources":["../../src/data-population/mock-data.service.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAuC;AACvC,8DAA8B;AAI9B,4BAA4B;AAC5B;;GAEG;AACH,MAAa,eAAe;IAGxB,YAAoB,MAA2B,EAAU,UAAU,IAAI;QAAnD,WAAM,GAAN,MAAM,CAAqB;QAAU,YAAO,GAAP,OAAO,CAAO;QACnE,2CAA2C;QAC3C,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAgB,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,SAAS,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEvC,MAAM,MAAM,GAAG,qBAAG,CAAA;;;;;;;;;aASjB,CAAC;YAEF,MAAM,UAAU,GAAG;gBACf,KAAK,EAAE;oBACH,SAAS;oBACT,QAAQ;oBACR,YAAY,EAAE,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC;oBACvD,WAAW,EAAE,eAAK,CAAC,KAAK,CAAC,WAAW,EAAE;iBACzC;gBACD,QAAQ,EAAE,MAAM;aACnB,CAAC;YAEF,MAAM,QAAQ,GAAgD,MAAM,IAAI,CAAC,MAAM;iBAC1E,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;iBACzB,IAAI,CACD,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,EAClC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CACvB,CAAC;YAEN,IAAI,QAAQ,EAAE;gBACV,MAAM,MAAM,GAAG,qBAAG,CAAA;;;;;;;iBAOjB,CAAC;gBAEF,MAAM,UAAU,GAAG;oBACf,KAAK,EAAE;wBACH,QAAQ,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAE;wBACpC,WAAW,EAAE,eAAK,CAAC,OAAO,CAAC,aAAa,EAAE;wBAC1C,IAAI,EAAE,eAAK,CAAC,OAAO,CAAC,IAAI,EAAE;wBAC1B,QAAQ,EAAE,eAAK,CAAC,OAAO,CAAC,MAAM,EAAE;wBAChC,UAAU,EAAE,eAAK,CAAC,OAAO,CAAC,OAAO,EAAE;wBACnC,WAAW,EAAE,IAAI;qBACpB;oBACD,UAAU,EAAE,QAAQ,CAAC,EAAE;iBAC1B,CAAC;gBAEF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aAC3E;SACJ;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC;IAC3C,CAAC;IAEO,GAAG,CAAC,GAAG,IAAW;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SACxB;IACL,CAAC;CACJ;AA1ED,0CA0EC"}
1
+ {"version":3,"file":"mock-data.service.js","sourceRoot":"","sources":["../../src/data-population/mock-data.service.ts"],"names":[],"mappings":";;;;;;AACA,+DAAuC;AACvC,8DAA8B;AAI9B,4BAA4B;AAC5B;;GAEG;AACH,MAAa,eAAe;IAGxB,YAAoB,MAA2B,EAAU,UAAU,IAAI;QAAnD,WAAM,GAAN,MAAM,CAAqB;QAAU,YAAO,GAAP,OAAO,CAAO;QACnE,2CAA2C;QAC3C,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,YAAY,CACf,KAAa;QAEb,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,OAAO,GAA0E,EAAE,CAAC;QAC1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,SAAS,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAwB;gBAClC,SAAS;gBACT,QAAQ;gBACR,YAAY,EAAE,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC;gBACvD,WAAW,EAAE,eAAK,CAAC,KAAK,CAAC,WAAW,EAAE;aACzC,CAAC;YACF,MAAM,OAAO,GAAuB;gBAChC,QAAQ,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAE;gBACpC,WAAW,EAAE,eAAK,CAAC,OAAO,CAAC,aAAa,EAAE;gBAC1C,IAAI,EAAE,eAAK,CAAC,OAAO,CAAC,IAAI,EAAE;gBAC1B,QAAQ,EAAE,eAAK,CAAC,OAAO,CAAC,MAAM,EAAE;gBAChC,UAAU,EAAE,eAAK,CAAC,OAAO,CAAC,OAAO,EAAE;gBACnC,WAAW,EAAE,IAAI;aACpB,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;SACvC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,SAAS,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEvC,MAAM,MAAM,GAAG,qBAAG,CAAA;;;;;;;;;aASjB,CAAC;YAEF,MAAM,UAAU,GAAG;gBACf,KAAK,EAAE;oBACH,SAAS;oBACT,QAAQ;oBACR,YAAY,EAAE,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC;oBACvD,WAAW,EAAE,eAAK,CAAC,KAAK,CAAC,WAAW,EAAE;iBACzC;gBACD,QAAQ,EAAE,MAAM;aACnB,CAAC;YAEF,MAAM,QAAQ,GAAgD,MAAM,IAAI,CAAC,MAAM;iBAC1E,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;iBACzB,IAAI,CACD,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,EAClC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CACvB,CAAC;YAEN,IAAI,QAAQ,EAAE;gBACV,MAAM,MAAM,GAAG,qBAAG,CAAA;;;;;;;iBAOjB,CAAC;gBAEF,MAAM,UAAU,GAAG;oBACf,KAAK,EAAE;wBACH,QAAQ,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAE;wBACpC,WAAW,EAAE,eAAK,CAAC,OAAO,CAAC,aAAa,EAAE;wBAC1C,IAAI,EAAE,eAAK,CAAC,OAAO,CAAC,IAAI,EAAE;wBAC1B,QAAQ,EAAE,eAAK,CAAC,OAAO,CAAC,MAAM,EAAE;wBAChC,UAAU,EAAE,eAAK,CAAC,OAAO,CAAC,OAAO,EAAE;wBACnC,WAAW,EAAE,IAAI;qBACpB;oBACD,UAAU,EAAE,QAAQ,CAAC,EAAE;iBAC1B,CAAC;gBAEF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aAC3E;SACJ;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC;IAC3C,CAAC;IAEO,GAAG,CAAC,GAAG,IAAW;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SACxB;IACL,CAAC;CACJ;AAzGD,0CAyGC"}
@@ -1,6 +1,5 @@
1
- import { VendureConfig } from '@vendure/core';
2
- import { SimpleGraphQLClient } from '../simple-graphql-client';
1
+ import { INestApplicationContext } from '@nestjs/common';
3
2
  /**
4
3
  * Creates customers with addresses by making API calls to the Admin API.
5
4
  */
6
- export declare function populateCustomers(count: number, config: Required<VendureConfig>, logging?: boolean, simpleGraphQLClient?: SimpleGraphQLClient): Promise<void>;
5
+ export declare function populateCustomers(app: INestApplicationContext, count: number, loggingFn: (message: string) => void): Promise<void>;
@@ -1,16 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.populateCustomers = void 0;
4
- const simple_graphql_client_1 = require("../simple-graphql-client");
4
+ const core_1 = require("@vendure/core");
5
+ const get_superadmin_context_1 = require("../utils/get-superadmin-context");
5
6
  const mock_data_service_1 = require("./mock-data.service");
6
7
  /**
7
8
  * Creates customers with addresses by making API calls to the Admin API.
8
9
  */
9
- async function populateCustomers(count, config, logging = false, simpleGraphQLClient = new simple_graphql_client_1.SimpleGraphQLClient(config, `http://localhost:${config.apiOptions.port}/${config.apiOptions.adminApiPath}`)) {
10
- const client = simpleGraphQLClient;
11
- await client.asSuperAdmin();
12
- const mockDataService = new mock_data_service_1.MockDataService(client, logging);
13
- await mockDataService.populateCustomers(count);
10
+ async function populateCustomers(app, count, loggingFn) {
11
+ const customerService = app.get(core_1.CustomerService);
12
+ const customerData = mock_data_service_1.MockDataService.getCustomers(count);
13
+ const ctx = await get_superadmin_context_1.getSuperadminContext(app);
14
+ const password = 'test';
15
+ for (const { customer, address } of customerData) {
16
+ try {
17
+ const createdCustomer = await customerService.create(ctx, customer, password);
18
+ if (core_1.isGraphQlErrorResult(createdCustomer)) {
19
+ loggingFn(`Failed to create customer: ${createdCustomer.message}`);
20
+ continue;
21
+ }
22
+ await customerService.createAddress(ctx, createdCustomer.id, address);
23
+ }
24
+ catch (e) {
25
+ loggingFn(`Failed to create customer: ${e.message}`);
26
+ }
27
+ }
14
28
  }
15
29
  exports.populateCustomers = populateCustomers;
16
30
  //# sourceMappingURL=populate-customers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"populate-customers.js","sourceRoot":"","sources":["../../src/data-population/populate-customers.ts"],"names":[],"mappings":";;;AAEA,oEAA+D;AAE/D,2DAAsD;AAEtD;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACnC,KAAa,EACb,MAA+B,EAC/B,UAAmB,KAAK,EACxB,mBAAmB,GAAG,IAAI,2CAAmB,CACzC,MAAM,EACN,oBAAoB,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,CACjF;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC;IACnC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,IAAI,mCAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAbD,8CAaC"}
1
+ {"version":3,"file":"populate-customers.js","sourceRoot":"","sources":["../../src/data-population/populate-customers.ts"],"names":[],"mappings":";;;AACA,wCAAsF;AAEtF,4EAAuE;AAEvE,2DAAsD;AAEtD;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACnC,GAA4B,EAC5B,KAAa,EACb,SAAoC;IAEpC,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,sBAAe,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,mCAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,6CAAoB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC;IACxB,KAAK,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,YAAY,EAAE;QAC9C,IAAI;YACA,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9E,IAAI,2BAAoB,CAAC,eAAe,CAAC,EAAE;gBACvC,SAAS,CAAC,8BAA8B,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnE,SAAS;aACZ;YACD,MAAM,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SACzE;QAAC,OAAO,CAAC,EAAE;YACR,SAAS,CAAC,8BAA8B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SACxD;KACJ;AACL,CAAC;AArBD,8CAqBC"}
@@ -19,7 +19,7 @@ async function populateForTesting(config, bootstrapFn, options) {
19
19
  await cli_1.populateInitialData(app, options.initialData, logFn);
20
20
  await populateProducts(app, options.productsCsvPath, logging);
21
21
  await cli_1.populateCollections(app, options.initialData, logFn);
22
- await populate_customers_1.populateCustomers((_a = options.customerCount) !== null && _a !== void 0 ? _a : 10, config, logging);
22
+ await populate_customers_1.populateCustomers(app, (_a = options.customerCount) !== null && _a !== void 0 ? _a : 10, logFn);
23
23
  config.authOptions.requireVerification = originalRequireVerification;
24
24
  return app;
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"populate-for-testing.js","sourceRoot":"","sources":["../../src/data-population/populate-for-testing.ts"],"names":[],"mappings":";;;AAEA,yEAAmE;AAEnE,2CAAoG;AAIpG,6DAAyD;AAEzD,sCAAsC;AACtC;;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,yBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,yBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,sCAAiB,CAAC,MAAA,OAAO,CAAC,aAAa,mCAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtE,MAAM,CAAC,WAAW,CAAC,mBAAmB,GAAG,2BAA2B,CAAC;IACrE,OAAO,GAAG,CAAC;AACf,CAAC;AArBD,gDAqBC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAA4B,EAAE,eAAuB,EAAE,OAAgB;IACnG,MAAM,YAAY,GAAG,MAAM,2BAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,8BAAY,CAAC,EAAE,CAAC,CAAC;IACxF,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,kDAAkD,CAAC,CAAC;QAC7F,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;IAED,IAAI,OAAO,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,CAAC,QAAQ,WAAW,CAAC,CAAC;KAC/D;AACL,CAAC"}
1
+ {"version":3,"file":"populate-for-testing.js","sourceRoot":"","sources":["../../src/data-population/populate-for-testing.ts"],"names":[],"mappings":";;;AAEA,yEAAmE;AAEnE,2CAAoG;AAIpG,6DAAyD;AAEzD,sCAAsC;AACtC;;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,yBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,yBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,sCAAiB,CAAC,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;AArBD,gDAqBC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAA4B,EAAE,eAAuB,EAAE,OAAgB;IACnG,MAAM,YAAY,GAAG,MAAM,2BAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,8BAAY,CAAC,EAAE,CAAC,CAAC;IACxF,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,kDAAkD,CAAC,CAAC;QAC7F,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;IAED,IAAI,OAAO,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,CAAC,QAAQ,WAAW,CAAC,CAAC;KAC/D;AACL,CAAC"}
package/lib/index.d.ts CHANGED
@@ -12,3 +12,4 @@ export * from './initializers/postgres-initializer';
12
12
  export * from './initializers/sqljs-initializer';
13
13
  export * from './testing-logger';
14
14
  export * from './types';
15
+ export * from './utils/get-default-channel-token';
package/lib/index.js CHANGED
@@ -24,4 +24,5 @@ __exportStar(require("./initializers/postgres-initializer"), exports);
24
24
  __exportStar(require("./initializers/sqljs-initializer"), exports);
25
25
  __exportStar(require("./testing-logger"), exports);
26
26
  __exportStar(require("./types"), exports);
27
+ __exportStar(require("./utils/get-default-channel-token"), exports);
27
28
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0DAAwC;AACxC,gDAA8B;AAC9B,uDAAqC;AACrC,4DAA0C;AAC1C,qEAAmD;AACnD,uEAAqD;AACrD,uDAAqC;AACrC,8DAA4C;AAC5C,qEAAmD;AACnD,mEAAiD;AACjD,sEAAoD;AACpD,mEAAiD;AACjD,mDAAiC;AACjC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0DAAwC;AACxC,gDAA8B;AAC9B,uDAAqC;AACrC,4DAA0C;AAC1C,qEAAmD;AACnD,uEAAqD;AACrD,uDAAqC;AACrC,8DAA4C;AAC5C,qEAAmD;AACnD,mEAAiD;AACjD,sEAAoD;AACpD,mEAAiD;AACjD,mDAAiC;AACjC,0CAAwB;AACxB,oEAAkD"}
@@ -2,9 +2,16 @@ import { SqljsConnectionOptions } from 'typeorm/driver/sqljs/SqljsConnectionOpti
2
2
  import { TestDbInitializer } from './test-db-initializer';
3
3
  export declare class SqljsInitializer implements TestDbInitializer<SqljsConnectionOptions> {
4
4
  private dataDir;
5
+ private postPopulateTimeoutMs;
5
6
  private dbFilePath;
6
7
  private connectionOptions;
7
- constructor(dataDir: string);
8
+ /**
9
+ * @param dataDir
10
+ * @param postPopulateTimeoutMs Allows you to specify a timeout to wait after the population
11
+ * step and before the server is shut down. Can resolve occasional race condition issues with
12
+ * the job queue.
13
+ */
14
+ constructor(dataDir: string, postPopulateTimeoutMs?: number);
8
15
  init(testFileName: string, connectionOptions: SqljsConnectionOptions): Promise<SqljsConnectionOptions>;
9
16
  populate(populateFn: () => Promise<void>): Promise<void>;
10
17
  destroy(): void | Promise<void>;
@@ -7,8 +7,15 @@ exports.SqljsInitializer = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  class SqljsInitializer {
10
- constructor(dataDir) {
10
+ /**
11
+ * @param dataDir
12
+ * @param postPopulateTimeoutMs Allows you to specify a timeout to wait after the population
13
+ * step and before the server is shut down. Can resolve occasional race condition issues with
14
+ * the job queue.
15
+ */
16
+ constructor(dataDir, postPopulateTimeoutMs = 0) {
11
17
  this.dataDir = dataDir;
18
+ this.postPopulateTimeoutMs = postPopulateTimeoutMs;
12
19
  }
13
20
  async init(testFileName, connectionOptions) {
14
21
  this.dbFilePath = this.getDbFilePath(testFileName);
@@ -25,6 +32,7 @@ class SqljsInitializer {
25
32
  this.connectionOptions.autoSave = true;
26
33
  this.connectionOptions.synchronize = true;
27
34
  await populateFn();
35
+ await new Promise(resolve => setTimeout(resolve, this.postPopulateTimeoutMs));
28
36
  this.connectionOptions.autoSave = false;
29
37
  this.connectionOptions.synchronize = false;
30
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sqljs-initializer.js","sourceRoot":"","sources":["../../src/initializers/sqljs-initializer.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAOxB,MAAa,gBAAgB;IAGzB,YAAoB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEvC,KAAK,CAAC,IAAI,CACN,YAAoB,EACpB,iBAAyC;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,iBAAqD,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAClF,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAA+B;QAC1C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACjC,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACzB,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aACzB;YACA,IAAI,CAAC,iBAAqD,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC3E,IAAI,CAAC,iBAAqD,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/E,MAAM,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,iBAAqD,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC5E,IAAI,CAAC,iBAAqD,CAAC,WAAW,GAAG,KAAK,CAAC;SACnF;IACL,CAAC;IAED,OAAO;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,aAAa,CAAC,YAAoB;QACtC,iDAAiD;QACjD,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;QAC3D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAvCD,4CAuCC"}
1
+ {"version":3,"file":"sqljs-initializer.js","sourceRoot":"","sources":["../../src/initializers/sqljs-initializer.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAOxB,MAAa,gBAAgB;IAIzB;;;;;OAKG;IACH,YAAoB,OAAe,EAAU,wBAAgC,CAAC;QAA1D,YAAO,GAAP,OAAO,CAAQ;QAAU,0BAAqB,GAArB,qBAAqB,CAAY;IAAG,CAAC;IAElF,KAAK,CAAC,IAAI,CACN,YAAoB,EACpB,iBAAyC;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,iBAAqD,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAClF,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAA+B;QAC1C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACjC,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACzB,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aACzB;YACA,IAAI,CAAC,iBAAqD,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC3E,IAAI,CAAC,iBAAqD,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/E,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,iBAAqD,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC5E,IAAI,CAAC,iBAAqD,CAAC,WAAW,GAAG,KAAK,CAAC;SACnF;IACL,CAAC;IAED,OAAO;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,aAAa,CAAC,YAAoB;QACtC,iDAAiD;QACjD,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;QAC3D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AA/CD,4CA+CC"}
@@ -0,0 +1,10 @@
1
+ import { INestApplicationContext } from '@nestjs/common';
2
+ import { RequestContext } from '@vendure/core';
3
+ /**
4
+ * @description
5
+ * Creates a {@link RequestContext} configured for the default Channel with the activeUser set
6
+ * as the superadmin user. Useful for populating data.
7
+ *
8
+ * @docsCategory testing
9
+ */
10
+ export declare function getSuperadminContext(app: INestApplicationContext): Promise<RequestContext>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSuperadminContext = void 0;
4
+ const core_1 = require("@vendure/core");
5
+ /**
6
+ * @description
7
+ * Creates a {@link RequestContext} configured for the default Channel with the activeUser set
8
+ * as the superadmin user. Useful for populating data.
9
+ *
10
+ * @docsCategory testing
11
+ */
12
+ async function getSuperadminContext(app) {
13
+ const defaultChannel = await app.get(core_1.ChannelService).getDefaultChannel();
14
+ const connection = app.get(core_1.TransactionalConnection);
15
+ const configService = app.get(core_1.ConfigService);
16
+ const { superadminCredentials } = configService.authOptions;
17
+ const superAdminUser = await connection
18
+ .getRepository(core_1.User)
19
+ .findOneOrFail({ where: { identifier: superadminCredentials.identifier } });
20
+ return new core_1.RequestContext({
21
+ channel: defaultChannel,
22
+ apiType: 'admin',
23
+ isAuthorized: true,
24
+ authorizedAsOwnerOnly: false,
25
+ session: {
26
+ id: '',
27
+ token: '',
28
+ expires: new Date(),
29
+ cacheExpiry: 999999,
30
+ user: {
31
+ id: superAdminUser.id,
32
+ identifier: superAdminUser.identifier,
33
+ verified: true,
34
+ channelPermissions: [],
35
+ },
36
+ },
37
+ });
38
+ }
39
+ exports.getSuperadminContext = getSuperadminContext;
40
+ //# sourceMappingURL=get-superadmin-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-superadmin-context.js","sourceRoot":"","sources":["../../src/utils/get-superadmin-context.ts"],"names":[],"mappings":";;;AACA,wCAA6G;AAE7G;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CAAC,GAA4B;IACnE,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,qBAAc,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACzE,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,8BAAuB,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAa,CAAC,CAAC;IAC7C,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC;IAC5D,MAAM,cAAc,GAAG,MAAM,UAAU;SAClC,aAAa,CAAC,WAAI,CAAC;SACnB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,qBAAqB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,IAAI,qBAAc,CAAC;QACtB,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,IAAI;QAClB,qBAAqB,EAAE,KAAK;QAC5B,OAAO,EAAE;YACL,EAAE,EAAE,EAAE;YACN,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,IAAI,IAAI,EAAE;YACnB,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE;gBACF,EAAE,EAAE,cAAc,CAAC,EAAE;gBACrB,UAAU,EAAE,cAAc,CAAC,UAAU;gBACrC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,EAAE;aACzB;SACJ;KACJ,CAAC,CAAC;AACP,CAAC;AA1BD,oDA0BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/testing",
3
- "version": "1.4.0-beta.0",
3
+ "version": "1.4.3",
4
4
  "description": "End-to-end testing tools for Vendure projects",
5
5
  "keywords": [
6
6
  "vendure",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@types/node-fetch": "^2.5.4",
37
- "@vendure/common": "^1.4.0-beta.0",
37
+ "@vendure/common": "^1.4.3",
38
38
  "faker": "^4.1.0",
39
39
  "form-data": "^3.0.0",
40
40
  "graphql": "15.5.1",
@@ -45,11 +45,11 @@
45
45
  "devDependencies": {
46
46
  "@types/mysql": "^2.15.15",
47
47
  "@types/pg": "^7.14.5",
48
- "@vendure/core": "^1.4.0-beta.0",
48
+ "@vendure/core": "^1.4.3",
49
49
  "mysql": "^2.18.1",
50
50
  "pg": "^8.4.0",
51
51
  "rimraf": "^3.0.0",
52
52
  "typescript": "4.3.5"
53
53
  },
54
- "gitHead": "b4a29d6cff5a7c5b39000719b4c556f60a80b521"
54
+ "gitHead": "6b6cb74b05595091c3b8a34c66b99353037cb92c"
55
55
  }