@augment-vir/assert 31.36.0 → 31.38.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.
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { stringify } from '@augment-vir/core';
|
|
2
2
|
import deepEqual from 'deep-eql';
|
|
3
3
|
import { AssertionError } from '../../augments/assertion.error.js';
|
|
4
|
+
import { DiffError } from '../../augments/diff.error.js';
|
|
4
5
|
import { createWaitUntil } from '../../guard-types/wait-until-function.js';
|
|
5
6
|
function customComparator(a, b) {
|
|
6
7
|
if (typeof a === 'function' && typeof b === 'function') {
|
|
@@ -37,7 +38,13 @@ const assertions = {
|
|
|
37
38
|
*/
|
|
38
39
|
strictEquals(actual, expected, failureMessage) {
|
|
39
40
|
if (actual !== expected) {
|
|
40
|
-
|
|
41
|
+
if ((typeof actual === 'object' && actual) ||
|
|
42
|
+
(typeof expected === 'object' && expected)) {
|
|
43
|
+
throw new AssertionError(`Strict reference equality failed for \n\n${stringify(expected)}\n\n.`, failureMessage);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
throw new DiffError('Not strictly equal.', actual, expected, failureMessage);
|
|
47
|
+
}
|
|
41
48
|
}
|
|
42
49
|
},
|
|
43
50
|
/**
|
|
@@ -68,7 +75,12 @@ const assertions = {
|
|
|
68
75
|
*/
|
|
69
76
|
notStrictEquals(actual, expected, failureMessage) {
|
|
70
77
|
if (actual === expected) {
|
|
71
|
-
|
|
78
|
+
if (typeof actual === 'object' && actual) {
|
|
79
|
+
throw new AssertionError(`Strict reference INequality failed for \n\n${stringify(expected)}\n\n.`, failureMessage);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\nstrictly equals\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
83
|
+
}
|
|
72
84
|
}
|
|
73
85
|
},
|
|
74
86
|
/**
|
|
@@ -99,7 +111,13 @@ const assertions = {
|
|
|
99
111
|
*/
|
|
100
112
|
looseEquals(actual, expected, failureMessage) {
|
|
101
113
|
if (actual != expected) {
|
|
102
|
-
|
|
114
|
+
if ((typeof actual === 'object' && actual) ||
|
|
115
|
+
(typeof expected === 'object' && expected)) {
|
|
116
|
+
throw new AssertionError(`Loose reference equality failed for \n\n${stringify(expected)}\n\n.`, failureMessage);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
throw new DiffError('Not loosely equal.', actual, expected, failureMessage);
|
|
120
|
+
}
|
|
103
121
|
}
|
|
104
122
|
},
|
|
105
123
|
/**
|
|
@@ -130,7 +148,12 @@ const assertions = {
|
|
|
130
148
|
*/
|
|
131
149
|
notLooseEquals(actual, expected, failureMessage) {
|
|
132
150
|
if (actual == expected) {
|
|
133
|
-
|
|
151
|
+
if (typeof actual === 'object' && actual) {
|
|
152
|
+
throw new AssertionError(`Loose reference INequality failed for \n\n${stringify(expected)}\n\n.`, failureMessage);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\nloosely equals\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
156
|
+
}
|
|
134
157
|
}
|
|
135
158
|
},
|
|
136
159
|
/**
|
|
@@ -167,7 +190,7 @@ const assertions = {
|
|
|
167
190
|
if (!deepEqual(actual, expected, {
|
|
168
191
|
comparator: customComparator,
|
|
169
192
|
})) {
|
|
170
|
-
throw new
|
|
193
|
+
throw new DiffError('Not deeply equal.', actual, expected, failureMessage);
|
|
171
194
|
}
|
|
172
195
|
},
|
|
173
196
|
/**
|
|
@@ -425,8 +448,12 @@ export const simpleEqualityGuards = {
|
|
|
425
448
|
if (actual === expected) {
|
|
426
449
|
return actual;
|
|
427
450
|
}
|
|
451
|
+
else if ((typeof actual === 'object' && actual) ||
|
|
452
|
+
(typeof expected === 'object' && expected)) {
|
|
453
|
+
throw new AssertionError(`Strict reference equality failed for \n\n${stringify(expected)}\n\n.`, failureMessage);
|
|
454
|
+
}
|
|
428
455
|
else {
|
|
429
|
-
throw new
|
|
456
|
+
throw new DiffError('Not strictly equal.', actual, expected, failureMessage);
|
|
430
457
|
}
|
|
431
458
|
},
|
|
432
459
|
/**
|
|
@@ -458,7 +485,12 @@ export const simpleEqualityGuards = {
|
|
|
458
485
|
*/
|
|
459
486
|
notStrictEquals(actual, expected, failureMessage) {
|
|
460
487
|
if (actual === expected) {
|
|
461
|
-
|
|
488
|
+
if (typeof actual === 'object' && actual) {
|
|
489
|
+
throw new AssertionError(`Strict reference INequality failed for \n\n${stringify(expected)}\n\n.`, failureMessage);
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\nstrictly equals\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
493
|
+
}
|
|
462
494
|
}
|
|
463
495
|
else {
|
|
464
496
|
return actual;
|
|
@@ -495,8 +527,12 @@ export const simpleEqualityGuards = {
|
|
|
495
527
|
if (actual == expected) {
|
|
496
528
|
return actual;
|
|
497
529
|
}
|
|
530
|
+
else if ((typeof actual === 'object' && actual) ||
|
|
531
|
+
(typeof expected === 'object' && expected)) {
|
|
532
|
+
throw new AssertionError(`Loose reference equality failed for \n\n${stringify(expected)}\n\n.`, failureMessage);
|
|
533
|
+
}
|
|
498
534
|
else {
|
|
499
|
-
throw new
|
|
535
|
+
throw new DiffError('Not loosely equal.', actual, expected, failureMessage);
|
|
500
536
|
}
|
|
501
537
|
},
|
|
502
538
|
/**
|
|
@@ -528,7 +564,12 @@ export const simpleEqualityGuards = {
|
|
|
528
564
|
*/
|
|
529
565
|
notLooseEquals(actual, expected, failureMessage) {
|
|
530
566
|
if (actual == expected) {
|
|
531
|
-
|
|
567
|
+
if (typeof actual === 'object' && actual) {
|
|
568
|
+
throw new AssertionError(`Loose reference INequality failed for \n\n${stringify(expected)}\n\n.`, failureMessage);
|
|
569
|
+
}
|
|
570
|
+
else {
|
|
571
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\nloosely equals\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
572
|
+
}
|
|
532
573
|
}
|
|
533
574
|
else {
|
|
534
575
|
return actual;
|
|
@@ -572,7 +613,7 @@ export const simpleEqualityGuards = {
|
|
|
572
613
|
return actual;
|
|
573
614
|
}
|
|
574
615
|
else {
|
|
575
|
-
throw new
|
|
616
|
+
throw new DiffError('Not deeply equal.', actual, expected, failureMessage);
|
|
576
617
|
}
|
|
577
618
|
},
|
|
578
619
|
/**
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { indent, prettyDiff } from '@augment-vir/core';
|
|
2
|
+
import { AssertionError } from './assertion.error.js';
|
|
3
|
+
export class DiffError extends AssertionError {
|
|
4
|
+
name = 'DiffError';
|
|
5
|
+
constructor(baseMessage, actual, expected, userCustomizedMessage) {
|
|
6
|
+
const diffString = prettyDiff(actual, expected);
|
|
7
|
+
super([
|
|
8
|
+
baseMessage,
|
|
9
|
+
indent(diffString),
|
|
10
|
+
].join('\n'), userCustomizedMessage);
|
|
11
|
+
}
|
|
12
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { type Primitive } from 'type-fest';
|
|
|
2
2
|
export * from './augments/assertion-exports.js';
|
|
3
3
|
export * from './augments/assertion.error.js';
|
|
4
4
|
export * from './augments/custom-equality.js';
|
|
5
|
+
export * from './augments/diff.error.js';
|
|
5
6
|
export * from './augments/guards/assert-wrap.js';
|
|
6
7
|
export * from './augments/guards/assert.js';
|
|
7
8
|
export * from './augments/guards/check-wrap.js';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './augments/assertion-exports.js';
|
|
2
2
|
export * from './augments/assertion.error.js';
|
|
3
3
|
export * from './augments/custom-equality.js';
|
|
4
|
+
export * from './augments/diff.error.js';
|
|
4
5
|
export * from './augments/guards/assert-wrap.js';
|
|
5
6
|
export * from './augments/guards/assert.js';
|
|
6
7
|
export * from './augments/guards/check-wrap.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@augment-vir/assert",
|
|
3
|
-
"version": "31.
|
|
3
|
+
"version": "31.38.0",
|
|
4
4
|
"description": "A collection of assertions for test and production code alike.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"augment",
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"test:update": "npm test"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@augment-vir/core": "^31.
|
|
45
|
+
"@augment-vir/core": "^31.38.0",
|
|
46
46
|
"@date-vir/duration": "^7.4.2",
|
|
47
47
|
"deep-eql": "^5.0.2",
|
|
48
48
|
"expect-type": "^1.2.2",
|
|
49
|
-
"type-fest": "^5.0.
|
|
49
|
+
"type-fest": "^5.0.1"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/deep-eql": "^4.0.2",
|