@plugjs/expect5 0.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.
Files changed (90) hide show
  1. package/README.md +7 -0
  2. package/dist/cli.d.mts +2 -0
  3. package/dist/cli.mjs +96 -0
  4. package/dist/cli.mjs.map +6 -0
  5. package/dist/execution/executable.cjs +299 -0
  6. package/dist/execution/executable.cjs.map +6 -0
  7. package/dist/execution/executable.d.ts +87 -0
  8. package/dist/execution/executable.mjs +260 -0
  9. package/dist/execution/executable.mjs.map +6 -0
  10. package/dist/execution/executor.cjs +125 -0
  11. package/dist/execution/executor.cjs.map +6 -0
  12. package/dist/execution/executor.d.ts +35 -0
  13. package/dist/execution/executor.mjs +90 -0
  14. package/dist/execution/executor.mjs.map +6 -0
  15. package/dist/execution/setup.cjs +127 -0
  16. package/dist/execution/setup.cjs.map +6 -0
  17. package/dist/execution/setup.d.ts +31 -0
  18. package/dist/execution/setup.mjs +87 -0
  19. package/dist/execution/setup.mjs.map +6 -0
  20. package/dist/expectation/basic.cjs +216 -0
  21. package/dist/expectation/basic.cjs.map +6 -0
  22. package/dist/expectation/basic.d.ts +47 -0
  23. package/dist/expectation/basic.mjs +177 -0
  24. package/dist/expectation/basic.mjs.map +6 -0
  25. package/dist/expectation/diff.cjs +253 -0
  26. package/dist/expectation/diff.cjs.map +6 -0
  27. package/dist/expectation/diff.d.ts +27 -0
  28. package/dist/expectation/diff.mjs +228 -0
  29. package/dist/expectation/diff.mjs.map +6 -0
  30. package/dist/expectation/expect.cjs +211 -0
  31. package/dist/expectation/expect.cjs.map +6 -0
  32. package/dist/expectation/expect.d.ts +140 -0
  33. package/dist/expectation/expect.mjs +219 -0
  34. package/dist/expectation/expect.mjs.map +6 -0
  35. package/dist/expectation/include.cjs +187 -0
  36. package/dist/expectation/include.cjs.map +6 -0
  37. package/dist/expectation/include.d.ts +10 -0
  38. package/dist/expectation/include.mjs +158 -0
  39. package/dist/expectation/include.mjs.map +6 -0
  40. package/dist/expectation/print.cjs +281 -0
  41. package/dist/expectation/print.cjs.map +6 -0
  42. package/dist/expectation/print.d.ts +4 -0
  43. package/dist/expectation/print.mjs +256 -0
  44. package/dist/expectation/print.mjs.map +6 -0
  45. package/dist/expectation/throwing.cjs +58 -0
  46. package/dist/expectation/throwing.cjs.map +6 -0
  47. package/dist/expectation/throwing.d.ts +8 -0
  48. package/dist/expectation/throwing.mjs +32 -0
  49. package/dist/expectation/throwing.mjs.map +6 -0
  50. package/dist/expectation/types.cjs +212 -0
  51. package/dist/expectation/types.cjs.map +6 -0
  52. package/dist/expectation/types.d.ts +57 -0
  53. package/dist/expectation/types.mjs +178 -0
  54. package/dist/expectation/types.mjs.map +6 -0
  55. package/dist/expectation/void.cjs +111 -0
  56. package/dist/expectation/void.cjs.map +6 -0
  57. package/dist/expectation/void.d.ts +39 -0
  58. package/dist/expectation/void.mjs +77 -0
  59. package/dist/expectation/void.mjs.map +6 -0
  60. package/dist/globals.cjs +2 -0
  61. package/dist/globals.cjs.map +6 -0
  62. package/dist/globals.d.ts +23 -0
  63. package/dist/globals.mjs +1 -0
  64. package/dist/globals.mjs.map +6 -0
  65. package/dist/index.cjs +66 -0
  66. package/dist/index.cjs.map +6 -0
  67. package/dist/index.d.ts +29 -0
  68. package/dist/index.mjs +41 -0
  69. package/dist/index.mjs.map +6 -0
  70. package/dist/test.cjs +229 -0
  71. package/dist/test.cjs.map +6 -0
  72. package/dist/test.d.ts +9 -0
  73. package/dist/test.mjs +194 -0
  74. package/dist/test.mjs.map +6 -0
  75. package/package.json +57 -0
  76. package/src/cli.mts +122 -0
  77. package/src/execution/executable.ts +364 -0
  78. package/src/execution/executor.ts +146 -0
  79. package/src/execution/setup.ts +108 -0
  80. package/src/expectation/basic.ts +209 -0
  81. package/src/expectation/diff.ts +445 -0
  82. package/src/expectation/expect.ts +401 -0
  83. package/src/expectation/include.ts +184 -0
  84. package/src/expectation/print.ts +386 -0
  85. package/src/expectation/throwing.ts +45 -0
  86. package/src/expectation/types.ts +263 -0
  87. package/src/expectation/void.ts +80 -0
  88. package/src/globals.ts +30 -0
  89. package/src/index.ts +54 -0
  90. package/src/test.ts +239 -0
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // expectation/include.ts
21
+ var include_exports = {};
22
+ __export(include_exports, {
23
+ ToInclude: () => ToInclude,
24
+ ToMatchContents: () => ToMatchContents,
25
+ includesMappings: () => includesMappings,
26
+ includesProps: () => includesProps,
27
+ includesValues: () => includesValues
28
+ });
29
+ module.exports = __toCommonJS(include_exports);
30
+ var import_diff = require("./diff.cjs");
31
+ var import_types = require("./types.cjs");
32
+ var ToInclude = class {
33
+ expect(context, negative, expected) {
34
+ if (expected instanceof Map)
35
+ return includesMappings(context, negative, expected);
36
+ if (expected instanceof Set)
37
+ return includesValues(context, negative, expected);
38
+ if (Array.isArray(expected))
39
+ return includesValues(context, negative, new Set(expected));
40
+ if (expected instanceof Object)
41
+ return includesProps(context, negative, expected);
42
+ throw new TypeError(`Invalid type for "toInclude(...)": ${(0, import_types.stringifyValue)(expected)}`);
43
+ }
44
+ };
45
+ var ToMatchContents = class {
46
+ expect(context, negative, contents) {
47
+ let actual;
48
+ let expected;
49
+ try {
50
+ actual = new Set(context.value);
51
+ expected = new Set(contents);
52
+ } catch (error) {
53
+ throw new import_types.ExpectationError(context, false, "to be an iterable object");
54
+ }
55
+ const result = (0, import_diff.diff)(actual, expected);
56
+ delete result.error;
57
+ if (result.diff === negative)
58
+ return;
59
+ throw new import_types.ExpectationError(
60
+ context,
61
+ negative,
62
+ `to match contents of ${(0, import_types.stringifyObjectType)(contents)}`,
63
+ { ...result, value: context.value }
64
+ );
65
+ }
66
+ };
67
+ function includesProps(context, negative, expected) {
68
+ if (context.value instanceof Map) {
69
+ return includesMappings(context, negative, new Map(Object.entries(expected)));
70
+ }
71
+ context.toBeInstanceOf(Object);
72
+ const actual = context.value;
73
+ const keys = new Set(Object.keys(expected));
74
+ const props = {};
75
+ if (negative) {
76
+ for (const key of keys) {
77
+ if (actual[key] !== void 0 || key in actual) {
78
+ props[key] = { diff: true, extra: actual[key] };
79
+ }
80
+ }
81
+ } else {
82
+ for (const key of keys) {
83
+ const act = actual[key];
84
+ const exp = expected[key];
85
+ const result = (0, import_diff.diff)(act, exp);
86
+ if (!result.diff)
87
+ continue;
88
+ if (act === void 0 && !(key in actual)) {
89
+ props[key] = { diff: true, missing: exp };
90
+ } else {
91
+ props[key] = result;
92
+ }
93
+ }
94
+ }
95
+ const count = Object.keys(props).length;
96
+ if (count === 0)
97
+ return;
98
+ const type = count === 1 ? "property" : "properties";
99
+ throw new import_types.ExpectationError(context, negative, `to include ${count} ${type}`, {
100
+ diff: true,
101
+ value: actual,
102
+ props
103
+ });
104
+ }
105
+ function includesValues(context, negative, expected) {
106
+ context.toBeInstanceOf(Object);
107
+ if (typeof context.value[Symbol.iterator] !== "function") {
108
+ throw new import_types.ExpectationError(context, false, "to be an iterable object");
109
+ }
110
+ const actual = new Set(context.value);
111
+ const values = [];
112
+ if (negative) {
113
+ for (const exp of expected) {
114
+ for (const act of actual) {
115
+ const result = (0, import_diff.diff)(act, exp);
116
+ if (result.diff)
117
+ continue;
118
+ values.push({ diff: true, extra: act });
119
+ break;
120
+ }
121
+ }
122
+ } else {
123
+ for (const exp of expected) {
124
+ let found = false;
125
+ for (const act of actual) {
126
+ const result = (0, import_diff.diff)(act, exp);
127
+ if (result.diff)
128
+ continue;
129
+ found = true;
130
+ break;
131
+ }
132
+ if (!found) {
133
+ values.push({ diff: true, missing: exp });
134
+ }
135
+ }
136
+ }
137
+ const count = values.length;
138
+ if (count === 0)
139
+ return;
140
+ const type = count === 1 ? "value" : "values";
141
+ throw new import_types.ExpectationError(context, negative, `to include ${count} ${type}`, {
142
+ diff: true,
143
+ value: context.value,
144
+ values
145
+ });
146
+ }
147
+ function includesMappings(context, negative, expected) {
148
+ context.toBeInstanceOf(Map);
149
+ const actual = context.value;
150
+ const keys = new Set(expected.keys());
151
+ const mappings = [];
152
+ if (negative) {
153
+ for (const key of keys) {
154
+ if (actual.has(key)) {
155
+ mappings.push([key, { diff: true, extra: actual.get(key) }]);
156
+ }
157
+ }
158
+ } else {
159
+ for (const key of keys) {
160
+ if (!actual.has(key)) {
161
+ mappings.push([key, { diff: true, missing: expected.get(key) }]);
162
+ } else {
163
+ const result = (0, import_diff.diff)(actual.get(key), expected.get(key));
164
+ if (result.diff)
165
+ mappings.push([key, result]);
166
+ }
167
+ }
168
+ }
169
+ const count = mappings.length;
170
+ if (count === 0)
171
+ return;
172
+ const type = count === 1 ? "mapping" : "mappings";
173
+ throw new import_types.ExpectationError(context, negative, `to include ${count} ${type}`, {
174
+ diff: true,
175
+ value: context.value,
176
+ mappings
177
+ });
178
+ }
179
+ // Annotate the CommonJS export names for ESM import in node:
180
+ 0 && (module.exports = {
181
+ ToInclude,
182
+ ToMatchContents,
183
+ includesMappings,
184
+ includesProps,
185
+ includesValues
186
+ });
187
+ //# sourceMappingURL=include.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/expectation/include.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AACrB,mBAAsE;AAK/D,IAAM,YAAN,MAAuC;AAAA,EAC5C,OACI,SACA,UACA,UAKI;AAEN,QAAI,oBAAoB;AAAK,aAAO,iBAAiB,SAAS,UAAU,QAAQ;AAChF,QAAI,oBAAoB;AAAK,aAAO,eAAe,SAAS,UAAU,QAAQ;AAC9E,QAAI,MAAM,QAAQ,QAAQ;AAAG,aAAO,eAAe,SAAS,UAAU,IAAI,IAAI,QAAQ,CAAC;AACvF,QAAI,oBAAoB;AAAQ,aAAO,cAAc,SAAS,UAAU,QAAQ;AAChF,UAAM,IAAI,UAAU,0CAAsC,6BAAe,QAAQ,GAAG;AAAA,EACtF;AACF;AAEO,IAAM,kBAAN,MAA6C;AAAA,EAClD,OACI,SACA,UACA,UACI;AACN,QAAI;AACJ,QAAI;AACJ,QAAI;AACF,eAAS,IAAI,IAAI,QAAQ,KAAY;AACrC,iBAAW,IAAI,IAAI,QAAQ;AAAA,IAC7B,SAAS,OAAP;AACA,YAAM,IAAI,8BAAiB,SAAS,OAAO,0BAA0B;AAAA,IACvE;AAEA,UAAM,aAAS,kBAAK,QAAQ,QAAQ;AACpC,WAAO,OAAO;AACd,QAAI,OAAO,SAAS;AAAU;AAC9B,UAAM,IAAI;AAAA,MACN;AAAA,MACA;AAAA,MACA,4BAAwB,kCAAoB,QAAQ;AAAA,MACpD,EAAE,GAAG,QAAQ,OAAO,QAAQ,MAAM;AAAA,IAAC;AAAA,EACzC;AACF;AAEO,SAAS,cAAc,SAAuB,UAAmB,UAAqC;AAE3G,MAAI,QAAQ,iBAAiB,KAAK;AAChC,WAAO,iBAAiB,SAAS,UAAU,IAAI,IAAI,OAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAC9E;AAGA,UAAQ,eAAe,MAAM;AAC7B,QAAM,SAA8B,QAAQ;AAG5C,QAAM,OAAO,IAAI,IAAI,OAAO,KAAK,QAAQ,CAAC;AAC1C,QAAM,QAA8B,CAAC;AAErC,MAAI,UAAU;AAEZ,eAAW,OAAO,MAAM;AACtB,UAAK,OAAO,GAAG,MAAM,UAAe,OAAO,QAAS;AAClD,cAAM,GAAG,IAAI,EAAE,MAAM,MAAM,OAAO,OAAO,GAAG,EAAE;AAAA,MAChD;AAAA,IACF;AAAA,EACF,OAAO;AACL,eAAW,OAAO,MAAM;AACtB,YAAM,MAAM,OAAO,GAAG;AACtB,YAAM,MAAM,SAAS,GAAG;AAExB,YAAM,aAAS,kBAAK,KAAK,GAAG;AAC5B,UAAI,CAAE,OAAO;AAAM;AAGnB,UAAK,QAAQ,UAAe,EAAG,OAAO,SAAU;AAC9C,cAAM,GAAG,IAAI,EAAE,MAAM,MAAM,SAAS,IAAI;AAAA,MAC1C,OAAO;AACL,cAAM,GAAG,IAAI;AAAA,MACf;AAAA,IACF;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,KAAK,KAAK,EAAE;AACjC,MAAI,UAAU;AAAG;AAEjB,QAAM,OAAO,UAAU,IAAI,aAAa;AACxC,QAAM,IAAI,8BAAiB,SAAS,UAAU,cAAc,SAAS,QAAQ;AAAA,IAC3E,MAAM;AAAA,IACN,OAAO;AAAA,IACP;AAAA,EACF,CAAC;AACH;AAEO,SAAS,eAAe,SAAuB,UAAmB,UAA0B;AAEjG,UAAQ,eAAe,MAAM;AAC7B,MAAI,OAAQ,QAAQ,MAAc,OAAO,QAAQ,MAAM,YAAY;AACjE,UAAM,IAAI,8BAAiB,SAAS,OAAO,0BAA0B;AAAA,EACvE;AACA,QAAM,SAAS,IAAI,IAAI,QAAQ,KAAsB;AAGrD,QAAM,SAAiB,CAAC;AACxB,MAAI,UAAU;AACZ,eAAW,OAAO,UAAU;AAC1B,iBAAW,OAAO,QAAQ;AACxB,cAAM,aAAS,kBAAK,KAAK,GAAG;AAC5B,YAAI,OAAO;AAAM;AAEjB,eAAO,KAAK,EAAE,MAAM,MAAM,OAAO,IAAI,CAAC;AACtC;AAAA,MACF;AAAA,IACF;AAAA,EACF,OAAO;AACL,eAAW,OAAO,UAAU;AAC1B,UAAI,QAAQ;AAEZ,iBAAW,OAAO,QAAQ;AACxB,cAAM,aAAS,kBAAK,KAAK,GAAG;AAC5B,YAAI,OAAO;AAAM;AACjB,gBAAQ;AACR;AAAA,MACF;AAEA,UAAI,CAAE,OAAO;AACX,eAAO,KAAK,EAAE,MAAM,MAAM,SAAS,IAAI,CAAC;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO;AACrB,MAAI,UAAU;AAAG;AAEjB,QAAM,OAAO,UAAU,IAAI,UAAU;AACrC,QAAM,IAAI,8BAAiB,SAAS,UAAU,cAAc,SAAS,QAAQ;AAAA,IAC3E,MAAM;AAAA,IACN,OAAO,QAAQ;AAAA,IACf;AAAA,EACF,CAAC;AACH;AAEO,SAAS,iBAAiB,SAAuB,UAAmB,UAA+B;AACxG,UAAQ,eAAe,GAAG;AAC1B,QAAM,SAAwB,QAAQ;AAGtC,QAAM,OAAO,IAAI,IAAI,SAAS,KAAK,CAAC;AACpC,QAAM,WAA+B,CAAC;AAEtC,MAAI,UAAU;AAEZ,eAAW,OAAO,MAAM;AACtB,UAAI,OAAO,IAAI,GAAG,GAAG;AACnB,iBAAS,KAAK,CAAE,KAAK,EAAE,MAAM,MAAM,OAAO,OAAO,IAAI,GAAG,EAAE,CAAE,CAAC;AAAA,MAC/D;AAAA,IACF;AAAA,EACF,OAAO;AACL,eAAW,OAAO,MAAM;AACtB,UAAI,CAAE,OAAO,IAAI,GAAG,GAAG;AACrB,iBAAS,KAAK,CAAE,KAAK,EAAE,MAAM,MAAM,SAAS,SAAS,IAAI,GAAG,EAAE,CAAE,CAAC;AAAA,MACnE,OAAO;AACL,cAAM,aAAS,kBAAK,OAAO,IAAI,GAAG,GAAG,SAAS,IAAI,GAAG,CAAC;AACtD,YAAI,OAAO;AAAM,mBAAS,KAAK,CAAE,KAAK,MAAO,CAAC;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,QAAQ,SAAS;AACvB,MAAI,UAAU;AAAG;AAEjB,QAAM,OAAO,UAAU,IAAI,YAAY;AACvC,QAAM,IAAI,8BAAiB,SAAS,UAAU,cAAc,SAAS,QAAQ;AAAA,IAC3E,MAAM;AAAA,IACN,OAAO,QAAQ;AAAA,IACf;AAAA,EACF,CAAC;AACH;",
5
+ "names": []
6
+ }
@@ -0,0 +1,10 @@
1
+ import type { Expectation, Expectations } from './expect';
2
+ export declare class ToInclude implements Expectation {
3
+ expect(context: Expectations, negative: boolean, expected: Record<string, any> | Map<any, any> | Set<any> | any[]): void;
4
+ }
5
+ export declare class ToMatchContents implements Expectation {
6
+ expect(context: Expectations, negative: boolean, contents: any[] | Set<any>): void;
7
+ }
8
+ export declare function includesProps(context: Expectations, negative: boolean, expected: Record<string, any>): void;
9
+ export declare function includesValues(context: Expectations, negative: boolean, expected: Set<any>): void;
10
+ export declare function includesMappings(context: Expectations, negative: boolean, expected: Map<any, any>): void;
@@ -0,0 +1,158 @@
1
+ // expectation/include.ts
2
+ import { diff } from "./diff.mjs";
3
+ import { ExpectationError, stringifyObjectType, stringifyValue } from "./types.mjs";
4
+ var ToInclude = class {
5
+ expect(context, negative, expected) {
6
+ if (expected instanceof Map)
7
+ return includesMappings(context, negative, expected);
8
+ if (expected instanceof Set)
9
+ return includesValues(context, negative, expected);
10
+ if (Array.isArray(expected))
11
+ return includesValues(context, negative, new Set(expected));
12
+ if (expected instanceof Object)
13
+ return includesProps(context, negative, expected);
14
+ throw new TypeError(`Invalid type for "toInclude(...)": ${stringifyValue(expected)}`);
15
+ }
16
+ };
17
+ var ToMatchContents = class {
18
+ expect(context, negative, contents) {
19
+ let actual;
20
+ let expected;
21
+ try {
22
+ actual = new Set(context.value);
23
+ expected = new Set(contents);
24
+ } catch (error) {
25
+ throw new ExpectationError(context, false, "to be an iterable object");
26
+ }
27
+ const result = diff(actual, expected);
28
+ delete result.error;
29
+ if (result.diff === negative)
30
+ return;
31
+ throw new ExpectationError(
32
+ context,
33
+ negative,
34
+ `to match contents of ${stringifyObjectType(contents)}`,
35
+ { ...result, value: context.value }
36
+ );
37
+ }
38
+ };
39
+ function includesProps(context, negative, expected) {
40
+ if (context.value instanceof Map) {
41
+ return includesMappings(context, negative, new Map(Object.entries(expected)));
42
+ }
43
+ context.toBeInstanceOf(Object);
44
+ const actual = context.value;
45
+ const keys = new Set(Object.keys(expected));
46
+ const props = {};
47
+ if (negative) {
48
+ for (const key of keys) {
49
+ if (actual[key] !== void 0 || key in actual) {
50
+ props[key] = { diff: true, extra: actual[key] };
51
+ }
52
+ }
53
+ } else {
54
+ for (const key of keys) {
55
+ const act = actual[key];
56
+ const exp = expected[key];
57
+ const result = diff(act, exp);
58
+ if (!result.diff)
59
+ continue;
60
+ if (act === void 0 && !(key in actual)) {
61
+ props[key] = { diff: true, missing: exp };
62
+ } else {
63
+ props[key] = result;
64
+ }
65
+ }
66
+ }
67
+ const count = Object.keys(props).length;
68
+ if (count === 0)
69
+ return;
70
+ const type = count === 1 ? "property" : "properties";
71
+ throw new ExpectationError(context, negative, `to include ${count} ${type}`, {
72
+ diff: true,
73
+ value: actual,
74
+ props
75
+ });
76
+ }
77
+ function includesValues(context, negative, expected) {
78
+ context.toBeInstanceOf(Object);
79
+ if (typeof context.value[Symbol.iterator] !== "function") {
80
+ throw new ExpectationError(context, false, "to be an iterable object");
81
+ }
82
+ const actual = new Set(context.value);
83
+ const values = [];
84
+ if (negative) {
85
+ for (const exp of expected) {
86
+ for (const act of actual) {
87
+ const result = diff(act, exp);
88
+ if (result.diff)
89
+ continue;
90
+ values.push({ diff: true, extra: act });
91
+ break;
92
+ }
93
+ }
94
+ } else {
95
+ for (const exp of expected) {
96
+ let found = false;
97
+ for (const act of actual) {
98
+ const result = diff(act, exp);
99
+ if (result.diff)
100
+ continue;
101
+ found = true;
102
+ break;
103
+ }
104
+ if (!found) {
105
+ values.push({ diff: true, missing: exp });
106
+ }
107
+ }
108
+ }
109
+ const count = values.length;
110
+ if (count === 0)
111
+ return;
112
+ const type = count === 1 ? "value" : "values";
113
+ throw new ExpectationError(context, negative, `to include ${count} ${type}`, {
114
+ diff: true,
115
+ value: context.value,
116
+ values
117
+ });
118
+ }
119
+ function includesMappings(context, negative, expected) {
120
+ context.toBeInstanceOf(Map);
121
+ const actual = context.value;
122
+ const keys = new Set(expected.keys());
123
+ const mappings = [];
124
+ if (negative) {
125
+ for (const key of keys) {
126
+ if (actual.has(key)) {
127
+ mappings.push([key, { diff: true, extra: actual.get(key) }]);
128
+ }
129
+ }
130
+ } else {
131
+ for (const key of keys) {
132
+ if (!actual.has(key)) {
133
+ mappings.push([key, { diff: true, missing: expected.get(key) }]);
134
+ } else {
135
+ const result = diff(actual.get(key), expected.get(key));
136
+ if (result.diff)
137
+ mappings.push([key, result]);
138
+ }
139
+ }
140
+ }
141
+ const count = mappings.length;
142
+ if (count === 0)
143
+ return;
144
+ const type = count === 1 ? "mapping" : "mappings";
145
+ throw new ExpectationError(context, negative, `to include ${count} ${type}`, {
146
+ diff: true,
147
+ value: context.value,
148
+ mappings
149
+ });
150
+ }
151
+ export {
152
+ ToInclude,
153
+ ToMatchContents,
154
+ includesMappings,
155
+ includesProps,
156
+ includesValues
157
+ };
158
+ //# sourceMappingURL=include.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/expectation/include.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // expectation/print.ts
21
+ var print_exports = {};
22
+ __export(print_exports, {
23
+ printDiff: () => printDiff
24
+ });
25
+ module.exports = __toCommonJS(print_exports);
26
+ var import_logging = require("@plugjs/plug/logging");
27
+ var import_utils = require("@plugjs/plug/utils");
28
+ var import_types = require("./types.cjs");
29
+ var _opnPar = (0, import_logging.$gry)("(");
30
+ var _clsPar = (0, import_logging.$gry)(")");
31
+ var _opnCrl = (0, import_logging.$gry)("{");
32
+ var _clsCrl = (0, import_logging.$gry)("}");
33
+ var _curls = (0, import_logging.$gry)("{}");
34
+ var _opnSqr = (0, import_logging.$gry)("[");
35
+ var _clsSqr = (0, import_logging.$gry)("]");
36
+ var _squares = (0, import_logging.$gry)("[]");
37
+ var _slash = (0, import_logging.$gry)("/");
38
+ var _tilde = (0, import_logging.$gry)("~");
39
+ var _hellip = (0, import_logging.$gry)("\u2026");
40
+ var _error = `${_opnPar}${(0, import_logging.$gry)((0, import_logging.$und)("error"))}${_clsPar}`;
41
+ var _string = `${_opnPar}${(0, import_logging.$gry)((0, import_logging.$und)("string"))}${_clsPar}`;
42
+ var _extraProps = (0, import_logging.$gry)("\u2026 extra props \u2026");
43
+ var _diffHeader = `${(0, import_logging.$wht)("Differences")} ${_opnPar}${(0, import_logging.$red)("actual")}${_slash}${(0, import_logging.$grn)("expected")}${_slash}${(0, import_logging.$ylw)("errors")}${_clsPar}:`;
44
+ function printBaseDiff(log, diff, prop, mapping, comma) {
45
+ if ("props" in diff)
46
+ return printObjectDiff(log, diff, prop, mapping, comma);
47
+ if ("values" in diff)
48
+ return printObjectDiff(log, diff, prop, mapping, comma);
49
+ if ("mappings" in diff)
50
+ return printObjectDiff(log, diff, prop, mapping, comma);
51
+ if ("expected" in diff)
52
+ return printExpectedDiff(log, diff, prop, mapping, comma);
53
+ if ("missing" in diff)
54
+ return printMissingDiff(log, diff, prop, mapping, comma);
55
+ if ("extra" in diff)
56
+ return printExtraDiff(log, diff, prop, mapping, comma);
57
+ const { prefix, suffix } = diff.error ? (
58
+ // default style if error is the only property
59
+ fixups(prop, mapping, comma, diff.error)
60
+ ) : diff.diff ? (
61
+ // label as "differs" if no error was found
62
+ fixups(prop, mapping, comma, diff.error, import_logging.$red, "differs")
63
+ ) : fixups(prop, mapping, comma, diff.error);
64
+ dump(log, diff.value, prefix, suffix, diff.diff ? import_logging.$red : import_logging.$wht);
65
+ }
66
+ function printExpectedDiff(log, diff, prop, mapping, comma) {
67
+ if (typeof diff.value === "string" && typeof diff.expected === "string") {
68
+ const { prefix, suffix } = fixups(prop, mapping, false, diff.error);
69
+ log.warn(`${prefix}${_string}${suffix}`);
70
+ (0, import_utils.textDiff)(diff.value, diff.expected).split("\n").forEach((line) => {
71
+ log.warn(` ${_hellip} ${line}`);
72
+ });
73
+ } else if (diff.value === null || typeof diff.value !== "object") {
74
+ const { prefix, suffix } = fixups(prop, mapping, comma, diff.error);
75
+ const joined = `${prefix}${(0, import_logging.$red)(stringify(diff.value))} ${_tilde} `;
76
+ dump(log, diff.expected, joined, suffix, import_logging.$grn);
77
+ } else if (diff.expected === null || typeof diff.expected !== "object") {
78
+ const { prefix, suffix } = fixups(prop, mapping, comma, diff.error);
79
+ const joined = ` ${_tilde} ${(0, import_logging.$grn)(stringify(diff.expected))}${suffix}`;
80
+ dump(log, diff.value, prefix, joined, import_logging.$red);
81
+ } else {
82
+ const { prefix, suffix: suffix1 } = fixups(prop, mapping, false, "");
83
+ const { suffix: suffix2 } = fixups(prop, mapping, comma, diff.error);
84
+ const lastLine = dumpAndContinue(log, diff.expected, prefix, suffix1, import_logging.$red);
85
+ dump(log, diff.value, `${lastLine} ${_tilde} `, suffix2, import_logging.$grn);
86
+ }
87
+ }
88
+ function printMissingDiff(log, diff, prop, mapping, comma) {
89
+ const { prefix, suffix } = fixups(prop, mapping, comma, diff.error, import_logging.$red, "missing");
90
+ dump(log, diff.missing, prefix, suffix, import_logging.$red);
91
+ }
92
+ function printExtraDiff(log, diff, prop, mapping, comma) {
93
+ const { prefix, suffix } = fixups(prop, mapping, comma, diff.error, import_logging.$red, "extra");
94
+ dump(log, diff.extra, prefix, suffix, import_logging.$red);
95
+ }
96
+ function printObjectDiff(log, diff, prop, mapping, comma) {
97
+ const { prefix, suffix } = fixups(prop, mapping, comma, diff.error);
98
+ const value = diff.value;
99
+ const ctor = Object.getPrototypeOf(value)?.constructor;
100
+ const string = ctor === Object || ctor === Array ? "" : (0, import_types.stringifyValue)(value);
101
+ let line = string ? `${prefix}${(0, import_logging.$wht)(string)} ` : prefix;
102
+ let marked = false;
103
+ if (diff.values) {
104
+ if (diff.values.length === 0) {
105
+ line = `${line}${_squares}`;
106
+ } else {
107
+ log.warn(`${line}${_opnSqr}`);
108
+ log.enter();
109
+ try {
110
+ for (const subdiff of diff.values) {
111
+ printBaseDiff(log, subdiff, "", false, true);
112
+ }
113
+ } finally {
114
+ log.leave();
115
+ }
116
+ line = _clsSqr;
117
+ }
118
+ marked = true;
119
+ } else if (diff.mappings) {
120
+ if (Object.keys(diff.mappings).length === 0) {
121
+ line = `${line}${_curls}`;
122
+ } else {
123
+ log.warn(`${line}${_opnCrl}`);
124
+ log.enter();
125
+ try {
126
+ for (const [key, subdiff] of diff.mappings) {
127
+ printBaseDiff(log, subdiff, (0, import_types.stringifyValue)(key), true, true);
128
+ }
129
+ } finally {
130
+ log.leave();
131
+ }
132
+ line = _clsCrl;
133
+ }
134
+ marked = true;
135
+ }
136
+ if (diff.props) {
137
+ if (marked)
138
+ line = `${line} ${_extraProps} `;
139
+ if (Object.keys(diff.props).length === 0) {
140
+ line = `${line}${_curls}`;
141
+ } else {
142
+ log.warn(`${line}${_opnCrl}`);
143
+ log.enter();
144
+ try {
145
+ for (const [prop2, subdiff] of Object.entries(diff.props)) {
146
+ printBaseDiff(log, subdiff, (0, import_types.stringifyValue)(prop2), false, true);
147
+ }
148
+ } finally {
149
+ log.leave();
150
+ }
151
+ line = _clsCrl;
152
+ }
153
+ marked = true;
154
+ }
155
+ log.warn(`${line}${suffix}`);
156
+ }
157
+ function stringify(value) {
158
+ if (typeof value === "string")
159
+ return JSON.stringify(value);
160
+ return (0, import_types.stringifyValue)(value);
161
+ }
162
+ function fixups(prop, mapping, comma, error, color, label) {
163
+ if (error)
164
+ color = color || import_logging.$ylw;
165
+ const lbl = label ? `${_opnPar}${(0, import_logging.$gry)((0, import_logging.$und)(label))}${_clsPar} ` : "";
166
+ const sep = mapping ? " => " : ": ";
167
+ const prefix = prop ? color ? `${(0, import_logging.$gry)(lbl)}${color(prop)}${(0, import_logging.$gry)(sep)}` : `${(0, import_logging.$gry)(lbl)}${prop}${(0, import_logging.$gry)(sep)}` : label ? `${(0, import_logging.$gry)(lbl)}` : "";
168
+ error = error ? ` ${_error} ${(0, import_logging.$ylw)(error)}` : "";
169
+ const suffix = `${comma ? (0, import_logging.$gry)(",") : ""}${error}`;
170
+ return { prefix, suffix };
171
+ }
172
+ function dump(log, value, prefix, suffix, color, stack = []) {
173
+ log.warn(dumpAndContinue(log, value, prefix, suffix, color, stack));
174
+ }
175
+ function dumpAndContinue(log, value, prefix, suffix, color, stack = []) {
176
+ if (value === null || typeof value !== "object") {
177
+ return `${prefix}${color(stringify(value))}${suffix}`;
178
+ }
179
+ const circular = stack.indexOf(value);
180
+ if (circular >= 0) {
181
+ return `${prefix}${(0, import_logging.$gry)((0, import_logging.$und)(`<circular ${circular}>`))}${suffix}`;
182
+ }
183
+ const ctor = Object.getPrototypeOf(value)?.constructor;
184
+ const string = ctor === Object || ctor === Array ? "" : (0, import_types.stringifyValue)(value);
185
+ const keys = new Set(Object.keys(value));
186
+ let line = string ? `${prefix}${(0, import_logging.$wht)(string)} ` : prefix;
187
+ let marked = false;
188
+ if (Array.isArray(value)) {
189
+ if (value.length === 0) {
190
+ line = `${line}${_squares}`;
191
+ } else {
192
+ log.warn(`${line}${_opnSqr}`);
193
+ log.enter();
194
+ try {
195
+ for (let i = 0; i < value.length; i++) {
196
+ const { prefix: prefix2, suffix: suffix2 } = fixups("", false, true, void 0, color);
197
+ dump(log, value[i], prefix2, suffix2, color, [...stack, value]);
198
+ keys.delete(String(i));
199
+ }
200
+ } finally {
201
+ log.leave();
202
+ }
203
+ line = _clsSqr;
204
+ }
205
+ marked = true;
206
+ } else if (value instanceof Set) {
207
+ if (value.size === 0) {
208
+ line = `${line}${_squares}`;
209
+ } else {
210
+ log.warn(`${line}${_opnSqr}`);
211
+ log.enter();
212
+ try {
213
+ const { prefix: prefix2, suffix: suffix2 } = fixups("", false, true, void 0, color);
214
+ value.forEach((v) => dump(log, v, prefix2, suffix2, color, [...stack, value]));
215
+ } finally {
216
+ log.leave();
217
+ }
218
+ line = _clsSqr;
219
+ }
220
+ marked = true;
221
+ } else if (value instanceof Map) {
222
+ if (value.size === 0) {
223
+ line = `${line}${_curls}`;
224
+ } else {
225
+ log.warn(`${line}${_opnCrl}`);
226
+ log.enter();
227
+ try {
228
+ for (const [key, subvalue] of value) {
229
+ const { prefix: prefix2, suffix: suffix2 } = fixups((0, import_types.stringifyValue)(key), true, true, void 0, color);
230
+ dump(log, subvalue, prefix2, suffix2, color, [...stack, value]);
231
+ }
232
+ } finally {
233
+ log.leave();
234
+ }
235
+ line = _clsCrl;
236
+ }
237
+ marked = true;
238
+ }
239
+ if (value instanceof String) {
240
+ const length = value.valueOf().length;
241
+ for (let i = 0; i < length; i++)
242
+ keys.delete(String(i));
243
+ }
244
+ if (keys.size) {
245
+ if (marked)
246
+ line = `${line} ${_extraProps} `;
247
+ log.warn(`${line}${_opnCrl}`);
248
+ log.enter();
249
+ try {
250
+ for (const key of keys) {
251
+ const { prefix: prefix2, suffix: suffix2 } = fixups((0, import_types.stringifyValue)(key), false, true, void 0, color);
252
+ dump(log, value[key], prefix2, suffix2, color, [...stack, value]);
253
+ }
254
+ } finally {
255
+ log.leave();
256
+ }
257
+ line = _clsCrl;
258
+ marked = true;
259
+ }
260
+ if (marked) {
261
+ return `${line}${suffix}`;
262
+ } else {
263
+ return `${line}${_curls}${suffix}`;
264
+ }
265
+ }
266
+ function printDiff(log, diff, header = true) {
267
+ if (!header)
268
+ return printBaseDiff(log, diff, "", false, false);
269
+ log.warn(_diffHeader);
270
+ log.enter();
271
+ try {
272
+ printBaseDiff(log, diff, "", false, false);
273
+ } finally {
274
+ log.leave();
275
+ }
276
+ }
277
+ // Annotate the CommonJS export names for ESM import in node:
278
+ 0 && (module.exports = {
279
+ printDiff
280
+ });
281
+ //# sourceMappingURL=print.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/expectation/print.ts"],
4
+ "mappings": "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",
5
+ "names": ["prop", "prefix", "suffix"]
6
+ }
@@ -0,0 +1,4 @@
1
+ import type { Diff } from './diff';
2
+ import type { Logger } from '@plugjs/plug/logging';
3
+ /** Print a {@link Diff} to a log, with a nice header by default... */
4
+ export declare function printDiff(log: Logger, diff: Diff, header?: boolean): void;