@nestia/e2e 7.0.1 → 7.0.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.
@@ -59,6 +59,21 @@ export declare namespace TestValidator {
59
59
  * exception filter to ignore specific keys during comparison. Useful for
60
60
  * validating API responses, data transformations, and object state changes.
61
61
  *
62
+ * **Type Safety Notes:**
63
+ *
64
+ * - The generic type T is inferred from the `actual` parameter (first in the
65
+ * currying chain)
66
+ * - The `expected` parameter must be assignable to `T | null | undefined`
67
+ * - For objects, `expected` must have the same or subset of properties as
68
+ * `actual`
69
+ * - For union types like `string | null`, ensure proper type compatibility:
70
+ *
71
+ * ```typescript
72
+ * const x: string | null;
73
+ * TestValidator.equals("works")(x)(null); // ✅ Works: null is assignable to string | null
74
+ * TestValidator.equals("error")(null)(x); // ❌ Error: x might be string, but expected is null
75
+ * ```
76
+ *
62
77
  * @example
63
78
  * ```typescript
64
79
  * // Basic equality
@@ -72,6 +87,10 @@ export declare namespace TestValidator {
72
87
  * // Validate API response structure
73
88
  * const validateResponse = TestValidator.equals("API response structure");
74
89
  * validateResponse({ id: 1, name: "John" })({ id: 1, name: "John" });
90
+ *
91
+ * // Type-safe nullable comparisons
92
+ * const nullableData: { name: string } | null = getData();
93
+ * TestValidator.equals("nullable check")(nullableData)(null); // ✅ Safe
75
94
  * ```;
76
95
  *
77
96
  * @param title - Descriptive title used in error messages when values differ
@@ -81,7 +100,58 @@ export declare namespace TestValidator {
81
100
  * actual value
82
101
  * @throws Error with detailed diff information when values are not equal
83
102
  */
84
- const equals: (title: string, exception?: (key: string) => boolean) => <T>(x: T) => (y: T) => void;
103
+ const equals: (title: string, exception?: (key: string) => boolean) => <T>(actual: T) => (expected: T | null | undefined) => void;
104
+ /**
105
+ * Validates deep inequality between two values using JSON comparison.
106
+ *
107
+ * Performs recursive comparison of objects and arrays to ensure they are NOT
108
+ * equal. Supports an optional exception filter to ignore specific keys during
109
+ * comparison. Useful for validating that data has changed, objects are
110
+ * different, or mutations have occurred.
111
+ *
112
+ * **Type Safety Notes:**
113
+ *
114
+ * - The generic type T is inferred from the `actual` parameter (first in the
115
+ * currying chain)
116
+ * - The `expected` parameter must be assignable to `T | null | undefined`
117
+ * - For objects, `expected` must have the same or subset of properties as
118
+ * `actual`
119
+ * - For union types like `string | null`, ensure proper type compatibility:
120
+ *
121
+ * ```typescript
122
+ * const x: string | null;
123
+ * TestValidator.notEquals("works")(x)(null); // ✅ Works: null is assignable to string | null
124
+ * TestValidator.notEquals("error")(null)(x); // ❌ Error: x might be string, but expected is null
125
+ * ```
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * // Basic inequality
130
+ * TestValidator.notEquals("user should be different after update")(originalUser)(updatedUser);
131
+ *
132
+ * // Ignore timestamps in comparison
133
+ * TestValidator.notEquals("user data should differ", (key) => key === "updatedAt")(
134
+ * originalUser
135
+ * )(modifiedUser);
136
+ *
137
+ * // Validate state changes
138
+ * const validateStateChange = TestValidator.notEquals("state should have changed");
139
+ * validateStateChange(initialState)(currentState);
140
+ *
141
+ * // Type-safe nullable comparisons
142
+ * const mutableData: { count: number } | null = getMutableData();
143
+ * TestValidator.notEquals("should have changed")(mutableData)(null); // ✅ Safe
144
+ * ```;
145
+ *
146
+ * @param title - Descriptive title used in error messages when values are
147
+ * equal
148
+ * @param exception - Optional filter function to exclude specific keys from
149
+ * comparison
150
+ * @returns A currying function chain: first accepts expected value, then
151
+ * actual value
152
+ * @throws Error when values are equal (indicating validation failure)
153
+ */
154
+ const notEquals: (title: string, exception?: (key: string) => boolean) => <T>(actual: T) => (expected: T | null | undefined) => void;
85
155
  /**
86
156
  * Validates that a function throws an error or rejects when executed.
87
157
  *
@@ -168,6 +168,21 @@ var TestValidator;
168
168
  * exception filter to ignore specific keys during comparison. Useful for
169
169
  * validating API responses, data transformations, and object state changes.
170
170
  *
171
+ * **Type Safety Notes:**
172
+ *
173
+ * - The generic type T is inferred from the `actual` parameter (first in the
174
+ * currying chain)
175
+ * - The `expected` parameter must be assignable to `T | null | undefined`
176
+ * - For objects, `expected` must have the same or subset of properties as
177
+ * `actual`
178
+ * - For union types like `string | null`, ensure proper type compatibility:
179
+ *
180
+ * ```typescript
181
+ * const x: string | null;
182
+ * TestValidator.equals("works")(x)(null); // ✅ Works: null is assignable to string | null
183
+ * TestValidator.equals("error")(null)(x); // ❌ Error: x might be string, but expected is null
184
+ * ```
185
+ *
171
186
  * @example
172
187
  * ```typescript
173
188
  * // Basic equality
@@ -181,6 +196,10 @@ var TestValidator;
181
196
  * // Validate API response structure
182
197
  * const validateResponse = TestValidator.equals("API response structure");
183
198
  * validateResponse({ id: 1, name: "John" })({ id: 1, name: "John" });
199
+ *
200
+ * // Type-safe nullable comparisons
201
+ * const nullableData: { name: string } | null = getData();
202
+ * TestValidator.equals("nullable check")(nullableData)(null); // ✅ Safe
184
203
  * ```;
185
204
  *
186
205
  * @param title - Descriptive title used in error messages when values differ
@@ -192,14 +211,78 @@ var TestValidator;
192
211
  */
193
212
  TestValidator.equals = function (title, exception) {
194
213
  if (exception === void 0) { exception = function () { return false; }; }
195
- return function (x) {
196
- return function (y) {
197
- var diff = (0, json_equal_to_1.json_equal_to)(exception)(x)(y);
214
+ return function (actual) {
215
+ return function (expected) {
216
+ var diff = (0, json_equal_to_1.json_equal_to)(exception)(actual)(expected);
198
217
  if (diff.length)
199
218
  throw new Error([
200
219
  "Bug on ".concat(title, ": found different values - [").concat(diff.join(", "), "]:"),
201
220
  "\n",
202
- JSON.stringify({ x: x, y: y }, null, 2),
221
+ JSON.stringify({ actual: actual, expected: expected }, null, 2),
222
+ ].join("\n"));
223
+ };
224
+ };
225
+ };
226
+ /**
227
+ * Validates deep inequality between two values using JSON comparison.
228
+ *
229
+ * Performs recursive comparison of objects and arrays to ensure they are NOT
230
+ * equal. Supports an optional exception filter to ignore specific keys during
231
+ * comparison. Useful for validating that data has changed, objects are
232
+ * different, or mutations have occurred.
233
+ *
234
+ * **Type Safety Notes:**
235
+ *
236
+ * - The generic type T is inferred from the `actual` parameter (first in the
237
+ * currying chain)
238
+ * - The `expected` parameter must be assignable to `T | null | undefined`
239
+ * - For objects, `expected` must have the same or subset of properties as
240
+ * `actual`
241
+ * - For union types like `string | null`, ensure proper type compatibility:
242
+ *
243
+ * ```typescript
244
+ * const x: string | null;
245
+ * TestValidator.notEquals("works")(x)(null); // ✅ Works: null is assignable to string | null
246
+ * TestValidator.notEquals("error")(null)(x); // ❌ Error: x might be string, but expected is null
247
+ * ```
248
+ *
249
+ * @example
250
+ * ```typescript
251
+ * // Basic inequality
252
+ * TestValidator.notEquals("user should be different after update")(originalUser)(updatedUser);
253
+ *
254
+ * // Ignore timestamps in comparison
255
+ * TestValidator.notEquals("user data should differ", (key) => key === "updatedAt")(
256
+ * originalUser
257
+ * )(modifiedUser);
258
+ *
259
+ * // Validate state changes
260
+ * const validateStateChange = TestValidator.notEquals("state should have changed");
261
+ * validateStateChange(initialState)(currentState);
262
+ *
263
+ * // Type-safe nullable comparisons
264
+ * const mutableData: { count: number } | null = getMutableData();
265
+ * TestValidator.notEquals("should have changed")(mutableData)(null); // ✅ Safe
266
+ * ```;
267
+ *
268
+ * @param title - Descriptive title used in error messages when values are
269
+ * equal
270
+ * @param exception - Optional filter function to exclude specific keys from
271
+ * comparison
272
+ * @returns A currying function chain: first accepts expected value, then
273
+ * actual value
274
+ * @throws Error when values are equal (indicating validation failure)
275
+ */
276
+ TestValidator.notEquals = function (title, exception) {
277
+ if (exception === void 0) { exception = function () { return false; }; }
278
+ return function (actual) {
279
+ return function (expected) {
280
+ var diff = (0, json_equal_to_1.json_equal_to)(exception)(actual)(expected);
281
+ if (diff.length === 0)
282
+ throw new Error([
283
+ "Bug on ".concat(title, ": values should be different but are equal:"),
284
+ "\n",
285
+ JSON.stringify({ actual: actual, expected: expected }, null, 2),
203
286
  ].join("\n"));
204
287
  };
205
288
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TestValidator.js","sourceRoot":"","sources":["../src/TestValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestValidator.js","sourceRoot":"","sources":["../src/TestValidator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const json_equal_to: (exception: (key: string) => boolean) => <T>(x: T) => (y: T) => string[];
1
+ export declare const json_equal_to: (exception: (key: string) => boolean) => <T>(x: T) => (y: T | null | undefined) => string[];
@@ -1 +1 @@
1
- {"version":3,"file":"json_equal_to.js","sourceRoot":"","sources":["../../src/internal/json_equal_to.ts"],"names":[],"mappings":";;;AAAO,IAAM,aAAa,GACxB,UAAC,SAAmC;IACpC,OAAA,UAAI,CAAI;QACR,OAAA,UAAC,CAAI;YACH,IAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,IAAM,OAAO,GACX,UAAC,QAAgB;gBACjB,OAAA,UAAC,CAAM;oBACP,OAAA,UAAC,CAAM;wBACL,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,UAAU;4BAAE,OAAO;6BAC1D,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC;4BAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BACpD,IAAI,CAAC,YAAY,KAAK;4BACzB,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gCAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;gCAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BACxB,IAAI,CAAC,YAAY,MAAM;4BAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BAChD,IAAI,CAAC,KAAK,CAAC;4BAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7C,CAAC;gBARD,CAQC;YATD,CASC,CAAC;YACJ,IAAM,KAAK,GACT,UAAC,QAAgB;gBACjB,OAAA,UAAC,CAAQ;oBACT,OAAA,UAAC,CAAQ;wBACP,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;4BAAE,SAAS,CAAC,IAAI,CAAC,UAAG,QAAQ,YAAS,CAAC,CAAC;wBAChE,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC,IAAK,OAAA,OAAO,CAAC,UAAG,QAAQ,cAAI,CAAC,MAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAzC,CAAyC,CAAC,CAAC;oBACrE,CAAC;gBAHD,CAGC;YAJD,CAIC,CAAC;YACJ,IAAM,MAAM,GACV,UAAC,QAAgB;gBACjB,OAAA,UAAC,CAAM;oBACP,OAAA,UAAC,CAAM;wBACL,OAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;6BACX,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAvC,CAAuC,CAAC;6BACxD,OAAO,CAAC,UAAC,GAAG,IAAK,OAAA,OAAO,CAAC,UAAG,QAAQ,cAAI,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAA7C,CAA6C,CAAC;oBAFlE,CAEkE;gBAHpE,CAGoE;YAJpE,CAIoE,CAAC;YAEvE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;IA/BD,CA+BC;AAhCD,CAgCC,CAAC;AAlCS,QAAA,aAAa,iBAkCtB"}
1
+ {"version":3,"file":"json_equal_to.js","sourceRoot":"","sources":["../../src/internal/json_equal_to.ts"],"names":[],"mappings":";;;AAAO,IAAM,aAAa,GACxB,UAAC,SAAmC;IACpC,OAAA,UAAI,CAAI;QACR,OAAA,UAAC,CAAuB;YACtB,IAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,IAAM,OAAO,GACX,UAAC,QAAgB;gBACjB,OAAA,UAAC,CAAM;oBACP,OAAA,UAAC,CAAM;wBACL,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,UAAU;4BAAE,OAAO;6BAC1D,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC;4BAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BACpD,IAAI,CAAC,YAAY,KAAK;4BACzB,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gCAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;gCAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BACxB,IAAI,CAAC,YAAY,MAAM;4BAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BAChD,IAAI,CAAC,KAAK,CAAC;4BAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7C,CAAC;gBARD,CAQC;YATD,CASC,CAAC;YACJ,IAAM,KAAK,GACT,UAAC,QAAgB;gBACjB,OAAA,UAAC,CAAQ;oBACT,OAAA,UAAC,CAAQ;wBACP,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;4BAAE,SAAS,CAAC,IAAI,CAAC,UAAG,QAAQ,YAAS,CAAC,CAAC;wBAChE,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC,IAAK,OAAA,OAAO,CAAC,UAAG,QAAQ,cAAI,CAAC,MAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAzC,CAAyC,CAAC,CAAC;oBACrE,CAAC;gBAHD,CAGC;YAJD,CAIC,CAAC;YACJ,IAAM,MAAM,GACV,UAAC,QAAgB;gBACjB,OAAA,UAAC,CAAM;oBACP,OAAA,UAAC,CAAM;wBACL,OAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;6BACX,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAvC,CAAuC,CAAC;6BACxD,OAAO,CAAC,UAAC,GAAG,IAAK,OAAA,OAAO,CAAC,UAAG,QAAQ,cAAI,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAA7C,CAA6C,CAAC;oBAFlE,CAEkE;gBAHpE,CAGoE;YAJpE,CAIoE,CAAC;YAEvE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;IA/BD,CA+BC;AAhCD,CAgCC,CAAC;AAlCS,QAAA,aAAa,iBAkCtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/e2e",
3
- "version": "7.0.1",
3
+ "version": "7.0.3",
4
4
  "description": "E2E test utilify functions",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -93,6 +93,21 @@ export namespace TestValidator {
93
93
  * exception filter to ignore specific keys during comparison. Useful for
94
94
  * validating API responses, data transformations, and object state changes.
95
95
  *
96
+ * **Type Safety Notes:**
97
+ *
98
+ * - The generic type T is inferred from the `actual` parameter (first in the
99
+ * currying chain)
100
+ * - The `expected` parameter must be assignable to `T | null | undefined`
101
+ * - For objects, `expected` must have the same or subset of properties as
102
+ * `actual`
103
+ * - For union types like `string | null`, ensure proper type compatibility:
104
+ *
105
+ * ```typescript
106
+ * const x: string | null;
107
+ * TestValidator.equals("works")(x)(null); // ✅ Works: null is assignable to string | null
108
+ * TestValidator.equals("error")(null)(x); // ❌ Error: x might be string, but expected is null
109
+ * ```
110
+ *
96
111
  * @example
97
112
  * ```typescript
98
113
  * // Basic equality
@@ -106,6 +121,10 @@ export namespace TestValidator {
106
121
  * // Validate API response structure
107
122
  * const validateResponse = TestValidator.equals("API response structure");
108
123
  * validateResponse({ id: 1, name: "John" })({ id: 1, name: "John" });
124
+ *
125
+ * // Type-safe nullable comparisons
126
+ * const nullableData: { name: string } | null = getData();
127
+ * TestValidator.equals("nullable check")(nullableData)(null); // ✅ Safe
109
128
  * ```;
110
129
  *
111
130
  * @param title - Descriptive title used in error messages when values differ
@@ -117,15 +136,80 @@ export namespace TestValidator {
117
136
  */
118
137
  export const equals =
119
138
  (title: string, exception: (key: string) => boolean = () => false) =>
120
- <T>(x: T) =>
121
- (y: T) => {
122
- const diff: string[] = json_equal_to(exception)(x)(y);
139
+ <T>(actual: T) =>
140
+ (expected: T | null | undefined) => {
141
+ const diff: string[] = json_equal_to(exception)(actual)(expected);
123
142
  if (diff.length)
124
143
  throw new Error(
125
144
  [
126
145
  `Bug on ${title}: found different values - [${diff.join(", ")}]:`,
127
146
  "\n",
128
- JSON.stringify({ x, y }, null, 2),
147
+ JSON.stringify({ actual, expected }, null, 2),
148
+ ].join("\n"),
149
+ );
150
+ };
151
+
152
+ /**
153
+ * Validates deep inequality between two values using JSON comparison.
154
+ *
155
+ * Performs recursive comparison of objects and arrays to ensure they are NOT
156
+ * equal. Supports an optional exception filter to ignore specific keys during
157
+ * comparison. Useful for validating that data has changed, objects are
158
+ * different, or mutations have occurred.
159
+ *
160
+ * **Type Safety Notes:**
161
+ *
162
+ * - The generic type T is inferred from the `actual` parameter (first in the
163
+ * currying chain)
164
+ * - The `expected` parameter must be assignable to `T | null | undefined`
165
+ * - For objects, `expected` must have the same or subset of properties as
166
+ * `actual`
167
+ * - For union types like `string | null`, ensure proper type compatibility:
168
+ *
169
+ * ```typescript
170
+ * const x: string | null;
171
+ * TestValidator.notEquals("works")(x)(null); // ✅ Works: null is assignable to string | null
172
+ * TestValidator.notEquals("error")(null)(x); // ❌ Error: x might be string, but expected is null
173
+ * ```
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * // Basic inequality
178
+ * TestValidator.notEquals("user should be different after update")(originalUser)(updatedUser);
179
+ *
180
+ * // Ignore timestamps in comparison
181
+ * TestValidator.notEquals("user data should differ", (key) => key === "updatedAt")(
182
+ * originalUser
183
+ * )(modifiedUser);
184
+ *
185
+ * // Validate state changes
186
+ * const validateStateChange = TestValidator.notEquals("state should have changed");
187
+ * validateStateChange(initialState)(currentState);
188
+ *
189
+ * // Type-safe nullable comparisons
190
+ * const mutableData: { count: number } | null = getMutableData();
191
+ * TestValidator.notEquals("should have changed")(mutableData)(null); // ✅ Safe
192
+ * ```;
193
+ *
194
+ * @param title - Descriptive title used in error messages when values are
195
+ * equal
196
+ * @param exception - Optional filter function to exclude specific keys from
197
+ * comparison
198
+ * @returns A currying function chain: first accepts expected value, then
199
+ * actual value
200
+ * @throws Error when values are equal (indicating validation failure)
201
+ */
202
+ export const notEquals =
203
+ (title: string, exception: (key: string) => boolean = () => false) =>
204
+ <T>(actual: T) =>
205
+ (expected: T | null | undefined) => {
206
+ const diff: string[] = json_equal_to(exception)(actual)(expected);
207
+ if (diff.length === 0)
208
+ throw new Error(
209
+ [
210
+ `Bug on ${title}: values should be different but are equal:`,
211
+ "\n",
212
+ JSON.stringify({ actual, expected }, null, 2),
129
213
  ].join("\n"),
130
214
  );
131
215
  };
@@ -1,7 +1,7 @@
1
1
  export const json_equal_to =
2
2
  (exception: (key: string) => boolean) =>
3
3
  <T>(x: T) =>
4
- (y: T): string[] => {
4
+ (y: T | null | undefined): string[] => {
5
5
  const container: string[] = [];
6
6
  const iterate =
7
7
  (accessor: string) =>