@vendure/testing 1.4.0-beta.0 → 1.4.0
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.
- package/lib/data-population/mock-data.service.d.ts +9 -0
- package/lib/data-population/mock-data.service.js +29 -1
- package/lib/data-population/mock-data.service.js.map +1 -1
- package/lib/data-population/populate-customers.d.ts +2 -3
- package/lib/data-population/populate-customers.js +20 -6
- package/lib/data-population/populate-customers.js.map +1 -1
- package/lib/data-population/populate-for-testing.js +1 -1
- package/lib/data-population/populate-for-testing.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/initializers/sqljs-initializer.d.ts +8 -1
- package/lib/initializers/sqljs-initializer.js +9 -1
- package/lib/initializers/sqljs-initializer.js.map +1 -1
- package/lib/utils/get-superadmin-context.d.ts +10 -0
- package/lib/utils/get-superadmin-context.js +40 -0
- package/lib/utils/get-superadmin-context.js.map +1 -0
- package/package.json +4 -4
|
@@ -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":";;;;;;
|
|
1
|
+
{"version":3,"file":"mock-data.service.js","sourceRoot":"","sources":["../../src/data-population/mock-data.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
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,
|
|
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
|
|
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(
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
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":";;;
|
|
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,
|
|
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,
|
|
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
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
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
|
3
|
+
"version": "1.4.0",
|
|
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
|
|
37
|
+
"@vendure/common": "^1.4.0",
|
|
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
|
|
48
|
+
"@vendure/core": "^1.4.0",
|
|
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": "
|
|
54
|
+
"gitHead": "d5df49c276dacd0f5e50a04c12def4ca22dfc3aa"
|
|
55
55
|
}
|