@vendure/testing 3.0.4 → 3.0.6

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.
@@ -70,7 +70,36 @@ export declare class SimpleGraphQLClient {
70
70
  * Perform a file upload mutation.
71
71
  *
72
72
  * Upload spec: https://github.com/jaydenseric/graphql-multipart-request-spec
73
+ *
73
74
  * Discussion of issue: https://github.com/jaydenseric/apollo-upload-client/issues/32
75
+ *
76
+ * @param mutation - GraphQL document for a mutation that has input files
77
+ * with the Upload type.
78
+ * @param filePaths - Array of paths to files, in the same order that the
79
+ * corresponding Upload fields appear in the variables for the mutation.
80
+ * @param mapVariables - Function that must return the variables for the
81
+ * mutation, with `null` as the value for each `Upload` field.
82
+ *
83
+ * @example
84
+ * // Testing a custom mutation:
85
+ * const result = await client.fileUploadMutation({
86
+ * mutation: gql`
87
+ * mutation AddSellerImages($input: AddSellerImagesInput!) {
88
+ * addSellerImages(input: $input) {
89
+ * id
90
+ * name
91
+ * }
92
+ * }
93
+ * `,
94
+ * filePaths: ['./images/profile-picture.jpg', './images/logo.png'],
95
+ * mapVariables: () => ({
96
+ * name: "George's Pans",
97
+ * profilePicture: null, // corresponds to filePaths[0]
98
+ * branding: {
99
+ * logo: null // corresponds to filePaths[1]
100
+ * }
101
+ * })
102
+ * });
74
103
  */
75
104
  fileUploadMutation(options: {
76
105
  mutation: DocumentNode;
@@ -12,22 +12,22 @@ const graphql_tag_1 = __importDefault(require("graphql-tag"));
12
12
  const node_fetch_1 = __importDefault(require("node-fetch"));
13
13
  const querystring_1 = require("querystring");
14
14
  const create_upload_post_data_1 = require("./utils/create-upload-post-data");
15
- const LOGIN = (0, graphql_tag_1.default) `
16
- mutation ($username: String!, $password: String!) {
17
- login(username: $username, password: $password) {
18
- ... on CurrentUser {
19
- id
20
- identifier
21
- channels {
22
- token
23
- }
24
- }
25
- ... on ErrorResult {
26
- errorCode
27
- message
28
- }
29
- }
30
- }
15
+ const LOGIN = (0, graphql_tag_1.default) `
16
+ mutation ($username: String!, $password: String!) {
17
+ login(username: $username, password: $password) {
18
+ ... on CurrentUser {
19
+ id
20
+ identifier
21
+ channels {
22
+ token
23
+ }
24
+ }
25
+ ... on ErrorResult {
26
+ errorCode
27
+ message
28
+ }
29
+ }
30
+ }
31
31
  `;
32
32
  /* eslint-disable no-console */
33
33
  /**
@@ -116,13 +116,13 @@ class SimpleGraphQLClient {
116
116
  var _a;
117
117
  // first log out as the current user
118
118
  if (this.authToken) {
119
- await this.query((0, graphql_tag_1.default) `
120
- mutation {
121
- logout {
122
- success
123
- }
124
- }
125
- `);
119
+ await this.query((0, graphql_tag_1.default) `
120
+ mutation {
121
+ logout {
122
+ success
123
+ }
124
+ }
125
+ `);
126
126
  }
127
127
  const result = await this.query(LOGIN, { username, password });
128
128
  if (((_a = result.login.channels) === null || _a === void 0 ? void 0 : _a.length) === 1) {
@@ -144,13 +144,13 @@ class SimpleGraphQLClient {
144
144
  * Logs out so that the client is then treated as an anonymous user.
145
145
  */
146
146
  async asAnonymousUser() {
147
- await this.query((0, graphql_tag_1.default) `
148
- mutation {
149
- logout {
150
- success
151
- }
152
- }
153
- `);
147
+ await this.query((0, graphql_tag_1.default) `
148
+ mutation {
149
+ logout {
150
+ success
151
+ }
152
+ }
153
+ `);
154
154
  }
155
155
  async makeGraphQlRequest(query, variables, queryParams) {
156
156
  const queryString = (0, printer_1.print)(query);
@@ -178,7 +178,36 @@ class SimpleGraphQLClient {
178
178
  * Perform a file upload mutation.
179
179
  *
180
180
  * Upload spec: https://github.com/jaydenseric/graphql-multipart-request-spec
181
+ *
181
182
  * Discussion of issue: https://github.com/jaydenseric/apollo-upload-client/issues/32
183
+ *
184
+ * @param mutation - GraphQL document for a mutation that has input files
185
+ * with the Upload type.
186
+ * @param filePaths - Array of paths to files, in the same order that the
187
+ * corresponding Upload fields appear in the variables for the mutation.
188
+ * @param mapVariables - Function that must return the variables for the
189
+ * mutation, with `null` as the value for each `Upload` field.
190
+ *
191
+ * @example
192
+ * // Testing a custom mutation:
193
+ * const result = await client.fileUploadMutation({
194
+ * mutation: gql`
195
+ * mutation AddSellerImages($input: AddSellerImagesInput!) {
196
+ * addSellerImages(input: $input) {
197
+ * id
198
+ * name
199
+ * }
200
+ * }
201
+ * `,
202
+ * filePaths: ['./images/profile-picture.jpg', './images/logo.png'],
203
+ * mapVariables: () => ({
204
+ * name: "George's Pans",
205
+ * profilePicture: null, // corresponds to filePaths[0]
206
+ * branding: {
207
+ * logo: null // corresponds to filePaths[1]
208
+ * }
209
+ * })
210
+ * });
182
211
  */
183
212
  async fileUploadMutation(options) {
184
213
  const { mutation, filePaths, mapVariables } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"simple-graphql-client.js","sourceRoot":"","sources":["../src/simple-graphql-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-graphql-client.js","sourceRoot":"","sources":["../src/simple-graphql-client.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,67 @@
1
1
  import { DocumentNode } from 'graphql';
2
- export interface FilePlaceholder {
3
- file: null;
4
- }
5
2
  export interface UploadPostData<V = any> {
3
+ /**
4
+ * Data from a GraphQL document that takes the Upload type as input
5
+ */
6
6
  operations: {
7
7
  operationName: string;
8
8
  variables: V;
9
9
  query: string;
10
10
  };
11
+ /**
12
+ * A map from index values to variable paths. Maps files in the `filePaths`
13
+ * array to fields with the Upload type in the GraphQL mutation input.
14
+ *
15
+ * If this was the GraphQL mutation input type:
16
+ * ```graphql
17
+ * input ImageReceivingInput {
18
+ * bannerImage: Upload!
19
+ * logo: Upload!
20
+ * }
21
+ * ```
22
+ *
23
+ * And this was the GraphQL mutation:
24
+ * ```graphql
25
+ * addSellerImages(input: ImageReceivingInput!): Seller
26
+ * ```
27
+ *
28
+ * Then this would be the value for `map`:
29
+ * ```js
30
+ * {
31
+ * 0: 'variables.input.bannerImage',
32
+ * 1: 'variables.input.logo'
33
+ * }
34
+ * ```
35
+ */
11
36
  map: {
12
37
  [index: number]: string;
13
38
  };
39
+ /**
40
+ * Array of file paths. Mapped to a GraphQL mutation input variable by
41
+ * `map`.
42
+ */
14
43
  filePaths: Array<{
44
+ /**
45
+ * Index of the file path as a string.
46
+ */
15
47
  name: string;
48
+ /**
49
+ * The actual file path
50
+ */
16
51
  file: string;
17
52
  }>;
18
53
  }
19
54
  /**
20
- * Creates a data structure which can be used to mae a curl request to upload files to a mutation using
21
- * the Upload type.
55
+ * Creates a data structure which can be used to make a POST request to upload
56
+ * files to a mutation using the Upload type.
57
+ *
58
+ * @param mutation - The GraphQL document for a mutation that takes an Upload
59
+ * type as an input
60
+ * @param filePaths - Either a single path or an array of paths to the files
61
+ * that should be uploaded
62
+ * @param mapVariables - A function that will receive `filePaths` and return an
63
+ * object containing the input variables for the mutation, where every field
64
+ * with the Upload type has the value `null`.
65
+ * @returns an UploadPostData object.
22
66
  */
23
67
  export declare function createUploadPostData<P extends string[] | string, V>(mutation: DocumentNode, filePaths: P, mapVariables: (filePaths: P) => V): UploadPostData<V>;
@@ -3,8 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createUploadPostData = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  /**
6
- * Creates a data structure which can be used to mae a curl request to upload files to a mutation using
7
- * the Upload type.
6
+ * Creates a data structure which can be used to make a POST request to upload
7
+ * files to a mutation using the Upload type.
8
+ *
9
+ * @param mutation - The GraphQL document for a mutation that takes an Upload
10
+ * type as an input
11
+ * @param filePaths - Either a single path or an array of paths to the files
12
+ * that should be uploaded
13
+ * @param mapVariables - A function that will receive `filePaths` and return an
14
+ * object containing the input variables for the mutation, where every field
15
+ * with the Upload type has the value `null`.
16
+ * @returns an UploadPostData object.
8
17
  */
9
18
  function createUploadPostData(mutation, filePaths, mapVariables) {
10
19
  const operationDef = mutation.definitions.find(d => d.kind === graphql_1.Kind.OPERATION_DEFINITION);
@@ -16,9 +25,7 @@ function createUploadPostData(mutation, filePaths, mapVariables) {
16
25
  variables,
17
26
  query: (0, graphql_1.print)(mutation),
18
27
  },
19
- map: filePathsArray.reduce((output, filePath, i) => {
20
- return Object.assign(Object.assign({}, output), { [i.toString()]: objectPath(variables, i).join('.') });
21
- }, {}),
28
+ map: objectPath(variables).reduce((acc, path, i) => (Object.assign(Object.assign({}, acc), { [i.toString()]: path })), {}),
22
29
  filePaths: filePathsArray.map((filePath, i) => ({
23
30
  name: i.toString(),
24
31
  file: filePath,
@@ -27,25 +34,37 @@ function createUploadPostData(mutation, filePaths, mapVariables) {
27
34
  return postData;
28
35
  }
29
36
  exports.createUploadPostData = createUploadPostData;
30
- function objectPath(variables, i) {
31
- const path = ['variables'];
32
- let current = variables;
33
- while (current !== null) {
34
- const props = Object.getOwnPropertyNames(current);
35
- if (props) {
36
- const firstProp = props[0];
37
- const val = current[firstProp];
38
- if (Array.isArray(val)) {
39
- path.push(firstProp);
40
- path.push(i);
41
- current = val[0];
42
- }
43
- else {
44
- path.push(firstProp);
45
- current = val;
37
+ /**
38
+ * This function visits each property in the `variables` object, including
39
+ * nested ones, and returns the path of each null value, in order.
40
+ *
41
+ * @example
42
+ * // variables:
43
+ * {
44
+ * input: {
45
+ * name: "George's Pots and Pans",
46
+ * logo: null,
47
+ * user: {
48
+ * profilePicture: null
49
+ * }
50
+ * }
51
+ * }
52
+ * // return value:
53
+ * ['variables.input.logo', 'variables.input.user.profilePicture']
54
+ */
55
+ function objectPath(variables) {
56
+ const pathsToNulls = [];
57
+ const checkValue = (pathSoFar, value) => {
58
+ if (value === null) {
59
+ pathsToNulls.push(pathSoFar);
60
+ }
61
+ else if (typeof value === 'object') {
62
+ for (const key of Object.getOwnPropertyNames(value)) {
63
+ checkValue(`${pathSoFar}.${key}`, value[key]);
46
64
  }
47
65
  }
48
- }
49
- return path;
66
+ };
67
+ checkValue('variables', variables);
68
+ return pathsToNulls;
50
69
  }
51
70
  //# sourceMappingURL=create-upload-post-data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-upload-post-data.js","sourceRoot":"","sources":["../../src/utils/create-upload-post-data.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAqB7E;;;GAGG;AACH,SAAgB,oBAAoB,CAChC,QAAsB,EACtB,SAAY,EACZ,YAAiC;IAEjC,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAI,CAAC,oBAAoB,CACjB,CAAC;IAE7B,MAAM,cAAc,GAAa,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAmB;QAC7B,UAAU,EAAE;YACR,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB;YAChF,SAAS;YACT,KAAK,EAAE,IAAA,eAAK,EAAC,QAAQ,CAAC;SACzB;QACD,GAAG,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;YAC/C,uCAAY,MAAM,KAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAG;QAC7E,CAAC,EAAE,EAA4B,CAAC;QAChC,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;YAClB,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAC;KACN,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AA1BD,oDA0BC;AAED,SAAS,UAAU,CAAC,SAAc,EAAE,CAAS;IACzC,MAAM,IAAI,GAA2B,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,OAAO,GAAG,SAAS,CAAC;IACxB,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,OAAO,GAAG,GAAG,CAAC;YAClB,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"create-upload-post-data.js","sourceRoot":"","sources":["../../src/utils/create-upload-post-data.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAyD7E;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,QAAsB,EACtB,SAAY,EACZ,YAAiC;IAEjC,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAI,CAAC,oBAAoB,CACjB,CAAC;IAE7B,MAAM,cAAc,GAAa,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAmB;QAC7B,UAAU,EAAE;YACR,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB;YAChF,SAAS;YACT,KAAK,EAAE,IAAA,eAAK,EAAC,QAAQ,CAAC;SACzB;QACD,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,IAAG,EAAE,EAAE,CAAC;QAC3F,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;YAClB,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAC;KACN,CAAC;IACF,OAAO,QAAQ,CAAC;AACpB,CAAC;AAxBD,oDAwBC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,UAAU,CAAC,SAAc;IAC9B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,EAAE;QACjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClD,UAAU,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IACF,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACnC,OAAO,YAAY,CAAC;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/testing",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "description": "End-to-end testing tools for Vendure projects",
5
5
  "keywords": [
6
6
  "vendure",
@@ -30,14 +30,15 @@
30
30
  "build": "tsc -p ./tsconfig.build.json",
31
31
  "watch": "tsc -p ./tsconfig.build.json -w",
32
32
  "lint": "eslint --fix .",
33
- "ci": "npm run build"
33
+ "ci": "npm run build",
34
+ "test": "vitest --config vitest.config.mts --run"
34
35
  },
35
36
  "bugs": {
36
37
  "url": "https://github.com/vendure-ecommerce/vendure/issues"
37
38
  },
38
39
  "dependencies": {
39
40
  "@graphql-typed-document-node/core": "^3.2.0",
40
- "@vendure/common": "^3.0.4",
41
+ "@vendure/common": "^3.0.6",
41
42
  "faker": "^4.1.0",
42
43
  "form-data": "^4.0.0",
43
44
  "graphql": "~16.9.0",
@@ -50,11 +51,11 @@
50
51
  "@types/mysql": "^2.15.26",
51
52
  "@types/node-fetch": "^2.6.4",
52
53
  "@types/pg": "^8.11.2",
53
- "@vendure/core": "^3.0.4",
54
+ "@vendure/core": "^3.0.6",
54
55
  "mysql": "^2.18.1",
55
56
  "pg": "^8.11.3",
56
57
  "rimraf": "^5.0.5",
57
58
  "typescript": "5.3.3"
58
59
  },
59
- "gitHead": "a0fa1b19a1059ff5a9d6c457ab256296079fa204"
60
+ "gitHead": "db1d4bfdb32ac94ddb719d19659dd5258c247667"
60
61
  }