testeranto 0.140.2 → 0.143.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 (130) hide show
  1. package/.aider.chat.history.md +9173 -0
  2. package/.aider.input.history +336 -0
  3. package/.aider.tags.cache.v3/{ad/3c/10f2ab1397f6d544e613d2a6acaf.val → 3d/81/8b6f0e9b98ec2952cdb8968ac386.val} +0 -0
  4. package/.aider.tags.cache.v3/63/f1/138061b0aadb868173d197c2a0e0.val +0 -0
  5. package/.aider.tags.cache.v3/be/72/19ee8e656d160afe9b31523245fe.val +0 -0
  6. package/.aider.tags.cache.v3/cache.db +0 -0
  7. package/.aider.tags.cache.v3/cache.db-shm +0 -0
  8. package/.aider.tags.cache.v3/cache.db-wal +0 -0
  9. package/.aider.tags.cache.v3/{a7/97/6d37fce350ad2d588f36729db0cd.val → d6/7d/1820c2d4b9330eab7017da4515e7.val} +0 -0
  10. package/docs/aiderTest.sh +1 -0
  11. package/docs/testing.ai.txt +98 -0
  12. package/docs/testing.prompt.txt +8 -0
  13. package/package.json +3 -3
  14. package/src/PM/PM_WithEslintAndTsc.ts +35 -21
  15. package/src/Pure.test.ts +299 -0
  16. package/src/lib/BaseSuite.test.ts +24 -5
  17. package/src/lib/abstractBase.test/MockGiven.ts +31 -0
  18. package/src/lib/abstractBase.test/MockThen.ts +20 -0
  19. package/src/lib/abstractBase.test/MockWhen.ts +17 -0
  20. package/src/lib/abstractBase.test/implementation.ts +51 -0
  21. package/src/lib/abstractBase.test/index.ts +19 -0
  22. package/src/lib/abstractBase.test/interface.ts +12 -0
  23. package/src/lib/abstractBase.test/specification.ts +49 -0
  24. package/src/lib/abstractBase.test/types.ts +19 -0
  25. package/src/lib/baseBuilder.test/TestBaseBuilder.ts +83 -0
  26. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +133 -0
  27. package/src/lib/baseBuilder.test/baseBuilder.test.interface.ts +18 -0
  28. package/src/lib/baseBuilder.test/baseBuilder.test.specification.ts +35 -0
  29. package/src/lib/baseBuilder.test/baseBuilder.test.ts +13 -0
  30. package/src/lib/baseBuilder.test/baseBuilder.test.types.ts +36 -0
  31. package/src/lib/classBuilder.test/TestClassBuilder.ts +88 -0
  32. package/src/lib/classBuilder.test/classBuilder.test.implementation.ts +200 -0
  33. package/src/lib/classBuilder.test/classBuilder.test.interface.ts +17 -0
  34. package/src/lib/classBuilder.test/classBuilder.test.specification.ts +112 -0
  35. package/src/lib/classBuilder.test/classBuilder.test.ts +14 -0
  36. package/src/lib/classBuilder.test/classBuilder.test.types.ts +72 -0
  37. package/src/lib/core.test/MockCore.ts +49 -0
  38. package/src/lib/core.test/core.test.implementation.ts +129 -0
  39. package/src/lib/core.test/core.test.interface.ts +18 -0
  40. package/src/lib/core.test/core.test.specification.ts +99 -0
  41. package/src/lib/core.test/core.test.ts +15 -0
  42. package/src/lib/core.test/core.test.types.ts +68 -0
  43. package/src/lib/core.ts +1 -1
  44. package/src/lib/pmProxy.test/implementation.ts +104 -0
  45. package/src/lib/pmProxy.test/index.ts +19 -0
  46. package/src/lib/pmProxy.test/interface.ts +47 -0
  47. package/src/lib/pmProxy.test/mockPM.ts +38 -0
  48. package/src/lib/pmProxy.test/mockPMBase.ts +136 -0
  49. package/src/lib/pmProxy.test/specification.ts +123 -0
  50. package/src/lib/pmProxy.test/types.ts +45 -0
  51. package/src/lib/pmProxy.ts +40 -193
  52. package/testeranto/bundles/node/allTests/chunk-2FXOXAKZ.mjs +800 -0
  53. package/testeranto/bundles/node/allTests/chunk-5MQGD4WC.mjs +251 -0
  54. package/testeranto/bundles/node/allTests/chunk-6CGAD2FD.mjs +800 -0
  55. package/testeranto/bundles/node/allTests/chunk-DWKHII32.mjs +800 -0
  56. package/testeranto/bundles/node/allTests/chunk-KYSOR62N.mjs +167 -0
  57. package/testeranto/bundles/node/allTests/chunk-PRPFVO6G.mjs +251 -0
  58. package/testeranto/bundles/node/allTests/chunk-RX4SUFXQ.mjs +251 -0
  59. package/testeranto/bundles/node/allTests/chunk-UED26IMH.mjs +802 -0
  60. package/testeranto/bundles/node/allTests/chunk-VAAIAWXC.mjs +117 -0
  61. package/testeranto/bundles/node/allTests/chunk-W44DUDBK.mjs +251 -0
  62. package/testeranto/bundles/node/allTests/chunk-YI3EGRMQ.mjs +167 -0
  63. package/testeranto/bundles/node/allTests/metafile.json +1072 -222
  64. package/testeranto/bundles/node/allTests/src/PM/__tests__/nodeSidecar.testeranto.mjs +2 -1
  65. package/testeranto/bundles/node/allTests/src/PM/__tests__/pureSidecar.testeranto.mjs +2 -1
  66. package/testeranto/bundles/node/allTests/src/PM/__tests__/webSidecar.testeranto.mjs +2 -1
  67. package/testeranto/bundles/node/allTests/src/Pure.test.mjs +261 -0
  68. package/testeranto/bundles/node/allTests/src/lib/BaseSuite.test.mjs +22 -4
  69. package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.mjs +226 -0
  70. package/testeranto/bundles/node/allTests/src/lib/classBuilder.test/classBuilder.test.mjs +406 -0
  71. package/testeranto/bundles/node/allTests/src/lib/core.test/core.test.mjs +279 -0
  72. package/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs +4479 -0
  73. package/testeranto/bundles/node/allTests/src/mothership/test.mjs +4 -2
  74. package/testeranto/reports/allTests/config.json +40 -1
  75. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/console_log.txt +0 -0
  76. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/log.txt +0 -0
  77. package/testeranto/reports/allTests/src/Pure.test/node/console_log.txt +17 -0
  78. package/testeranto/reports/allTests/src/Pure.test/node/dev.html +21 -0
  79. package/testeranto/reports/allTests/src/Pure.test/node/index.html +21 -0
  80. package/testeranto/reports/allTests/src/Pure.test/node/lint_errors.json +134 -0
  81. package/testeranto/reports/allTests/src/Pure.test/node/message +1 -0
  82. package/testeranto/reports/allTests/src/Pure.test/node/prompt.txt +7 -0
  83. package/testeranto/reports/allTests/src/Pure.test/node/type_errors.txt +26 -0
  84. package/testeranto/reports/allTests/src/lib/BaseGiven.test/node/dev.html +21 -0
  85. package/testeranto/reports/allTests/src/lib/BaseGiven.test/node/index.html +21 -0
  86. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/console_log.txt +27 -27
  87. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/lint_errors.json +104 -104
  88. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/type_errors.txt +47 -22
  89. package/testeranto/reports/allTests/src/lib/BaseThen.test/node/dev.html +21 -0
  90. package/testeranto/reports/allTests/src/lib/BaseThen.test/node/index.html +21 -0
  91. package/testeranto/reports/allTests/src/lib/BaseWhen.test/node/dev.html +21 -0
  92. package/testeranto/reports/allTests/src/lib/BaseWhen.test/node/index.html +21 -0
  93. package/testeranto/reports/allTests/src/lib/abstractBase/index/node/dev.html +21 -0
  94. package/testeranto/reports/allTests/src/lib/abstractBase/index/node/index.html +21 -0
  95. package/testeranto/reports/allTests/src/lib/baseBuilder/baseBuilder.test/node/dev.html +21 -0
  96. package/testeranto/reports/allTests/src/lib/baseBuilder/baseBuilder.test/node/index.html +21 -0
  97. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/console_log.txt +12 -0
  98. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/dev.html +21 -0
  99. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/index.html +21 -0
  100. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/lint_errors.json +966 -0
  101. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/message +1 -0
  102. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/prompt.txt +11 -0
  103. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/type_errors.txt +52 -0
  104. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/console_log.txt +17 -0
  105. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/dev.html +21 -0
  106. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/index.html +21 -0
  107. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.json +771 -0
  108. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/message +1 -0
  109. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +11 -0
  110. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +67 -0
  111. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/console_log.txt +17 -0
  112. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/dev.html +21 -0
  113. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/index.html +21 -0
  114. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.json +416 -0
  115. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/message +1 -0
  116. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/prompt.txt +11 -0
  117. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/type_errors.txt +54 -0
  118. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/console_log.txt +43 -0
  119. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/dev.html +21 -0
  120. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/index.html +21 -0
  121. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.json +319 -0
  122. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/log.txt +0 -0
  123. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/message +1 -0
  124. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/prompt.txt +10 -0
  125. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/type_errors.txt +64 -0
  126. package/testeranto/reports/allTests/src/mothership/test/node/console_log.txt +44 -0
  127. package/testeranto/reports/allTests/src/mothership/test/node/log.txt +0 -0
  128. package/testeranto/reports/allTests/summary.json +76 -6
  129. package/testeranto/reportsnode_build_errors +12 -0
  130. package/testeranto.config.ts +19 -2
@@ -0,0 +1,406 @@
1
+ import { createRequire } from 'module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Node_default
4
+ } from "../../../chunk-W44DUDBK.mjs";
5
+ import {
6
+ BaseBuilder,
7
+ ClassBuilder
8
+ } from "../../../chunk-UED26IMH.mjs";
9
+
10
+ // src/lib/classBuilder.test/classBuilder.test.specification.ts
11
+ var specification2 = (Suite, Given, When, Then, Check) => {
12
+ return [
13
+ Suite.Default(
14
+ "Basic ClassBuilder Functionality",
15
+ {
16
+ // Basic initialization tests
17
+ initialization: Given.Default(
18
+ ["ClassBuilder should initialize with default values"],
19
+ [],
20
+ [Then.initializedProperly()]
21
+ ),
22
+ customInput: Given.WithCustomInput(
23
+ { custom: "input" },
24
+ [],
25
+ [Then.initializedProperly()]
26
+ ),
27
+ resourceRequirements: Given.WithResourceRequirements(
28
+ { ports: [3e3, 3001] },
29
+ [],
30
+ [Then.resourceRequirementsSet()]
31
+ ),
32
+ // Core functionality tests
33
+ specGeneration: Given.Default(
34
+ ["Should generate specs from test specification"],
35
+ [],
36
+ [Then.specsGenerated()]
37
+ ),
38
+ jobCreation: Given.Default(
39
+ ["Should create test jobs from specs"],
40
+ [],
41
+ [Then.jobsCreated()]
42
+ ),
43
+ artifactTracking: Given.Default(
44
+ ["Should track artifacts"],
45
+ [When.addArtifact(Promise.resolve("test"))],
46
+ [Then.artifactsTracked()]
47
+ ),
48
+ // Configuration tests
49
+ overridesConfiguration: Given.Default(
50
+ ["Should properly configure all overrides"],
51
+ [],
52
+ [
53
+ Then.suitesOverridesConfigured(),
54
+ Then.givensOverridesConfigured(),
55
+ Then.whensOverridesConfigured(),
56
+ Then.thensOverridesConfigured(),
57
+ Then.checksOverridesConfigured()
58
+ ]
59
+ )
60
+ },
61
+ []
62
+ ),
63
+ Suite.ExtendedSuite(
64
+ "Advanced ClassBuilder Functionality",
65
+ {
66
+ // Custom implementations
67
+ customImplementation: Given.WithCustomImplementation(
68
+ implementation,
69
+ [],
70
+ [Then.specsGenerated(), Then.jobsCreated()]
71
+ ),
72
+ customSpecification: Given.WithCustomSpecification(
73
+ specification2,
74
+ [],
75
+ [Then.specsGenerated(), Then.jobsCreated()]
76
+ ),
77
+ // Dynamic modification tests
78
+ modifySpecs: Given.Default(
79
+ ["Should allow modifying specs"],
80
+ [When.modifySpecs((specs) => [...specs, "extra"])],
81
+ [Then.specsModified(1)]
82
+ ),
83
+ modifyJobs: Given.Default(
84
+ ["Should allow modifying jobs"],
85
+ [When.modifyJobs((jobs) => [...jobs, {}])],
86
+ [Then.jobsModified(1)]
87
+ ),
88
+ // Error handling
89
+ errorHandling: Given.Default(
90
+ ["Should properly handle errors"],
91
+ [When.triggerError("test error")],
92
+ [Then.errorThrown("test error")]
93
+ ),
94
+ // Full test run
95
+ testRun: Given.Default(
96
+ ["Should complete a full test run successfully"],
97
+ [],
98
+ [Then.testRunSuccessful()]
99
+ )
100
+ },
101
+ [
102
+ Check.ImplementationCheck((impl) => impl !== null),
103
+ Check.SpecificationCheck((spec) => spec !== null)
104
+ ]
105
+ )
106
+ ];
107
+ };
108
+
109
+ // src/lib/classBuilder.test/TestClassBuilder.ts
110
+ var TestClassBuilder = class extends BaseBuilder {
111
+ constructor(testImplementation, testSpecification, input, suiteKlasser, givenKlasser, whenKlasser, thenKlasser, checkKlasser, testResourceRequirement) {
112
+ super(
113
+ input,
114
+ {},
115
+ // suitesOverrides
116
+ {},
117
+ // givenOverides
118
+ {},
119
+ // whenOverides
120
+ {},
121
+ // thenOverides
122
+ {},
123
+ // checkOverides
124
+ testResourceRequirement,
125
+ testSpecification
126
+ );
127
+ this.summary = {};
128
+ this.summary = {};
129
+ }
130
+ /**
131
+ * Simplified test run for verification
132
+ */
133
+ testRun(puppetMaster) {
134
+ this.summary = {
135
+ [puppetMaster.testResourceConfiguration.name]: {
136
+ typeErrors: 0,
137
+ staticErrors: 0,
138
+ runTimeError: "",
139
+ prompt: "",
140
+ failingFeatures: {}
141
+ }
142
+ };
143
+ return Promise.resolve({
144
+ failed: false,
145
+ fails: 0,
146
+ artifacts: [],
147
+ logPromise: Promise.resolve(),
148
+ features: []
149
+ });
150
+ }
151
+ };
152
+
153
+ // src/lib/classBuilder.test/classBuilder.test.implementation.ts
154
+ import { PassThrough } from "stream";
155
+ var implementation2 = {
156
+ suites: {
157
+ Default: "ClassBuilder test suite"
158
+ },
159
+ givens: {
160
+ Default: () => {
161
+ return new TestClassBuilder(
162
+ implementation2,
163
+ // Use the current implementation
164
+ specification,
165
+ // Use the current specification
166
+ {},
167
+ // Default input
168
+ class {
169
+ },
170
+ // suiteKlasser
171
+ class {
172
+ },
173
+ // givenKlasser
174
+ class {
175
+ },
176
+ // whenKlasser
177
+ class {
178
+ },
179
+ // thenKlasser
180
+ class {
181
+ },
182
+ // checkKlasser
183
+ { ports: [] }
184
+ // Default resource requirements
185
+ );
186
+ },
187
+ WithCustomInput: (input) => {
188
+ return new TestClassBuilder(
189
+ implementation2,
190
+ specification,
191
+ input,
192
+ class {
193
+ },
194
+ class {
195
+ },
196
+ class {
197
+ },
198
+ class {
199
+ },
200
+ class {
201
+ },
202
+ { ports: [] }
203
+ );
204
+ },
205
+ WithResourceRequirements: (requirements) => {
206
+ return new TestClassBuilder(
207
+ implementation2,
208
+ specification,
209
+ {},
210
+ class {
211
+ },
212
+ class {
213
+ },
214
+ class {
215
+ },
216
+ class {
217
+ },
218
+ class {
219
+ },
220
+ requirements
221
+ );
222
+ },
223
+ WithCustomImplementation: (impl) => {
224
+ return new TestClassBuilder(
225
+ impl,
226
+ specification,
227
+ {},
228
+ class {
229
+ },
230
+ class {
231
+ },
232
+ class {
233
+ },
234
+ class {
235
+ },
236
+ class {
237
+ },
238
+ { ports: [] }
239
+ );
240
+ },
241
+ WithCustomSpecification: (spec) => {
242
+ return new TestClassBuilder(
243
+ implementation2,
244
+ spec,
245
+ {},
246
+ class {
247
+ },
248
+ class {
249
+ },
250
+ class {
251
+ },
252
+ class {
253
+ },
254
+ class {
255
+ },
256
+ { ports: [] }
257
+ );
258
+ }
259
+ },
260
+ whens: {
261
+ addArtifact: (artifact) => (builder) => {
262
+ builder.artifacts.push(artifact);
263
+ return builder;
264
+ },
265
+ setTestJobs: (jobs) => (builder) => {
266
+ builder.testJobs = jobs;
267
+ return builder;
268
+ },
269
+ modifySpecs: (modifier) => (builder) => {
270
+ builder.specs = modifier(builder.specs || []);
271
+ return builder;
272
+ },
273
+ modifyJobs: (modifier) => (builder) => {
274
+ builder.testJobs = modifier(builder.testJobs || []);
275
+ return builder;
276
+ },
277
+ triggerError: (message) => (builder) => {
278
+ throw new Error(message);
279
+ }
280
+ },
281
+ thens: {
282
+ initializedProperly: () => (builder) => {
283
+ if (!(builder instanceof TestClassBuilder)) {
284
+ throw new Error("Builder was not properly initialized");
285
+ }
286
+ return builder;
287
+ },
288
+ specsGenerated: () => (builder) => {
289
+ if (!Array.isArray(builder.specs)) {
290
+ throw new Error("Specs were not generated");
291
+ }
292
+ return builder;
293
+ },
294
+ jobsCreated: () => (builder) => {
295
+ if (!Array.isArray(builder.testJobs)) {
296
+ throw new Error("Test jobs were not created");
297
+ }
298
+ return builder;
299
+ },
300
+ artifactsTracked: () => (builder) => {
301
+ if (!Array.isArray(builder.artifacts)) {
302
+ throw new Error("Artifacts array not initialized");
303
+ }
304
+ return builder;
305
+ },
306
+ resourceRequirementsSet: () => (builder) => {
307
+ if (!builder.testResourceRequirement) {
308
+ throw new Error("Resource requirements not set");
309
+ }
310
+ return builder;
311
+ },
312
+ suitesOverridesConfigured: () => (builder) => {
313
+ if (!builder.suitesOverrides) {
314
+ throw new Error("Suites overrides not configured");
315
+ }
316
+ return builder;
317
+ },
318
+ givensOverridesConfigured: () => (builder) => {
319
+ if (!builder.givenOverides) {
320
+ throw new Error("Givens overrides not configured");
321
+ }
322
+ return builder;
323
+ },
324
+ whensOverridesConfigured: () => (builder) => {
325
+ if (!builder.whenOverides) {
326
+ throw new Error("Whens overrides not configured");
327
+ }
328
+ return builder;
329
+ },
330
+ thensOverridesConfigured: () => (builder) => {
331
+ if (!builder.thenOverides) {
332
+ throw new Error("Thens overrides not configured");
333
+ }
334
+ return builder;
335
+ },
336
+ checksOverridesConfigured: () => (builder) => {
337
+ if (!builder.checkOverides) {
338
+ throw new Error("Checks overrides not configured");
339
+ }
340
+ return builder;
341
+ },
342
+ specsModified: (expectedCount) => (builder) => {
343
+ if (builder.specs.length <= expectedCount) {
344
+ throw new Error(`Expected at least ${expectedCount} modified specs`);
345
+ }
346
+ return builder;
347
+ },
348
+ jobsModified: (expectedCount) => (builder) => {
349
+ if (builder.testJobs.length <= expectedCount) {
350
+ throw new Error(`Expected at least ${expectedCount} modified jobs`);
351
+ }
352
+ return builder;
353
+ },
354
+ errorThrown: (expectedMessage) => (builder) => {
355
+ return builder;
356
+ },
357
+ testRunSuccessful: () => async (builder) => {
358
+ try {
359
+ await builder.testRun({
360
+ testResourceConfiguration: {
361
+ name: "test",
362
+ fs: "/tmp",
363
+ ports: []
364
+ }
365
+ });
366
+ return builder;
367
+ } catch (e) {
368
+ throw new Error(`Test run failed: ${e.message}`);
369
+ }
370
+ }
371
+ },
372
+ checks: {
373
+ Default: () => new PassThrough(),
374
+ ImplementationCheck: (validator) => validator(implementation2),
375
+ SpecificationCheck: (validator) => validator(specification)
376
+ }
377
+ };
378
+
379
+ // src/lib/classBuilder.test/classBuilder.test.interface.ts
380
+ var testInterface = {
381
+ beforeEach: async (subject, initializer) => {
382
+ return initializer();
383
+ },
384
+ andWhen: async (store, whenCB, testResource, utils) => {
385
+ return whenCB(store, utils);
386
+ },
387
+ butThen: async (store, thenCB, testResource, pm) => {
388
+ return thenCB(store, pm);
389
+ },
390
+ afterEach: (store) => store,
391
+ afterAll: () => {
392
+ },
393
+ assertThis: (x) => {
394
+ }
395
+ };
396
+
397
+ // src/lib/classBuilder.test/classBuilder.test.ts
398
+ var classBuilder_test_default = Node_default(
399
+ ClassBuilder.prototype,
400
+ specification2,
401
+ implementation2,
402
+ testInterface
403
+ );
404
+ export {
405
+ classBuilder_test_default as default
406
+ };
@@ -0,0 +1,279 @@
1
+ import { createRequire } from 'module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Pure_default
4
+ } from "../../../chunk-KYSOR62N.mjs";
5
+ import {
6
+ TesterantoCore
7
+ } from "../../../chunk-UED26IMH.mjs";
8
+
9
+ // src/lib/core.test/core.test.specification.ts
10
+ var specification2 = (Suite, Given, When, Then, Check) => {
11
+ return [
12
+ Suite.Default(
13
+ "Testeranto Core Functionality",
14
+ {
15
+ // Initialization tests
16
+ defaultInitialization: Given.Default(
17
+ ["Should initialize with default values"],
18
+ [],
19
+ [Then.initializedProperly()]
20
+ ),
21
+ customInputInitialization: Given.WithCustomInput(
22
+ { test: "input" },
23
+ [],
24
+ [Then.initializedProperly()]
25
+ ),
26
+ // Configuration tests
27
+ resourceConfig: Given.WithResourceRequirements(
28
+ { ports: [3e3, 3001] },
29
+ [],
30
+ [Then.resourceRequirementsSet()]
31
+ ),
32
+ interfaceConfig: Given.WithCustomInterface(
33
+ {
34
+ assertThis: (x) => !!x,
35
+ beforeEach: async (s, i) => i()
36
+ },
37
+ [],
38
+ [Then.interfaceConfigured()]
39
+ ),
40
+ // Core operations
41
+ specGeneration: Given.Default(
42
+ ["Should generate test specs"],
43
+ [],
44
+ [Then.specsGenerated()]
45
+ ),
46
+ jobCreation: Given.Default(
47
+ ["Should create test jobs"],
48
+ [],
49
+ [Then.jobsCreated()]
50
+ ),
51
+ artifactHandling: Given.Default(
52
+ ["Should track artifacts"],
53
+ [When.addArtifact(Promise.resolve("test"))],
54
+ [Then.artifactsTracked()]
55
+ )
56
+ },
57
+ []
58
+ ),
59
+ Suite.ExtendedSuite(
60
+ "Testeranto Advanced Features",
61
+ {
62
+ // Error handling
63
+ errorPropagation: Given.Default(
64
+ ["Should propagate errors properly"],
65
+ [When.triggerError("test error")],
66
+ [Then.errorThrown("test error")]
67
+ ),
68
+ // Dynamic behavior
69
+ specModification: Given.Default(
70
+ ["Should allow spec modification"],
71
+ [When.modifySpecs((specs) => [...specs, { name: "extra" }])],
72
+ [Then.specsModified(1)]
73
+ ),
74
+ // Full lifecycle
75
+ testExecution: Given.Default(
76
+ ["Should execute full test lifecycle"],
77
+ [],
78
+ [Then.testRunSuccessful()]
79
+ ),
80
+ // Custom implementations
81
+ customImpl: Given.WithCustomImplementation(
82
+ {
83
+ ...implementation,
84
+ suites: { Default: "Custom suite" }
85
+ },
86
+ [],
87
+ [Then.specsGenerated()]
88
+ )
89
+ },
90
+ []
91
+ )
92
+ ];
93
+ };
94
+
95
+ // src/lib/core.test/MockCore.ts
96
+ var MockCore = class extends TesterantoCore {
97
+ constructor(input, testSpecification, testImplementation, testResourceRequirement = { ports: [] }, testInterface3 = {}, uberCatcher = (cb) => cb()) {
98
+ super(
99
+ input,
100
+ testSpecification,
101
+ testImplementation,
102
+ testResourceRequirement,
103
+ testInterface3,
104
+ uberCatcher
105
+ );
106
+ }
107
+ async receiveTestResourceConfig(partialTestResource) {
108
+ return {
109
+ failed: false,
110
+ fails: 0,
111
+ artifacts: [],
112
+ logPromise: Promise.resolve(),
113
+ features: []
114
+ };
115
+ }
116
+ };
117
+
118
+ // src/lib/core.test/core.test.implementation.ts
119
+ import { PassThrough } from "stream";
120
+ var implementation2 = {
121
+ suites: {
122
+ Default: "Testeranto test suite",
123
+ ExtendedSuite: "Extended Testeranto test suite"
124
+ },
125
+ givens: {
126
+ Default: () => {
127
+ return new MockCore(
128
+ {},
129
+ // input
130
+ specification,
131
+ // testSpecification
132
+ implementation2,
133
+ // testImplementation
134
+ { ports: [] },
135
+ // testResourceRequirement
136
+ testInterface,
137
+ // testInterface
138
+ (cb) => cb()
139
+ // uberCatcher
140
+ );
141
+ },
142
+ WithCustomInput: (input) => {
143
+ return new MockCore(
144
+ input,
145
+ specification,
146
+ implementation2,
147
+ { ports: [] },
148
+ testInterface,
149
+ (cb) => cb()
150
+ );
151
+ },
152
+ WithResourceRequirements: (requirements) => {
153
+ return new MockCore(
154
+ {},
155
+ specification,
156
+ implementation2,
157
+ requirements,
158
+ testInterface,
159
+ (cb) => cb()
160
+ );
161
+ },
162
+ WithCustomInterface: (customInterface) => {
163
+ return new MockCore(
164
+ {},
165
+ specification,
166
+ implementation2,
167
+ { ports: [] },
168
+ { ...testInterface, ...customInterface },
169
+ (cb) => cb()
170
+ );
171
+ }
172
+ },
173
+ whens: {
174
+ addArtifact: (artifact) => (builder) => {
175
+ builder.artifacts.push(artifact);
176
+ return builder;
177
+ },
178
+ setTestJobs: (jobs) => (builder) => {
179
+ builder.testJobs = jobs;
180
+ return builder;
181
+ },
182
+ modifySpecs: (modifier) => (builder) => {
183
+ builder.specs = modifier(builder.specs || []);
184
+ return builder;
185
+ },
186
+ triggerError: (message) => (builder) => {
187
+ throw new Error(message);
188
+ }
189
+ },
190
+ thens: {
191
+ initializedProperly: () => (builder) => {
192
+ if (!(builder instanceof MockCore)) {
193
+ throw new Error("Builder was not properly initialized");
194
+ }
195
+ return builder;
196
+ },
197
+ specsGenerated: () => (builder) => {
198
+ if (!Array.isArray(builder.specs)) {
199
+ throw new Error("Specs were not generated");
200
+ }
201
+ return builder;
202
+ },
203
+ jobsCreated: () => (builder) => {
204
+ if (!Array.isArray(builder.testJobs)) {
205
+ throw new Error("Test jobs were not created");
206
+ }
207
+ return builder;
208
+ },
209
+ artifactsTracked: () => (builder) => {
210
+ if (!Array.isArray(builder.artifacts)) {
211
+ throw new Error("Artifacts array not initialized");
212
+ }
213
+ return builder;
214
+ },
215
+ resourceRequirementsSet: () => (builder) => {
216
+ if (!builder.testResourceRequirement) {
217
+ throw new Error("Resource requirements not set");
218
+ }
219
+ return builder;
220
+ },
221
+ interfaceConfigured: () => (builder) => {
222
+ if (!builder.testInterface) {
223
+ throw new Error("Test interface not configured");
224
+ }
225
+ return builder;
226
+ },
227
+ errorThrown: (expectedMessage) => (builder) => {
228
+ return builder;
229
+ },
230
+ testRunSuccessful: () => async (builder) => {
231
+ try {
232
+ await builder.receiveTestResourceConfig("");
233
+ return builder;
234
+ } catch (e) {
235
+ throw new Error(`Test run failed: ${e.message}`);
236
+ }
237
+ }
238
+ },
239
+ checks: {
240
+ Default: () => new PassThrough()
241
+ }
242
+ };
243
+
244
+ // src/lib/core.test/core.test.interface.ts
245
+ var testInterface2 = {
246
+ beforeEach: async (subject, initializer, testResource, initialValues, pm) => {
247
+ return initializer();
248
+ },
249
+ andWhen: async (store, whenCB, testResource, pm) => {
250
+ return whenCB(store, pm);
251
+ },
252
+ butThen: async (store, thenCB, testResource, pm) => {
253
+ return thenCB(store, pm);
254
+ },
255
+ afterEach: (store) => store,
256
+ afterAll: (store, pm) => {
257
+ },
258
+ assertThis: (result) => !!result,
259
+ beforeAll: async (input, testResource, pm) => input
260
+ };
261
+
262
+ // src/lib/core.test/core.test.ts
263
+ var core_test_default = Pure_default(
264
+ MockCore.prototype,
265
+ // test subject
266
+ specification2,
267
+ // test scenarios
268
+ implementation2,
269
+ // test operations
270
+ testInterface2,
271
+ // test lifecycle hooks
272
+ { ports: [] },
273
+ // resource requirements
274
+ (cb) => cb()
275
+ // error handler
276
+ );
277
+ export {
278
+ core_test_default as default
279
+ };