testeranto 0.140.1 → 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 (132) 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/README.md +1 -1
  11. package/docs/aiderTest.sh +1 -0
  12. package/docs/testing.ai.txt +98 -0
  13. package/docs/testing.prompt.txt +8 -0
  14. package/index.html +1 -1
  15. package/package.json +3 -3
  16. package/src/PM/PM_WithEslintAndTsc.ts +35 -21
  17. package/src/Pure.test.ts +299 -0
  18. package/src/lib/BaseSuite.test.ts +24 -5
  19. package/src/lib/abstractBase.test/MockGiven.ts +31 -0
  20. package/src/lib/abstractBase.test/MockThen.ts +20 -0
  21. package/src/lib/abstractBase.test/MockWhen.ts +17 -0
  22. package/src/lib/abstractBase.test/implementation.ts +51 -0
  23. package/src/lib/abstractBase.test/index.ts +19 -0
  24. package/src/lib/abstractBase.test/interface.ts +12 -0
  25. package/src/lib/abstractBase.test/specification.ts +49 -0
  26. package/src/lib/abstractBase.test/types.ts +19 -0
  27. package/src/lib/baseBuilder.test/TestBaseBuilder.ts +83 -0
  28. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +133 -0
  29. package/src/lib/baseBuilder.test/baseBuilder.test.interface.ts +18 -0
  30. package/src/lib/baseBuilder.test/baseBuilder.test.specification.ts +35 -0
  31. package/src/lib/baseBuilder.test/baseBuilder.test.ts +13 -0
  32. package/src/lib/baseBuilder.test/baseBuilder.test.types.ts +36 -0
  33. package/src/lib/classBuilder.test/TestClassBuilder.ts +88 -0
  34. package/src/lib/classBuilder.test/classBuilder.test.implementation.ts +200 -0
  35. package/src/lib/classBuilder.test/classBuilder.test.interface.ts +17 -0
  36. package/src/lib/classBuilder.test/classBuilder.test.specification.ts +112 -0
  37. package/src/lib/classBuilder.test/classBuilder.test.ts +14 -0
  38. package/src/lib/classBuilder.test/classBuilder.test.types.ts +72 -0
  39. package/src/lib/core.test/MockCore.ts +49 -0
  40. package/src/lib/core.test/core.test.implementation.ts +129 -0
  41. package/src/lib/core.test/core.test.interface.ts +18 -0
  42. package/src/lib/core.test/core.test.specification.ts +99 -0
  43. package/src/lib/core.test/core.test.ts +15 -0
  44. package/src/lib/core.test/core.test.types.ts +68 -0
  45. package/src/lib/core.ts +1 -1
  46. package/src/lib/pmProxy.test/implementation.ts +104 -0
  47. package/src/lib/pmProxy.test/index.ts +19 -0
  48. package/src/lib/pmProxy.test/interface.ts +47 -0
  49. package/src/lib/pmProxy.test/mockPM.ts +38 -0
  50. package/src/lib/pmProxy.test/mockPMBase.ts +136 -0
  51. package/src/lib/pmProxy.test/specification.ts +123 -0
  52. package/src/lib/pmProxy.test/types.ts +45 -0
  53. package/src/lib/pmProxy.ts +40 -193
  54. package/testeranto/bundles/node/allTests/chunk-2FXOXAKZ.mjs +800 -0
  55. package/testeranto/bundles/node/allTests/chunk-5MQGD4WC.mjs +251 -0
  56. package/testeranto/bundles/node/allTests/chunk-6CGAD2FD.mjs +800 -0
  57. package/testeranto/bundles/node/allTests/chunk-DWKHII32.mjs +800 -0
  58. package/testeranto/bundles/node/allTests/chunk-KYSOR62N.mjs +167 -0
  59. package/testeranto/bundles/node/allTests/chunk-PRPFVO6G.mjs +251 -0
  60. package/testeranto/bundles/node/allTests/chunk-RX4SUFXQ.mjs +251 -0
  61. package/testeranto/bundles/node/allTests/chunk-UED26IMH.mjs +802 -0
  62. package/testeranto/bundles/node/allTests/chunk-VAAIAWXC.mjs +117 -0
  63. package/testeranto/bundles/node/allTests/chunk-W44DUDBK.mjs +251 -0
  64. package/testeranto/bundles/node/allTests/chunk-YI3EGRMQ.mjs +167 -0
  65. package/testeranto/bundles/node/allTests/metafile.json +1072 -222
  66. package/testeranto/bundles/node/allTests/src/PM/__tests__/nodeSidecar.testeranto.mjs +2 -1
  67. package/testeranto/bundles/node/allTests/src/PM/__tests__/pureSidecar.testeranto.mjs +2 -1
  68. package/testeranto/bundles/node/allTests/src/PM/__tests__/webSidecar.testeranto.mjs +2 -1
  69. package/testeranto/bundles/node/allTests/src/Pure.test.mjs +261 -0
  70. package/testeranto/bundles/node/allTests/src/lib/BaseSuite.test.mjs +22 -4
  71. package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.mjs +226 -0
  72. package/testeranto/bundles/node/allTests/src/lib/classBuilder.test/classBuilder.test.mjs +406 -0
  73. package/testeranto/bundles/node/allTests/src/lib/core.test/core.test.mjs +279 -0
  74. package/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs +4479 -0
  75. package/testeranto/bundles/node/allTests/src/mothership/test.mjs +4 -2
  76. package/testeranto/reports/allTests/config.json +40 -1
  77. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/console_log.txt +0 -0
  78. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/log.txt +0 -0
  79. package/testeranto/reports/allTests/src/Pure.test/node/console_log.txt +17 -0
  80. package/testeranto/reports/allTests/src/Pure.test/node/dev.html +21 -0
  81. package/testeranto/reports/allTests/src/Pure.test/node/index.html +21 -0
  82. package/testeranto/reports/allTests/src/Pure.test/node/lint_errors.json +134 -0
  83. package/testeranto/reports/allTests/src/Pure.test/node/message +1 -0
  84. package/testeranto/reports/allTests/src/Pure.test/node/prompt.txt +7 -0
  85. package/testeranto/reports/allTests/src/Pure.test/node/type_errors.txt +26 -0
  86. package/testeranto/reports/allTests/src/lib/BaseGiven.test/node/dev.html +21 -0
  87. package/testeranto/reports/allTests/src/lib/BaseGiven.test/node/index.html +21 -0
  88. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/console_log.txt +27 -27
  89. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/lint_errors.json +104 -104
  90. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/type_errors.txt +47 -22
  91. package/testeranto/reports/allTests/src/lib/BaseThen.test/node/dev.html +21 -0
  92. package/testeranto/reports/allTests/src/lib/BaseThen.test/node/index.html +21 -0
  93. package/testeranto/reports/allTests/src/lib/BaseWhen.test/node/dev.html +21 -0
  94. package/testeranto/reports/allTests/src/lib/BaseWhen.test/node/index.html +21 -0
  95. package/testeranto/reports/allTests/src/lib/abstractBase/index/node/dev.html +21 -0
  96. package/testeranto/reports/allTests/src/lib/abstractBase/index/node/index.html +21 -0
  97. package/testeranto/reports/allTests/src/lib/baseBuilder/baseBuilder.test/node/dev.html +21 -0
  98. package/testeranto/reports/allTests/src/lib/baseBuilder/baseBuilder.test/node/index.html +21 -0
  99. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/console_log.txt +12 -0
  100. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/dev.html +21 -0
  101. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/index.html +21 -0
  102. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/lint_errors.json +966 -0
  103. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/message +1 -0
  104. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/prompt.txt +11 -0
  105. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test/node/type_errors.txt +52 -0
  106. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/console_log.txt +17 -0
  107. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/dev.html +21 -0
  108. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/index.html +21 -0
  109. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.json +771 -0
  110. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/message +1 -0
  111. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +11 -0
  112. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +67 -0
  113. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/console_log.txt +17 -0
  114. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/dev.html +21 -0
  115. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/index.html +21 -0
  116. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.json +416 -0
  117. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/message +1 -0
  118. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/prompt.txt +11 -0
  119. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/type_errors.txt +54 -0
  120. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/console_log.txt +43 -0
  121. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/dev.html +21 -0
  122. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/index.html +21 -0
  123. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.json +319 -0
  124. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/log.txt +0 -0
  125. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/message +1 -0
  126. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/prompt.txt +10 -0
  127. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/type_errors.txt +64 -0
  128. package/testeranto/reports/allTests/src/mothership/test/node/console_log.txt +44 -0
  129. package/testeranto/reports/allTests/src/mothership/test/node/log.txt +0 -0
  130. package/testeranto/reports/allTests/summary.json +76 -6
  131. package/testeranto/reportsnode_build_errors +12 -0
  132. package/testeranto.config.ts +19 -2
@@ -994,3 +994,339 @@
994
994
 
995
995
  # 2025-07-15 08:47:43.658057
996
996
  +testeranto/reports/allTests/src/lib/BaseSuite.test/node/message
997
+
998
+ # 2025-07-15 10:11:14.342950
999
+ +/read index.md
1000
+ +/read docs/index.md
1001
+ +/read src/CoreTypes.ts
1002
+ +
1003
+ +/add src/lib/baseBuilder.ts
1004
+ +
1005
+ +create a testeranto test of baseBuilder. Follow the examples given in the docs. Use the types in CoreTypes rigorously
1006
+
1007
+ # 2025-07-15 10:11:32.770369
1008
+ +/read index.md
1009
+
1010
+ # 2025-07-15 10:11:45.046678
1011
+ +/read README.md
1012
+
1013
+ # 2025-07-15 10:11:50.706133
1014
+ +/read docs/index.md
1015
+ +/read src/CoreTypes.ts
1016
+
1017
+ # 2025-07-15 10:11:56.853874
1018
+ +/read docs/index.md src/CoreTypes.ts
1019
+
1020
+ # 2025-07-15 10:12:03.664197
1021
+ +/add src/lib/baseBuilder.ts
1022
+
1023
+ # 2025-07-15 10:12:10.079841
1024
+ +create a testeranto test of baseBuilder. Follow the examples given in the docs. Use the types in CoreTypes rigorously
1025
+
1026
+ # 2025-07-15 10:13:40.986563
1027
+ +y
1028
+
1029
+ # 2025-07-15 10:13:50.487568
1030
+ +n
1031
+
1032
+ # 2025-07-15 10:25:55.680954
1033
+ +BaseBuilder is an abstract class, which cannot be instantiated. Create an implementation of this class to be used only for testing purpose.
1034
+
1035
+ # 2025-07-15 10:26:24.952051
1036
+ +/read src/lib/baseBuilder.test/
1037
+
1038
+ # 2025-07-15 10:26:29.123376
1039
+ +BaseBuilder is an abstract class, which cannot be instantiated. Create an implementation of this class to be used only for testing purpose.
1040
+
1041
+ # 2025-07-15 10:27:21.295368
1042
+ +y
1043
+
1044
+ # 2025-07-15 10:32:53.941367
1045
+ +/Users/adam/Code/testeranto/src/PM/PM_WithEslintAndTsc.ts:231
1046
+ + this.summary[src].typeErrors = "?";
1047
+ + ^
1048
+ +
1049
+ +
1050
+ +TypeError: Cannot set properties of undefined (setting 'typeErrors')
1051
+ + at PM_Main.typeCheckIsRunning (/Users/adam/Code/testeranto/src/PM/PM_WithEslintAndTsc.ts:231:23)
1052
+ + at PM_Main.tscCheck (/Users/adam/Code/testeranto/src/PM/PM_WithEslintAndTsc.ts:64:10)
1053
+ + at <anonymous> (/Users/adam/Code/testeranto/src/PM/main.ts:463:16)
1054
+
1055
+ # 2025-07-15 10:33:02.534776
1056
+ +"/Users/adam/Code/testeranto/src/PM/PM_WithEslintAndTsc.ts:231
1057
+ + this.summary[src].typeErrors = "?";
1058
+ + ^
1059
+ +
1060
+ +
1061
+ +TypeError: Cannot set properties of undefined (setting 'typeErrors')
1062
+ + at PM_Main.typeCheckIsRunning (/Users/adam/Code/testeranto/src/PM/PM_WithEslintAndTsc.ts:231:23)
1063
+ + at PM_Main.tscCheck (/Users/adam/Code/testeranto/src/PM/PM_WithEslintAndTsc.ts:64:10)
1064
+ + at <anonymous> (/Users/adam/Code/testeranto/src/PM/main.ts:463:16)"
1065
+
1066
+ # 2025-07-15 10:34:43.019926
1067
+ +try again
1068
+
1069
+ # 2025-07-15 10:35:02.940975
1070
+ +try again but don't make changes before i confirm them
1071
+
1072
+ # 2025-07-15 10:37:29.007021
1073
+ +/add src/PM/main.ts dist/module/src/PM/PM_WithEslintAndTsc.js
1074
+
1075
+ # 2025-07-15 10:38:20.281708
1076
+ +/add src/PM/index.ts src/PM/base.ts src/PM/PM_WithEslintAndTsc.ts
1077
+
1078
+ # 2025-07-15 10:38:26.549659
1079
+ +/drop dist
1080
+
1081
+ # 2025-07-15 10:38:52.988067
1082
+ +no change. look at these files and formulate a plan
1083
+
1084
+ # 2025-07-15 10:40:31.666535
1085
+ +yes
1086
+
1087
+ # 2025-07-15 10:43:20.253342
1088
+ +add more comprehensive specifications
1089
+
1090
+ # 2025-07-15 10:55:49.055155
1091
+ +/add docs/index.md
1092
+ +/add README.md
1093
+ +/add src/CoreTypes.ts
1094
+ +
1095
+ +
1096
+
1097
+ # 2025-07-15 10:56:02.736129
1098
+ +/add docs/index.md README.md src/CoreTypes.ts
1099
+ +
1100
+ +
1101
+
1102
+ # 2025-07-15 10:56:14.513648
1103
+ +/add src/lib/
1104
+
1105
+ # 2025-07-15 10:56:26.859359
1106
+ +/drop src/lib/TEST_ADAPTER_RENAME.md
1107
+
1108
+ # 2025-07-15 10:56:53.447310
1109
+ +/drop src/lib/core.ts
1110
+
1111
+ # 2025-07-15 10:57:01.265926
1112
+ +/drop src/lib/pmProxy.ts
1113
+
1114
+ # 2025-07-15 10:57:46.114410
1115
+ +create a testeranto test for `ClassBuilder` . Try to re-use as much code as possible.
1116
+
1117
+ # 2025-07-15 10:59:13.267765
1118
+ +n
1119
+
1120
+ # 2025-07-15 10:59:42.569050
1121
+ +one change: Basebuilder is abstract, you must create a dummy implementation to test against.
1122
+
1123
+ # 2025-07-15 11:00:37.529188
1124
+ +y
1125
+
1126
+ # 2025-07-15 11:01:04.219362
1127
+ +n
1128
+
1129
+ # 2025-07-15 11:02:32.835327
1130
+ +create the rest of the test files
1131
+
1132
+ # 2025-07-15 11:04:13.669194
1133
+ +y
1134
+
1135
+ # 2025-07-15 11:04:22.738122
1136
+ +n
1137
+
1138
+ # 2025-07-15 11:06:05.929640
1139
+ +create classBuilder.test.types and populate it with the types I, O, and M. the other classbuilder test files should use these types
1140
+
1141
+ # 2025-07-15 11:07:17.058023
1142
+ +y
1143
+
1144
+ # 2025-07-15 11:08:27.519231
1145
+ +add some more comprehensive tests
1146
+
1147
+ # 2025-07-15 11:15:20.916901
1148
+ +n
1149
+
1150
+ # 2025-07-15 11:16:01.516683
1151
+ +I have made some alterations to you work. PLease try to understand them and record whatever notes you need to remind you in docs/testing.ai.md
1152
+
1153
+ # 2025-07-15 11:16:09.813924
1154
+ +I have made some alterations to you work. PLease try to understand them and record whatever notes you need to remind you in docs/testing.ai.txt
1155
+
1156
+ # 2025-07-15 11:16:24.287328
1157
+ +/read docs/testing.ai.txt
1158
+
1159
+ # 2025-07-15 11:16:35.805812
1160
+ +I have made some alterations to you work. PLease try to understand them and record whatever notes you need to remind you in docs/testing.ai.txt
1161
+
1162
+ # 2025-07-15 11:17:32.861466
1163
+ +y
1164
+
1165
+ # 2025-07-15 11:42:47.446827
1166
+ +/add src/lib/core.ts
1167
+
1168
+ # 2025-07-15 11:43:55.406815
1169
+ +create a testeranto test of the class in core.ts. Re-use as much code as you can from other tests. You will need to create a concrete implementation to test against, because the test subject is an abstract class.
1170
+
1171
+ # 2025-07-15 11:48:04.809321
1172
+ +y
1173
+
1174
+ # 2025-07-15 11:48:29.144359
1175
+ +n
1176
+
1177
+ # 2025-07-15 11:48:59.730504
1178
+ +this is the shell command to launch tests "yarn run t-build allTests once && yarn run t-run allTests once"
1179
+
1180
+ # 2025-07-15 11:53:44.658545
1181
+ +n
1182
+
1183
+ # 2025-07-15 11:56:26.602409
1184
+ +/add src/lib/pmProxy.ts
1185
+
1186
+ # 2025-07-15 11:56:47.675599
1187
+ +write a testeranto test of the functions in pmProxy
1188
+
1189
+ # 2025-07-15 11:56:53.727422
1190
+ +n
1191
+
1192
+ # 2025-07-15 11:58:56.083859
1193
+ +/read src/lib/pmProxy.ts
1194
+
1195
+ # 2025-07-15 11:59:20.605050
1196
+ +create a testeranto test of the functions in pmProxy
1197
+
1198
+ # 2025-07-15 12:00:48.404968
1199
+ +create a folder called src/lib/pmProxy.test and put all the related files there. then proceed with option 3
1200
+
1201
+ # 2025-07-15 12:02:31.653475
1202
+ +y
1203
+
1204
+ # 2025-07-15 12:02:36.881891
1205
+ +/run mkdir -p src/lib/pmProxy.test
1206
+
1207
+ # 2025-07-15 12:02:36.882097
1208
+ +/run mkdir -p src/lib/pmProxy.test
1209
+
1210
+ # 2025-07-15 12:02:39.685895
1211
+ +y
1212
+
1213
+ # 2025-07-15 12:02:42.632803
1214
+ +n
1215
+
1216
+ # 2025-07-15 12:22:58.866239
1217
+ +/add src/PM/base.ts
1218
+
1219
+ # 2025-07-15 12:23:15.978122
1220
+ +create a mock `implementation` of PM_Base
1221
+
1222
+ # 2025-07-15 12:24:50.288888
1223
+ +y
1224
+
1225
+ # 2025-07-15 12:26:20.288993
1226
+ +/add src/PM/index.ts
1227
+
1228
+ # 2025-07-15 12:26:41.032891
1229
+ +create a mock `implementation` of PM
1230
+
1231
+ # 2025-07-15 12:27:27.124849
1232
+ +don't overwrite the other mock PM. I want implementations of both. Try to re-use code
1233
+
1234
+ # 2025-07-15 12:29:53.541883
1235
+ +y
1236
+
1237
+ # 2025-07-15 13:19:27.107611
1238
+ +stdout > mark2 butThen {
1239
+ + beforeEachProxy: MockPMBase { calls: {}, testResourceConfiguration: {}, configs: {} }
1240
+ +} async (s) => {
1241
+ + tLog(" Then!!!:", this.name);
1242
+ + if (typeof this.thenCB === "function") {
1243
+ + return await this.thenCB(s);
1244
+ + } else {
1245
+ + return this.thenCB;
1246
+ + }
1247
+ + }
1248
+ +mark1
1249
+ +undefined undefined undefined
1250
+ +test failed 3 TypeError: Cannot read properties of undefined (reading 'butThenProxy')
1251
+ + at Then.thenCB (file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:1016:23)
1252
+ + at file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:335:29
1253
+ + at Object.butThen (file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:5153:12)
1254
+ + at Then.butThen (file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:717:42)
1255
+ + at Then.test (file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:330:17)
1256
+ + at Given.give (file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:261:34)
1257
+ + at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
1258
+ + at async TesterantoCore.constructor.run (file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:621:20)
1259
+ + at async file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:410:19
1260
+ + at async Object.receiveTestResourceConfig (file:///Users/adam/Code/testeranto/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs:438:29)
1261
+
1262
+ # 2025-07-15 13:37:19.816910
1263
+ +/add src/Pure.ts
1264
+
1265
+ # 2025-07-15 13:38:02.793642
1266
+ +create a testeranto test of PureTesteranto. Rigorously apply types and reuse of existing test code.
1267
+
1268
+ # 2025-07-15 13:39:11.592975
1269
+ +y
1270
+
1271
+ # 2025-07-15 13:39:13.822048
1272
+ +n
1273
+
1274
+ # 2025-07-15 13:40:56.647291
1275
+ +create some more comprhensive specifications
1276
+
1277
+ # 2025-07-15 13:43:16.850747
1278
+ +n
1279
+
1280
+ # 2025-07-15 13:43:31.230236
1281
+ +create some more comprhensive specifications for PureTesteranto
1282
+
1283
+ # 2025-07-15 13:45:56.322053
1284
+ +n
1285
+
1286
+ # 2025-07-15 13:46:50.056472
1287
+ +/add src/lib
1288
+
1289
+ # 2025-07-15 13:47:07.639884
1290
+ +/drop src/lib/TEST_ADAPTER_RENAME.md
1291
+
1292
+ # 2025-07-15 13:48:50.253398
1293
+ +Since the tests seem to be up and working, I want you to take a second look at all the tests, and how they interact. Make any changes you think are warranted.
1294
+
1295
+ # 2025-07-15 13:49:26.068699
1296
+ +n
1297
+
1298
+ # 2025-07-15 13:49:50.822421
1299
+ +/add src/lib
1300
+
1301
+ # 2025-07-15 13:50:13.415663
1302
+ +/add src/Pure src/Pure.test.ts
1303
+
1304
+ # 2025-07-15 13:50:16.798014
1305
+ +n
1306
+
1307
+ # 2025-07-15 13:50:22.077390
1308
+ +/add src/Pure.ts src/Pure.test.ts
1309
+
1310
+ # 2025-07-15 13:50:57.461486
1311
+ +I want you to take a final look at all the tests at once. Consider how they interact. Add any specifications you think are warranted.
1312
+
1313
+ # 2025-07-15 13:54:19.829020
1314
+ +create testeranto tests for BaseGiven, BaseWhen and BaseThen. You will need to implement concrete mock to test against for all 3. Integrate these new tests with existing tests.
1315
+
1316
+ # 2025-07-15 13:56:03.250448
1317
+ +y
1318
+
1319
+ # 2025-07-15 13:56:13.753585
1320
+ +n
1321
+
1322
+ # 2025-07-15 14:00:13.455117
1323
+ +Testeranto is now nearly entirely self-tested. 1) Take one more look at the tests 2) Give me you opinion of what we should do next 3) Write down any notes in docs/testing.ai.txt that will help you do better next time
1324
+
1325
+ # 2025-07-15 14:00:55.318659
1326
+ +y
1327
+
1328
+ # 2025-07-15 14:06:29.045555
1329
+ +Write me blog post describing our latest work. It should appeal to other programmers, web developers and AI enthusiats. I want you to "hype up" the project- I want other to be excited to try testeranto for themselves. Make sure to leave kudos to the maker of Aider, without which this would not have been possible. Emphasize that 1) testeranto is now self-testing 2) The benfits of testeranto's BDD interface 3) the benifits of testerantos bundling process- esbuild produces a bundle and ametafile, which contains a list of the files which were included in the bundling, which means that you can fit all the relevant files, and only the relevant files, into an LLMs context. Emphasis the value proposition of testeranto- tests that write themselves and which fit into an LLMs context. The latest version of testeranto is 0.143.0
1330
+
1331
+ # 2025-07-15 14:07:23.788565
1332
+ +n
Binary file
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  #### 🚧 WARNING: Testeranto is still under development and is not ready for production yet. 🚧
6
6
 
7
- - README: [index.html]: [](https://adamwong246.github.io/testeranto/)
7
+ - README: [index.html](https://adamwong246.github.io/testeranto/)
8
8
  - demo: [youtube](https://www.youtube.com/embed/WvU5xMqGi6Q)
9
9
  - source: [github.com/adamwong246/testeranto](https://github.com/adamwong246/testeranto)
10
10
  - npm: [npmjs.com/package/testeranto](https://www.npmjs.com/package/testeranto)
@@ -0,0 +1 @@
1
+ aider --load docs/testing.prompt.txt --message-file docs/testing.message.txt
@@ -0,0 +1,98 @@
1
+ # Testeranto Testing Patterns
2
+
3
+ ## Key Learnings From Self-Testing
4
+
5
+ 1. Test Organization Insights:
6
+ - Mock implementations proved essential for testing abstract base classes
7
+ - Type parameters (I/O/M) need careful documentation for test writers
8
+ - Integration tests revealed subtle proxy chain issues
9
+
10
+ 2. Effective Patterns:
11
+ - Builder tests validate both construction and runtime behavior
12
+ - Proxy tests verify path rewriting and content preservation
13
+ - Error tests check both expected and unexpected cases
14
+ - Lifecycle tests cover full BDD sequence
15
+
16
+ 3. Improvement Opportunities:
17
+ - Need more test utilities for common scenarios
18
+ - Could add test generation from type definitions
19
+ - Should document common test pitfalls
20
+ - Would benefit from more example test suites
21
+
22
+ ## Core Testing Principles
23
+
24
+ 1. Tests follow BDD structure with Given/When/Then
25
+ 2. All tests are strongly typed using I/O/M types
26
+ 3. Test files are organized in a consistent structure:
27
+ /src
28
+ TEST_SUBJECT.ts
29
+ TEST_SUBJECT.test/
30
+ implementation.ts - Concrete test operations
31
+ specification.ts - Test scenarios and assertions
32
+ interface.ts - Test lifecycle hooks
33
+ types.ts - Type definitions
34
+ index.ts - Main test export
35
+
36
+ ## Key Testing Patterns Observed
37
+
38
+ 1. Builder Testing:
39
+ - TestBaseBuilder provides core test infrastructure
40
+ - TestClassBuilder extends it for class-based testing
41
+ - Both use similar test patterns:
42
+ * Initialization validation
43
+ * Spec generation checks
44
+ * Job creation verification
45
+ * Artifact tracking
46
+ * Resource requirement validation
47
+
48
+ 2. Comprehensive Test Cases:
49
+ - Basic functionality tests
50
+ - Custom input scenarios
51
+ - Resource configuration
52
+ - Dynamic modification
53
+ - Error handling
54
+ - Full test run verification
55
+
56
+ 3. Type Safety:
57
+ - Ibdd_in defines internal test flow
58
+ - Ibdd_out defines external interface
59
+ - M type for specification modifications
60
+
61
+ ## Implementation Notes
62
+
63
+ 1. Test builders follow this pattern:
64
+ - Create concrete test implementation
65
+ - Define test specification with scenarios
66
+ - Implement test interface hooks
67
+ - Export via Testeranto runner
68
+
69
+ 2. Key test assertions:
70
+ - Verify proper initialization
71
+ - Check spec generation
72
+ - Validate job creation
73
+ - Track artifacts
74
+ - Confirm resource setup
75
+
76
+ 3. Error handling:
77
+ - Explicit error type checks
78
+ - Expected error messages
79
+ - Async error propagation
80
+
81
+ ## Best Practices
82
+
83
+ 1. For each test:
84
+ - Document test purpose in specification
85
+ - Keep implementations focused
86
+ - Use descriptive type names
87
+ - Include positive and negative cases
88
+
89
+ 2. Test organization:
90
+ - Group related tests in suites
91
+ - Separate concerns in different files
92
+ - Reuse common test patterns
93
+ - Keep test files small and focused
94
+
95
+ 3. Maintenance:
96
+ - Update docs when patterns change
97
+ - Review test types when interfaces change
98
+ - Verify all test cases after refactors
@@ -0,0 +1,8 @@
1
+ /read README.md
2
+
3
+ /read docs/index.md
4
+ /read docs/testing.ai.txt
5
+
6
+ /add src/CoreTypes.ts
7
+ /add src//lib/types.ts
8
+
package/index.html CHANGED
@@ -22,7 +22,7 @@
22
22
  <h2>The AI-powered BDD test framework for TypeScript projects</h2>
23
23
  <h4>🚧 WARNING: Testeranto is still under development and is not ready for production yet. 🚧</h4>
24
24
  <ul>
25
- <li>README: [index.html]: <a href="https://adamwong246.github.io/testeranto/"></a></li>
25
+ <li>README: <a href="https://adamwong246.github.io/testeranto/">index.html</a></li>
26
26
  <li>demo: <a href="https://www.youtube.com/embed/WvU5xMqGi6Q">youtube</a></li>
27
27
  <li>source: <a href="https://github.com/adamwong246/testeranto">github.com/adamwong246/testeranto</a></li>
28
28
  <li>npm: <a href="https://www.npmjs.com/package/testeranto">npmjs.com/package/testeranto</a></li>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "testeranto",
3
3
  "description": "the AI powered BDD test framework for typescript projects",
4
- "version": "0.140.1",
4
+ "version": "0.143.0",
5
5
  "engines": {
6
6
  "node": "18.18.0"
7
7
  },
@@ -128,8 +128,8 @@
128
128
  "build-types": "tsc -p tsconfig.types.json",
129
129
  "type-check": "yarn tsc --noEmit > tsc.log",
130
130
  "type-fix": "aider --model deepseek/deepseek-chat --load type-fix.txt",
131
- "t-build": "tsx dist/prebuild/build.mjs",
132
- "t-run": "tsx dist/prebuild/run.mjs",
131
+ "t-build": "tsx src/build.ts",
132
+ "t-run": "tsx src/run.ts",
133
133
  "t-init": "tsx dist/prebuild/init-docs.mjs",
134
134
  "t-report": "tsx dist/prebuild/ReportServer.mjs",
135
135
  "build-docs": "node scripts/compile-docs.js"
@@ -30,23 +30,13 @@ export abstract class PM_WithEslintAndTsc extends PM_Base {
30
30
 
31
31
  this.name = name;
32
32
  this.mode = mode;
33
+ this.summary = {};
33
34
 
35
+ // Initialize all test entries first
34
36
  this.configs.tests.forEach(([t, rt, tr, sidecars]) => {
35
- this.summary[t] = {
36
- runTimeError: "?",
37
- typeErrors: "?",
38
- staticErrors: "?",
39
- prompt: "?",
40
- failingFeatures: {},
41
- };
42
- sidecars.forEach(([t]) => {
43
- this.summary[t] = {
44
- // runTimeError: "?",
45
- typeErrors: "?",
46
- staticErrors: "?",
47
- // prompt: "?",
48
- // failingFeatures: {},
49
- };
37
+ this.ensureSummaryEntry(t);
38
+ sidecars.forEach(([sidecarName]) => {
39
+ this.ensureSummaryEntry(sidecarName, true);
50
40
  });
51
41
  });
52
42
  }
@@ -227,34 +217,58 @@ ${addableFiles
227
217
  this.checkForShutdown();
228
218
  };
229
219
 
220
+ private ensureSummaryEntry(src: string, isSidecar = false) {
221
+ if (!this.summary[src]) {
222
+ this.summary[src] = {
223
+ typeErrors: "?",
224
+ staticErrors: "?",
225
+ runTimeError: "?",
226
+ prompt: "?",
227
+ failingFeatures: {}
228
+ };
229
+ if (isSidecar) {
230
+ // Sidecars don't need all fields
231
+ delete this.summary[src].runTimeError;
232
+ delete this.summary[src].prompt;
233
+ }
234
+ }
235
+ return this.summary[src];
236
+ }
237
+
230
238
  typeCheckIsRunning = (src: string) => {
231
- this.summary[src].typeErrors = "?";
239
+ const entry = this.ensureSummaryEntry(src);
240
+ entry.typeErrors = "?";
232
241
  };
233
242
 
234
243
  typeCheckIsNowDone = (src: string, failures: number) => {
235
- this.summary[src].typeErrors = failures;
244
+ const entry = this.ensureSummaryEntry(src);
245
+ entry.typeErrors = failures;
236
246
  this.writeBigBoard();
237
247
  this.checkForShutdown();
238
248
  };
239
249
 
240
250
  lintIsRunning = (src: string) => {
241
- this.summary[src].staticErrors = "?";
251
+ const entry = this.ensureSummaryEntry(src);
252
+ entry.staticErrors = "?";
242
253
  this.writeBigBoard();
243
254
  };
244
255
 
245
256
  lintIsNowDone = (src: string, failures: number) => {
246
- this.summary[src].staticErrors = failures;
257
+ const entry = this.ensureSummaryEntry(src);
258
+ entry.staticErrors = failures;
247
259
  this.writeBigBoard();
248
260
  this.checkForShutdown();
249
261
  };
250
262
 
251
263
  bddTestIsRunning = (src: string) => {
252
- this.summary[src].runTimeError = "?";
264
+ const entry = this.ensureSummaryEntry(src);
265
+ entry.runTimeError = "?";
253
266
  this.writeBigBoard();
254
267
  };
255
268
 
256
269
  bddTestIsNowDone = (src: string, failures: number) => {
257
- this.summary[src].runTimeError = failures;
270
+ const entry = this.ensureSummaryEntry(src);
271
+ entry.runTimeError = failures;
258
272
  this.writeBigBoard();
259
273
  this.checkForShutdown();
260
274
  };