@creative-introvert/tons-of-tests 1.2.0 → 2.1.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 (202) hide show
  1. package/README.md +200 -134
  2. package/dist/cjs/Classify.js +18 -31
  3. package/dist/cjs/Classify.js.map +1 -1
  4. package/dist/cjs/DisplayConfig.js +2 -20
  5. package/dist/cjs/DisplayConfig.js.map +1 -1
  6. package/dist/cjs/RepositoryError.js +4 -5
  7. package/dist/cjs/RepositoryError.js.map +1 -1
  8. package/dist/cjs/Test.js +7 -21
  9. package/dist/cjs/Test.js.map +1 -1
  10. package/dist/cjs/Test.repository.js +3 -21
  11. package/dist/cjs/Test.repository.js.map +1 -1
  12. package/dist/cjs/Test.repository.types.js.map +1 -1
  13. package/dist/cjs/index.js +2 -20
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/internal/Classify.js +2 -2
  16. package/dist/cjs/internal/Classify.js.map +1 -1
  17. package/dist/cjs/internal/Test.js +123 -80
  18. package/dist/cjs/internal/Test.js.map +1 -1
  19. package/dist/cjs/internal/Test.repository.sqlite.js +118 -79
  20. package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
  21. package/dist/cjs/internal/common.js +1 -5
  22. package/dist/cjs/internal/common.js.map +1 -1
  23. package/dist/cjs/internal/diff.js +1 -5
  24. package/dist/cjs/internal/diff.js.map +1 -1
  25. package/dist/cjs/internal/format-diff.js +2 -6
  26. package/dist/cjs/internal/format-diff.js.map +1 -1
  27. package/dist/cjs/internal/lib/Schema.js +3 -3
  28. package/dist/cjs/internal/lib/Schema.js.map +1 -1
  29. package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js +1 -5
  30. package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
  31. package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js +1 -5
  32. package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
  33. package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js +1 -5
  34. package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
  35. package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js +3 -25
  36. package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
  37. package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js +1 -5
  38. package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
  39. package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js +1 -5
  40. package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
  41. package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js +1 -5
  42. package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
  43. package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js +1 -5
  44. package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
  45. package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js +1 -5
  46. package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
  47. package/dist/cjs/internal/lib/jsondiffpatch/index.js +1 -5
  48. package/dist/cjs/internal/lib/jsondiffpatch/index.js.map +1 -1
  49. package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js +1 -5
  50. package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
  51. package/dist/cjs/internal/pack.js +28 -50
  52. package/dist/cjs/internal/pack.js.map +1 -1
  53. package/dist/cjs/internal/stats.js +9 -7
  54. package/dist/cjs/internal/stats.js.map +1 -1
  55. package/dist/cjs/internal/summarize.js +19 -18
  56. package/dist/cjs/internal/summarize.js.map +1 -1
  57. package/dist/cjs/package.json +1 -0
  58. package/dist/dts/Classify.d.ts +24 -57
  59. package/dist/dts/Classify.d.ts.map +1 -1
  60. package/dist/dts/DisplayConfig.d.ts +2 -1
  61. package/dist/dts/DisplayConfig.d.ts.map +1 -1
  62. package/dist/dts/RepositoryError.d.ts +21 -22
  63. package/dist/dts/RepositoryError.d.ts.map +1 -1
  64. package/dist/dts/Show.d.ts +3 -3
  65. package/dist/dts/Show.d.ts.map +1 -1
  66. package/dist/dts/Test.d.ts +53 -23
  67. package/dist/dts/Test.d.ts.map +1 -1
  68. package/dist/dts/Test.repository.d.ts +4 -4
  69. package/dist/dts/Test.repository.d.ts.map +1 -1
  70. package/dist/dts/Test.repository.types.d.ts +16 -20
  71. package/dist/dts/Test.repository.types.d.ts.map +1 -1
  72. package/dist/dts/internal/Classify.d.ts +1 -1
  73. package/dist/dts/internal/Classify.d.ts.map +1 -1
  74. package/dist/dts/internal/Test.d.ts +24 -12
  75. package/dist/dts/internal/Test.d.ts.map +1 -1
  76. package/dist/dts/internal/Test.repository.sqlite.d.ts +3 -2
  77. package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
  78. package/dist/dts/internal/lib/Schema.d.ts +2 -2
  79. package/dist/dts/internal/lib/Schema.d.ts.map +1 -1
  80. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts +2 -1
  81. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -1
  82. package/dist/dts/internal/pack.d.ts.map +1 -1
  83. package/dist/dts/internal/stats.d.ts.map +1 -1
  84. package/dist/dts/internal/summarize.d.ts.map +1 -1
  85. package/dist/esm/Classify.js +28 -50
  86. package/dist/esm/Classify.js.map +1 -1
  87. package/dist/esm/DisplayConfig.js +2 -28
  88. package/dist/esm/DisplayConfig.js.map +1 -1
  89. package/dist/esm/RepositoryError.js +13 -24
  90. package/dist/esm/RepositoryError.js.map +1 -1
  91. package/dist/esm/Show.js +3 -26
  92. package/dist/esm/Show.js.map +1 -1
  93. package/dist/esm/Test.js +9 -12
  94. package/dist/esm/Test.js.map +1 -1
  95. package/dist/esm/Test.repository.js +8 -41
  96. package/dist/esm/Test.repository.js.map +1 -1
  97. package/dist/esm/Test.repository.types.js +5 -12
  98. package/dist/esm/Test.repository.types.js.map +1 -1
  99. package/dist/esm/index.js +7 -45
  100. package/dist/esm/index.js.map +1 -1
  101. package/dist/esm/internal/Classify.js +16 -31
  102. package/dist/esm/internal/Classify.js.map +1 -1
  103. package/dist/esm/internal/DisplayConfig.js +1 -8
  104. package/dist/esm/internal/DisplayConfig.js.map +1 -1
  105. package/dist/esm/internal/Test.js +144 -113
  106. package/dist/esm/internal/Test.js.map +1 -1
  107. package/dist/esm/internal/Test.repository.sqlite.js +186 -160
  108. package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
  109. package/dist/esm/internal/common.js +15 -32
  110. package/dist/esm/internal/common.js.map +1 -1
  111. package/dist/esm/internal/diff.js +18 -30
  112. package/dist/esm/internal/diff.js.map +1 -1
  113. package/dist/esm/internal/format-diff.js +9 -22
  114. package/dist/esm/internal/format-diff.js.map +1 -1
  115. package/dist/esm/internal/lib/Schema.js +4 -11
  116. package/dist/esm/internal/lib/Schema.js.map +1 -1
  117. package/dist/esm/internal/lib/jsondiffpatch/clone.js +1 -7
  118. package/dist/esm/internal/lib/jsondiffpatch/clone.js.map +1 -1
  119. package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js +1 -8
  120. package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js.map +1 -1
  121. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js +5 -16
  122. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
  123. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js +3 -14
  124. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
  125. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js +3 -14
  126. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
  127. package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js +1 -7
  128. package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js.map +1 -1
  129. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js +20 -51
  130. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
  131. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js +16 -28
  132. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
  133. package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js +1 -7
  134. package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js.map +1 -1
  135. package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js +1 -7
  136. package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js.map +1 -1
  137. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js +13 -27
  138. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
  139. package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js +3 -9
  140. package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js.map +1 -1
  141. package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js +3 -9
  142. package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js.map +1 -1
  143. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js +4 -16
  144. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
  145. package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js +1 -7
  146. package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js.map +1 -1
  147. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js +6 -21
  148. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
  149. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js +6 -20
  150. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
  151. package/dist/esm/internal/lib/jsondiffpatch/index.js +15 -42
  152. package/dist/esm/internal/lib/jsondiffpatch/index.js.map +1 -1
  153. package/dist/esm/internal/lib/jsondiffpatch/pipe.js +1 -7
  154. package/dist/esm/internal/lib/jsondiffpatch/pipe.js.map +1 -1
  155. package/dist/esm/internal/lib/jsondiffpatch/processor.js +1 -7
  156. package/dist/esm/internal/lib/jsondiffpatch/processor.js.map +1 -1
  157. package/dist/esm/internal/lib/jsondiffpatch/types.js +1 -6
  158. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js +22 -49
  159. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
  160. package/dist/esm/internal/pack.js +26 -55
  161. package/dist/esm/internal/pack.js.map +1 -1
  162. package/dist/esm/internal/stats.js +29 -35
  163. package/dist/esm/internal/stats.js.map +1 -1
  164. package/dist/esm/internal/summarize.js +45 -52
  165. package/dist/esm/internal/summarize.js.map +1 -1
  166. package/package.json +11 -9
  167. package/dist/cjs/Error.js +0 -10
  168. package/dist/cjs/Error.js.map +0 -1
  169. package/dist/cjs/internal/Classify.spec.js +0 -223
  170. package/dist/cjs/internal/Classify.spec.js.map +0 -1
  171. package/dist/cjs/internal/Test.repository.sqlite.spec.js +0 -294
  172. package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +0 -1
  173. package/dist/cjs/internal/Test.spec.js +0 -260
  174. package/dist/cjs/internal/Test.spec.js.map +0 -1
  175. package/dist/cjs/internal/format-diff.spec.js +0 -103
  176. package/dist/cjs/internal/format-diff.spec.js.map +0 -1
  177. package/dist/cjs/pack.js +0 -28
  178. package/dist/cjs/pack.js.map +0 -1
  179. package/dist/dts/Error.d.ts +0 -10
  180. package/dist/dts/Error.d.ts.map +0 -1
  181. package/dist/dts/internal/Classify.spec.d.ts +0 -2
  182. package/dist/dts/internal/Classify.spec.d.ts.map +0 -1
  183. package/dist/dts/internal/Test.repository.sqlite.spec.d.ts +0 -2
  184. package/dist/dts/internal/Test.repository.sqlite.spec.d.ts.map +0 -1
  185. package/dist/dts/internal/Test.spec.d.ts +0 -2
  186. package/dist/dts/internal/Test.spec.d.ts.map +0 -1
  187. package/dist/dts/internal/format-diff.spec.d.ts +0 -2
  188. package/dist/dts/internal/format-diff.spec.d.ts.map +0 -1
  189. package/dist/dts/pack.d.ts +0 -2
  190. package/dist/dts/pack.d.ts.map +0 -1
  191. package/dist/esm/Error.js +0 -10
  192. package/dist/esm/Error.js.map +0 -1
  193. package/dist/esm/internal/Classify.spec.js +0 -223
  194. package/dist/esm/internal/Classify.spec.js.map +0 -1
  195. package/dist/esm/internal/Test.repository.sqlite.spec.js +0 -294
  196. package/dist/esm/internal/Test.repository.sqlite.spec.js.map +0 -1
  197. package/dist/esm/internal/Test.spec.js +0 -241
  198. package/dist/esm/internal/Test.spec.js.map +0 -1
  199. package/dist/esm/internal/format-diff.spec.js +0 -103
  200. package/dist/esm/internal/format-diff.spec.js.map +0 -1
  201. package/dist/esm/pack.js +0 -28
  202. package/dist/esm/pack.js.map +0 -1
@@ -1,97 +1,77 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "TestRepository", {
7
- enumerable: true,
8
- get: function () {
9
- return _TestRepository.TestRepository;
10
- }
11
- });
12
- exports.tables = exports.makeTestRepository = void 0;
13
- var SqlClient = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect/sql/SqlClient"));
14
- var _effect = /*#__PURE__*/require("effect");
15
- var _TestRepository = /*#__PURE__*/require("../Test.repository.js");
16
- var _TestRepositoryTypes = /*#__PURE__*/require("../Test.repository.types.js");
17
- var _RepositoryError = /*#__PURE__*/require("../RepositoryError.js");
18
- var _Classify = /*#__PURE__*/require("./Classify.js");
19
- var _Schema = /*#__PURE__*/require("./lib/Schema.js");
20
- function _interopRequireWildcard(e, t) {
21
- if ("function" == typeof WeakMap) var r = new WeakMap(),
22
- n = new WeakMap();
23
- return (_interopRequireWildcard = function (e, t) {
24
- if (!t && e && e.__esModule) return e;
25
- var o,
26
- i,
27
- f = {
28
- __proto__: null,
29
- default: e
30
- };
31
- if (null === e || "object" != typeof e && "function" != typeof e) return f;
32
- if (o = t ? n : r) {
33
- if (o.has(e)) return o.get(e);
34
- o.set(e, f);
35
- }
36
- for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
37
- return f;
38
- })(e, t);
39
- }
40
- const tables = exports.tables = {
1
+ import * as SqlClient from 'effect/sql/SqlClient';
2
+ import { Array as A, Console, Effect, Option, Schema, SchemaTransformation, Stream } from 'effect';
3
+ import { TestRepository } from '../Test.repository.js';
4
+ import { TestRun } from '../Test.repository.types.js';
5
+ export { TestRepository };
6
+ import { RepositoryDecodeError, RepositoryQueryError, RepositoryWriteError, TestRunNotCreated } from '../RepositoryError.js';
7
+ import { LabelSchema } from './Classify.js';
8
+ import { split } from './lib/Schema.js';
9
+ export const tables = {
41
10
  testResults: 'test-results',
42
11
  testRuns: 'test-runs',
43
12
  testRunResults: 'test-run-results'
44
13
  };
45
- const TestResultWriteSchema = /*#__PURE__*/_effect.Schema.Struct({
46
- id: _effect.Schema.String,
47
- hashTestCase: _effect.Schema.String,
48
- ordering: _effect.Schema.Int,
49
- input: /*#__PURE__*/_effect.Schema.parseJson(_effect.Schema.Unknown),
50
- result: /*#__PURE__*/_effect.Schema.parseJson(_effect.Schema.Unknown),
51
- expected: /*#__PURE__*/_effect.Schema.parseJson(_effect.Schema.Unknown),
52
- label: _Classify.LabelSchema,
53
- tags: /*#__PURE__*/(0, _Schema.split)(','),
54
- timeMillis: _effect.Schema.Number
14
+ const TestResultWriteSchema = /*#__PURE__*/Schema.Struct({
15
+ id: Schema.String,
16
+ hashTestCase: Schema.String,
17
+ key: Schema.String,
18
+ ordering: Schema.Int,
19
+ resultOrdering: Schema.Int,
20
+ input: /*#__PURE__*/Schema.fromJsonString(Schema.Unknown),
21
+ result: /*#__PURE__*/Schema.fromJsonString(Schema.Unknown),
22
+ expected: /*#__PURE__*/Schema.fromJsonString(Schema.Unknown),
23
+ label: LabelSchema,
24
+ tags: /*#__PURE__*/split(','),
25
+ timeMillis: Schema.Finite
55
26
  });
56
- const TestResultsSchema = /*#__PURE__*/_effect.Schema.Array(TestResultWriteSchema);
57
- const CountSchema = /*#__PURE__*/_effect.Schema.Tuple(_effect.Schema.Struct({
58
- count: _effect.Schema.Int
59
- })).pipe(/*#__PURE__*/_effect.Schema.transform(_effect.Schema.Int, {
27
+ const TestResultsSchema = /*#__PURE__*/Schema.Array(TestResultWriteSchema);
28
+ const CountSchema = /*#__PURE__*/Schema.Tuple([Schema.Struct({
29
+ count: Schema.Int
30
+ })]).pipe(/*#__PURE__*/Schema.decodeTo(Schema.Int, /*#__PURE__*/SchemaTransformation.transform({
60
31
  decode: ([{
61
32
  count
62
33
  }]) => count,
63
34
  encode: count => [{
64
35
  count
65
36
  }]
37
+ })));
38
+ const TestRunsReadSchema = /*#__PURE__*/Schema.Array(TestRun);
39
+ const TestRunResultsSchema = /*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Struct({
40
+ testRun: Schema.Int,
41
+ testResult: Schema.String,
42
+ ordering: Schema.Int,
43
+ resultOrdering: Schema.Int,
44
+ timeMillis: Schema.Finite
66
45
  }));
67
- const TestRunsReadSchema = /*#__PURE__*/_effect.Schema.Array(_TestRepositoryTypes.TestRun);
68
- const TestRunResultsSchema = /*#__PURE__*/_effect.Schema.Array(/*#__PURE__*/_effect.Schema.Struct({
69
- testRun: _effect.Schema.Int,
70
- testResult: _effect.Schema.String
46
+ const TableColumnsSchema = /*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Struct({
47
+ name: Schema.String
71
48
  }));
72
- const makeTestRepository = exports.makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
49
+ export const makeTestRepository = /*#__PURE__*/Effect.gen(function* () {
73
50
  const sql = yield* SqlClient.SqlClient;
74
51
  yield* sql`PRAGMA auto_vacuum = FULL;`;
75
- yield* sql`
52
+ yield* sql.withTransaction(Effect.gen(function* () {
53
+ yield* sql`
76
54
  CREATE TABLE IF NOT EXISTS ${sql(tables.testRuns)}(
77
55
  id INTEGER PRIMARY KEY AUTOINCREMENT,
78
56
  name TEXT NOT NULL,
79
57
  hash TEXT
80
58
  );
81
59
  `;
82
- yield* sql`CREATE INDEX IF NOT EXISTS idx_name_hash ON ${sql(tables.testRuns)}(name, hash)`;
83
- // At most one "current" (hash IS NULL) row per suite name. Partial index
84
- // so committed rows are unaffected.
85
- yield* sql`
60
+ yield* sql`CREATE INDEX IF NOT EXISTS idx_name_hash ON ${sql(tables.testRuns)}(name, hash)`;
61
+ // At most one "current" (hash IS NULL) row per suite name. Partial index
62
+ // so committed rows are unaffected.
63
+ yield* sql`
86
64
  CREATE UNIQUE INDEX IF NOT EXISTS idx_current_per_name
87
65
  ON ${sql(tables.testRuns)}(name)
88
66
  WHERE hash IS NULL;
89
67
  `;
90
- yield* sql`
68
+ yield* sql`
91
69
  CREATE TABLE IF NOT EXISTS ${sql(tables.testResults)}(
92
70
  id TEXT PRIMARY KEY,
93
71
  hashTestCase TEXT NOT NULL,
72
+ key TEXT NOT NULL DEFAULT 'result',
94
73
  ordering INTEGER NOT NULL,
74
+ resultOrdering INTEGER NOT NULL DEFAULT 0,
95
75
  input TEXT,
96
76
  result TEXT,
97
77
  expected TEXT,
@@ -100,139 +80,188 @@ const makeTestRepository = exports.makeTestRepository = /*#__PURE__*/_effect.Eff
100
80
  timeMillis INTEGER NOT NULL
101
81
  );
102
82
  `;
103
- yield* sql`
83
+ yield* sql`
104
84
  CREATE TABLE IF NOT EXISTS ${sql(tables.testRunResults)}(
105
85
  testRun INTEGER NOT NULL,
106
86
  testResult TEXT NOT NULL,
87
+ ordering INTEGER NOT NULL,
88
+ resultOrdering INTEGER NOT NULL,
89
+ timeMillis INTEGER NOT NULL,
107
90
  FOREIGN KEY (testRun) REFERENCES ${sql(tables.testRuns)}(id),
108
91
  FOREIGN KEY (testResult) REFERENCES ${sql(tables.testResults)}(id),
109
92
  UNIQUE (testRun, testResult)
110
93
  );
111
94
  `;
112
- // Lookup by the junction's `testResult` column: the existing
113
- // UNIQUE(testRun, testResult) index is keyed on testRun first, so orphan
114
- // cleanup (`... NOT IN (SELECT testResult ...)`) and stream joins
115
- // (`res.id = runres.testResult`) would otherwise full-scan the junction.
116
- yield* sql`CREATE INDEX IF NOT EXISTS idx_trr_testresult ON ${sql(tables.testRunResults)}(testResult)`;
117
- yield* sql`CREATE INDEX IF NOT EXISTS idx_tr_hashtestcase ON ${sql(tables.testResults)}(hashTestCase)`;
118
- // SQLite's default SQLITE_MAX_VARIABLE_NUMBER is 999; testResults has 9
119
- // columns and junction rows 2, so 50 rows stays well under the limit.
95
+ const resultColumns = yield* Schema.decodeUnknownEffect(TableColumnsSchema)(yield* sql`PRAGMA table_info(${sql(tables.testResults)});`).pipe(Effect.mapError(RepositoryDecodeError.from('migrateTestResults')));
96
+ if (!resultColumns.some(column => column.name === 'key')) {
97
+ yield* sql`
98
+ ALTER TABLE ${sql(tables.testResults)}
99
+ ADD COLUMN key TEXT NOT NULL DEFAULT 'result';
100
+ `;
101
+ }
102
+ if (!resultColumns.some(column => column.name === 'resultOrdering')) {
103
+ yield* sql`
104
+ ALTER TABLE ${sql(tables.testResults)}
105
+ ADD COLUMN resultOrdering INTEGER NOT NULL DEFAULT 0;
106
+ `;
107
+ }
108
+ const runResultColumns = yield* Schema.decodeUnknownEffect(TableColumnsSchema)(yield* sql`PRAGMA table_info(${sql(tables.testRunResults)});`).pipe(Effect.mapError(RepositoryDecodeError.from('migrateTestRunResults')));
109
+ for (const column of ['ordering', 'resultOrdering', 'timeMillis']) {
110
+ if (runResultColumns.some(existing => existing.name === column)) {
111
+ continue;
112
+ }
113
+ yield* sql`
114
+ ALTER TABLE ${sql(tables.testRunResults)}
115
+ ADD COLUMN ${sql(column)} INTEGER NOT NULL DEFAULT 0;
116
+ `;
117
+ yield* sql`
118
+ UPDATE ${sql(tables.testRunResults)} AS runres
119
+ SET ${sql(column)} = (
120
+ SELECT ${sql(column)} FROM ${sql(tables.testResults)} res
121
+ WHERE res.id = runres.testResult
122
+ );
123
+ `;
124
+ }
125
+ // Lookup by the junction's `testResult` column: the existing
126
+ // UNIQUE(testRun, testResult) index is keyed on testRun first, so orphan
127
+ // cleanup (`... NOT IN (SELECT testResult ...)`) and stream joins
128
+ // (`res.id = runres.testResult`) would otherwise full-scan the junction.
129
+ yield* sql`CREATE INDEX IF NOT EXISTS idx_trr_testresult ON ${sql(tables.testRunResults)}(testResult)`;
130
+ yield* sql`CREATE INDEX IF NOT EXISTS idx_tr_hashtestcase ON ${sql(tables.testResults)}(hashTestCase)`;
131
+ }));
132
+ // With 11 result columns and 5 junction columns, batches of 50 rows stay below
133
+ // SQLite's lowest default limit of 999 bound values per statement.
120
134
  const INSERT_BATCH_SIZE = 50;
121
- const insertTestResults = (testResults, testRun) => sql.withTransaction(_effect.Effect.gen(function* () {
135
+ const insertTestResults = (testResults, testRun) => sql.withTransaction(Effect.gen(function* () {
122
136
  if (testResults.length === 0) return;
123
- const encoded = yield* _effect.Effect.forEach(testResults, _ => _effect.Schema.encode(TestResultWriteSchema)(_).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('insertTestResults'))));
137
+ const encoded = yield* Effect.forEach(testResults, _ => Schema.encodeEffect(TestResultWriteSchema)(_).pipe(Effect.mapError(RepositoryDecodeError.from('insertTestResults'))));
124
138
  for (let i = 0; i < encoded.length; i += INSERT_BATCH_SIZE) {
125
139
  const chunk = encoded.slice(i, i + INSERT_BATCH_SIZE);
126
140
  yield* sql`
127
141
  INSERT INTO ${sql(tables.testResults)}
128
142
  ${sql.insert(chunk)}
129
143
  ON CONFLICT(id) DO NOTHING;
130
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('insertTestResults')));
144
+ `.pipe(Effect.mapError(RepositoryWriteError.from('insertTestResults')));
131
145
  }
132
146
  // Junction rows reference the resolved testRun.id directly,
133
147
  // so no correlated subquery.
134
148
  const junction = encoded.map(_ => ({
135
149
  testRun: testRun.id,
136
- testResult: _.id
150
+ testResult: _.id,
151
+ ordering: _.ordering,
152
+ resultOrdering: _.resultOrdering,
153
+ timeMillis: _.timeMillis
137
154
  }));
138
155
  for (let i = 0; i < junction.length; i += INSERT_BATCH_SIZE) {
139
156
  const chunk = junction.slice(i, i + INSERT_BATCH_SIZE);
140
157
  yield* sql`
141
158
  INSERT INTO ${sql(tables.testRunResults)}
142
159
  ${sql.insert(chunk)}
143
- ON CONFLICT(testRun, testResult) DO NOTHING;
144
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('insertTestResults')));
160
+ ON CONFLICT(testRun, testResult) DO UPDATE SET
161
+ ordering = excluded.ordering,
162
+ resultOrdering = excluded.resultOrdering,
163
+ timeMillis = excluded.timeMillis;
164
+ `.pipe(Effect.mapError(RepositoryWriteError.from('insertTestResults')));
145
165
  }
146
- })).pipe(_effect.Effect.catchTag('SqlError', e => _effect.Effect.fail(_RepositoryError.RepositoryWriteError.from('insertTestResults')(e))));
166
+ })).pipe(Effect.catchTag('SqlError', e => Effect.fail(RepositoryWriteError.from('insertTestResults')(e))));
147
167
  const insertTestResult = (testResult, testRun) => insertTestResults([testResult], testRun);
148
168
  const makeTestResultSchema = schemas => {
149
- const input = schemas?.input ?? _effect.Schema.Unknown;
150
- const result = schemas?.result ?? _effect.Schema.Unknown;
151
- const expected = schemas?.expected ?? _effect.Schema.Unknown;
152
- return _effect.Schema.Struct({
153
- id: _effect.Schema.String,
154
- hashTestCase: _effect.Schema.String,
155
- ordering: _effect.Schema.Int,
156
- input: _effect.Schema.parseJson(input),
157
- result: _effect.Schema.parseJson(result),
158
- expected: _effect.Schema.parseJson(expected),
159
- label: _Classify.LabelSchema,
160
- tags: (0, _Schema.split)(','),
161
- timeMillis: _effect.Schema.Number
169
+ const input = schemas?.input ?? Schema.Unknown;
170
+ const result = schemas?.result ?? Schema.Unknown;
171
+ const expected = schemas?.expected ?? Schema.Unknown;
172
+ return Schema.Struct({
173
+ id: Schema.String,
174
+ hashTestCase: Schema.String,
175
+ key: Schema.String,
176
+ ordering: Schema.Int,
177
+ resultOrdering: Schema.Int,
178
+ input: Schema.fromJsonString(input),
179
+ result: Schema.fromJsonString(result),
180
+ expected: Schema.fromJsonString(expected),
181
+ label: LabelSchema,
182
+ tags: split(','),
183
+ timeMillis: Schema.Finite
162
184
  });
163
185
  };
164
186
  const getTestResultsStream = (testRun, schemas) => {
165
187
  const RowSchema = makeTestResultSchema(schemas);
166
- const RowsSchema = _effect.Schema.Array(RowSchema);
167
- // better-sqlite3 is synchronous and doesn't expose a cursor, so the
168
- // full result set is materialised before emission. Decoding once in
169
- // bulk avoids fiber-per-row overhead from `Stream.mapEffect`.
170
- return _effect.Stream.unwrap(_effect.Effect.gen(function* () {
188
+ const RowsSchema = Schema.Array(RowSchema);
189
+ // The SQLite driver returns rows in one batch. Decode that batch once
190
+ // before exposing it as a stream.
191
+ return Stream.unwrap(Effect.gen(function* () {
171
192
  const rows = yield* sql`
172
- SELECT res.* FROM ${sql(tables.testResults)} res
193
+ SELECT res.id, res.hashTestCase, res.key,
194
+ runres.ordering, runres.resultOrdering,
195
+ res.input, res.result, res.expected, res.label, res.tags,
196
+ runres.timeMillis
197
+ FROM ${sql(tables.testResults)} res
173
198
  JOIN ${sql(tables.testRunResults)} runres ON res.id = runres.testResult
174
199
  JOIN ${sql(tables.testRuns)} runs ON runs.id = runres.testRun
175
200
  WHERE runs.id = ${testRun.id}
176
- ORDER BY ordering ASC;
177
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('getTestResultsStream')));
178
- const decoded = yield* _effect.Schema.decodeUnknown(RowsSchema)(rows).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('getTestResultsStream')));
179
- return _effect.Stream.fromIterable(decoded);
201
+ ORDER BY runres.ordering ASC, runres.resultOrdering ASC;
202
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('getTestResultsStream')));
203
+ const decoded = yield* Schema.decodeUnknownEffect(RowsSchema)(rows).pipe(Effect.mapError(RepositoryDecodeError.from('getTestResultsStream')));
204
+ return Stream.fromIterable(decoded);
180
205
  }));
181
206
  };
182
- const hasResults = testRun => _effect.Effect.gen(function* () {
207
+ const hasResults = Effect.fnUntraced(function* (testRun) {
183
208
  const b = yield* sql`
184
209
  SELECT COUNT(*) count FROM ${sql(tables.testRunResults)}
185
210
  WHERE testRun = ${testRun.id};
186
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('hasResults')));
187
- const r = yield* _effect.Schema.decodeUnknown(CountSchema)(b).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('hasResults')));
211
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('hasResults')));
212
+ const r = yield* Schema.decodeUnknownEffect(CountSchema)(b).pipe(Effect.mapError(RepositoryDecodeError.from('hasResults')));
188
213
  return r > 0;
189
214
  });
190
- const getPreviousTestRun = name => _effect.Effect.gen(function* () {
215
+ const getPreviousTestRun = Effect.fnUntraced(function* (name) {
191
216
  const r = yield* sql`
192
217
  SELECT * FROM ${sql(tables.testRuns)}
193
218
  WHERE hash IS NOT NULL AND name = ${name}
194
219
  ORDER BY id DESC
195
220
  LIMIT 1;
196
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('getPreviousTestRun')));
197
- const p = yield* _effect.Schema.decodeUnknown(TestRunsReadSchema)(r).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('getPreviousTestRun')));
198
- return _effect.Array.head(p);
221
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('getPreviousTestRun')));
222
+ const p = yield* Schema.decodeUnknownEffect(TestRunsReadSchema)(r).pipe(Effect.mapError(RepositoryDecodeError.from('getPreviousTestRun')));
223
+ return A.head(p);
199
224
  });
200
- const getAllTestRuns = _effect.Effect.gen(function* () {
225
+ const getAllTestRuns = Effect.gen(function* () {
201
226
  const results = yield* sql`
202
227
  SELECT * from ${sql(tables.testRuns)};
203
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('getAllTestRuns')));
204
- return yield* _effect.Schema.decodeUnknown(TestRunsReadSchema)(results).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('getAllTestRuns')));
228
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('getAllTestRuns')));
229
+ return yield* Schema.decodeUnknownEffect(TestRunsReadSchema)(results).pipe(Effect.mapError(RepositoryDecodeError.from('getAllTestRuns')));
205
230
  });
206
- const getAllTestRunResults = _effect.Effect.gen(function* () {
231
+ const getAllTestRunResults = Effect.gen(function* () {
207
232
  const results = yield* sql`
208
233
  SELECT * from ${sql(tables.testRunResults)};
209
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('getAllTestRunResults')));
210
- return yield* _effect.Schema.decodeUnknown(TestRunResultsSchema)(results).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('getAllTestRunResults')));
234
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('getAllTestRunResults')));
235
+ return yield* Schema.decodeUnknownEffect(TestRunResultsSchema)(results).pipe(Effect.mapError(RepositoryDecodeError.from('getAllTestRunResults')));
211
236
  });
212
- const getAllTestResults = _effect.Effect.gen(function* () {
237
+ const getAllTestResults = Effect.gen(function* () {
213
238
  const results = yield* sql`
214
239
  SELECT * from ${sql(tables.testResults)};
215
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('getAllTestResults')));
216
- return yield* _effect.Schema.decodeUnknown(TestResultsSchema)(results).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('getAllTestResults')));
240
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('getAllTestResults')));
241
+ return yield* Schema.decodeUnknownEffect(TestResultsSchema)(results).pipe(Effect.mapError(RepositoryDecodeError.from('getAllTestResults')));
217
242
  });
218
- const getLastTestRunHash = name => sql`
243
+ const getLastTestRunHash = Effect.fnUntraced(function* (name) {
244
+ const rows = yield* sql`
219
245
  SELECT *
220
246
  FROM ${sql(tables.testRuns)}
221
247
  WHERE hash IS NOT NULL AND name = ${name}
222
248
  ORDER BY id DESC
223
249
  LIMIT 1;
224
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('getLastTestRunHash')), _effect.Effect.map((0, _effect.flow)(_effect.Array.get(0), _effect.Option.flatMap(_ => _effect.Option.fromNullable(_.hash)))));
225
- const getOrCreateCurrentTestRun = name => sql.withTransaction(_effect.Effect.gen(function* () {
250
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('getLastTestRunHash')));
251
+ const runs = yield* Schema.decodeUnknownEffect(TestRunsReadSchema)(rows).pipe(Effect.mapError(RepositoryDecodeError.from('getLastTestRunHash')));
252
+ return A.head(runs).pipe(Option.flatMap(run => Option.fromNullishOr(run.hash)));
253
+ });
254
+ const getOrCreateCurrentTestRun = name => sql.withTransaction(Effect.gen(function* () {
226
255
  const currentRaw = yield* sql`
227
256
  SELECT *
228
257
  FROM ${sql(tables.testRuns)}
229
258
  WHERE hash IS NULL AND name = ${name}
230
259
  ORDER BY id DESC
231
260
  LIMIT 1;
232
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('getOrCreateCurrentTestRun')));
233
- const current = yield* _effect.Schema.decodeUnknown(TestRunsReadSchema)(currentRaw).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('getOrCreateCurrentTestRun')));
234
- const existing = _effect.Array.head(current);
235
- if (_effect.Option.isSome(existing)) {
261
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('getOrCreateCurrentTestRun')));
262
+ const current = yield* Schema.decodeUnknownEffect(TestRunsReadSchema)(currentRaw).pipe(Effect.mapError(RepositoryDecodeError.from('getOrCreateCurrentTestRun')));
263
+ const existing = A.head(current);
264
+ if (Option.isSome(existing)) {
236
265
  return existing.value;
237
266
  }
238
267
  const insertedRaw = yield* sql`
@@ -241,27 +270,24 @@ const makeTestRepository = exports.makeTestRepository = /*#__PURE__*/_effect.Eff
241
270
  name
242
271
  })}
243
272
  RETURNING *;
244
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('getOrCreateCurrentTestRun')));
245
- const inserted = yield* _effect.Schema.decodeUnknown(TestRunsReadSchema)(insertedRaw).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('getOrCreateCurrentTestRun')));
246
- return yield* _effect.Array.head(inserted).pipe(_effect.Option.match({
247
- onNone: () => _effect.Effect.fail(new _RepositoryError.TestRunNotCreated({
248
- name
249
- })),
250
- onSome: _effect.Effect.succeed
251
- }));
252
- })).pipe(_effect.Effect.catchTag('SqlError', e => _effect.Effect.fail(_RepositoryError.RepositoryQueryError.fromSql('getOrCreateCurrentTestRun')(e))));
273
+ `.pipe(Effect.mapError(RepositoryWriteError.from('getOrCreateCurrentTestRun')));
274
+ const inserted = yield* Schema.decodeUnknownEffect(TestRunsReadSchema)(insertedRaw).pipe(Effect.mapError(RepositoryDecodeError.from('getOrCreateCurrentTestRun')));
275
+ return yield* Effect.fromOption(A.head(inserted)).pipe(Effect.mapError(() => new TestRunNotCreated({
276
+ testSuiteName: name
277
+ })));
278
+ })).pipe(Effect.catchTag('SqlError', e => Effect.fail(RepositoryQueryError.fromSql('getOrCreateCurrentTestRun')(e))));
253
279
  const clearStale = ({
254
280
  name,
255
281
  keep = 1
256
- }) => sql.withTransaction(_effect.Effect.gen(function* () {
282
+ }) => sql.withTransaction(Effect.gen(function* () {
257
283
  const raw = yield* sql`
258
284
  SELECT *
259
285
  FROM ${sql(tables.testRuns)}
260
286
  WHERE hash IS NOT NULL AND name = ${name}
261
287
  ORDER BY id DESC
262
288
  LIMIT -1 OFFSET ${keep};
263
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('clearStale')));
264
- const staleTestRuns = yield* _effect.Schema.decodeUnknown(TestRunsReadSchema)(raw).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('clearStale')));
289
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('clearStale')));
290
+ const staleTestRuns = yield* Schema.decodeUnknownEffect(TestRunsReadSchema)(raw).pipe(Effect.mapError(RepositoryDecodeError.from('clearStale')));
265
291
  if (staleTestRuns.length === 0) {
266
292
  return;
267
293
  }
@@ -269,59 +295,59 @@ const makeTestRepository = exports.makeTestRepository = /*#__PURE__*/_effect.Eff
269
295
  yield* sql`
270
296
  DELETE FROM ${sql(tables.testRunResults)}
271
297
  WHERE testRun IN ${sql.in(ids)};
272
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearStale')));
298
+ `.pipe(Effect.mapError(RepositoryWriteError.from('clearStale')));
273
299
  yield* sql`
274
300
  DELETE FROM ${sql(tables.testRuns)}
275
301
  WHERE id IN ${sql.in(ids)};
276
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearStale')));
302
+ `.pipe(Effect.mapError(RepositoryWriteError.from('clearStale')));
277
303
  yield* sql`
278
304
  DELETE FROM ${sql(tables.testResults)}
279
305
  WHERE id NOT IN (
280
306
  SELECT DISTINCT testResult FROM ${sql(tables.testRunResults)}
281
307
  );
282
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearStale')));
283
- yield* _effect.Console.log('Cleared stale test runs.');
284
- })).pipe(_effect.Effect.catchTag('SqlError', e => _effect.Effect.fail(_RepositoryError.RepositoryWriteError.from('clearStale')(e))));
308
+ `.pipe(Effect.mapError(RepositoryWriteError.from('clearStale')));
309
+ yield* Console.log('Cleared stale test runs.');
310
+ })).pipe(Effect.catchTag('SqlError', e => Effect.fail(RepositoryWriteError.from('clearStale')(e))));
285
311
  const clearUncommitedTestResults = ({
286
312
  name
287
- }) => sql.withTransaction(_effect.Effect.gen(function* () {
313
+ }) => sql.withTransaction(Effect.gen(function* () {
288
314
  const currentRaw = yield* sql`
289
315
  SELECT *
290
316
  FROM ${sql(tables.testRuns)}
291
317
  WHERE hash IS NULL AND name = ${name}
292
318
  ORDER BY id DESC
293
319
  LIMIT 1;
294
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('clearUncommitedTestResults')));
295
- const current = yield* _effect.Schema.decodeUnknown(TestRunsReadSchema)(currentRaw).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('clearUncommitedTestResults')));
296
- const currentTestRun = _effect.Array.head(current);
297
- if (_effect.Option.isNone(currentTestRun)) {
320
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('clearUncommitedTestResults')));
321
+ const current = yield* Schema.decodeUnknownEffect(TestRunsReadSchema)(currentRaw).pipe(Effect.mapError(RepositoryDecodeError.from('clearUncommitedTestResults')));
322
+ const currentTestRun = A.head(current);
323
+ if (Option.isNone(currentTestRun)) {
298
324
  return;
299
325
  }
300
326
  yield* sql`
301
327
  DELETE FROM ${sql(tables.testRunResults)}
302
328
  WHERE testRun = ${currentTestRun.value.id};
303
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearUncommitedTestResults')));
329
+ `.pipe(Effect.mapError(RepositoryWriteError.from('clearUncommitedTestResults')));
304
330
  yield* sql`
305
331
  DELETE FROM ${sql(tables.testResults)}
306
332
  WHERE id NOT IN (
307
333
  SELECT DISTINCT testResult FROM ${sql(tables.testRunResults)}
308
334
  );
309
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearUncommitedTestResults')));
310
- })).pipe(_effect.Effect.catchTag('SqlError', e => _effect.Effect.fail(_RepositoryError.RepositoryWriteError.from('clearUncommitedTestResults')(e))));
311
- const commitCurrentTestRun = ({
335
+ `.pipe(Effect.mapError(RepositoryWriteError.from('clearUncommitedTestResults')));
336
+ })).pipe(Effect.catchTag('SqlError', e => Effect.fail(RepositoryWriteError.from('clearUncommitedTestResults')(e))));
337
+ const commitCurrentTestRun = Effect.fnUntraced(function* ({
312
338
  name,
313
339
  hash
314
- }) => _effect.Effect.gen(function* () {
315
- const currentTestRunResults = yield* _effect.Schema.decodeUnknown(CountSchema)(yield* sql`
340
+ }) {
341
+ const currentTestRunResults = yield* Schema.decodeUnknownEffect(CountSchema)(yield* sql`
316
342
  SELECT COUNT(*) count FROM ${sql(tables.testRunResults)}
317
343
  WHERE testRun = (
318
344
  SELECT id
319
345
  FROM ${sql(tables.testRuns)}
320
346
  WHERE hash IS NULL AND name = ${name}
321
347
  );
322
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('commitCurrentTestRun')))).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('commitCurrentTestRun')));
348
+ `.pipe(Effect.mapError(RepositoryQueryError.fromSql('commitCurrentTestRun')))).pipe(Effect.mapError(RepositoryDecodeError.from('commitCurrentTestRun')));
323
349
  if (currentTestRunResults === 0) {
324
- yield* _effect.Console.log('Current run has no test results, not commiting.');
350
+ yield* Console.log('Current run has no test results, not commiting.');
325
351
  return;
326
352
  }
327
353
  yield* sql`
@@ -332,14 +358,14 @@ const makeTestRepository = exports.makeTestRepository = /*#__PURE__*/_effect.Eff
332
358
  FROM ${sql(tables.testRuns)}
333
359
  WHERE hash IS NULL AND name = ${name}
334
360
  );
335
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('commitCurrentTestRun')));
361
+ `.pipe(Effect.mapError(RepositoryWriteError.from('commitCurrentTestRun')));
336
362
  yield* sql`
337
363
  INSERT INTO ${sql(tables.testRuns)}
338
364
  ${sql.insert({
339
365
  name
340
366
  })};
341
- `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('commitCurrentTestRun')));
342
- yield* _effect.Console.log('Commited test run.');
367
+ `.pipe(Effect.mapError(RepositoryWriteError.from('commitCurrentTestRun')));
368
+ yield* Console.log('Commited test run.');
343
369
  });
344
370
  const service = {
345
371
  clearStale,
@@ -1 +1 @@
1
- {"version":3,"file":"Test.repository.sqlite.js","names":["SqlClient","_interopRequireWildcard","require","_effect","_TestRepository","_TestRepositoryTypes","_RepositoryError","_Classify","_Schema","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","tables","exports","testResults","testRuns","testRunResults","TestResultWriteSchema","Schema","Struct","id","String","hashTestCase","ordering","Int","input","parseJson","Unknown","result","expected","label","LabelSchema","tags","split","timeMillis","Number","TestResultsSchema","Array","CountSchema","Tuple","count","pipe","transform","decode","encode","TestRunsReadSchema","TestRun","TestRunResultsSchema","testRun","testResult","makeTestRepository","Effect","gen","sql","INSERT_BATCH_SIZE","insertTestResults","withTransaction","length","encoded","forEach","_","mapError","RepositoryDecodeError","from","chunk","slice","insert","RepositoryWriteError","junction","map","catchTag","fail","insertTestResult","makeTestResultSchema","schemas","getTestResultsStream","RowSchema","RowsSchema","Stream","unwrap","rows","RepositoryQueryError","fromSql","decoded","decodeUnknown","fromIterable","hasResults","b","getPreviousTestRun","name","p","head","getAllTestRuns","results","getAllTestRunResults","getAllTestResults","getLastTestRunHash","flow","Option","flatMap","fromNullable","hash","getOrCreateCurrentTestRun","currentRaw","current","existing","isSome","value","insertedRaw","inserted","match","onNone","TestRunNotCreated","onSome","succeed","clearStale","keep","raw","staleTestRuns","ids","in","Console","log","clearUncommitedTestResults","currentTestRun","isNone","commitCurrentTestRun","currentTestRunResults","service"],"sources":["../../../src/internal/Test.repository.sqlite.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Test.repository.sqlite.js","names":["SqlClient","Array","A","Console","Effect","Option","Schema","SchemaTransformation","Stream","TestRepository","TestRun","RepositoryDecodeError","RepositoryQueryError","RepositoryWriteError","TestRunNotCreated","LabelSchema","split","tables","testResults","testRuns","testRunResults","TestResultWriteSchema","Struct","id","String","hashTestCase","key","ordering","Int","resultOrdering","input","fromJsonString","Unknown","result","expected","label","tags","timeMillis","Finite","TestResultsSchema","CountSchema","Tuple","count","pipe","decodeTo","transform","decode","encode","TestRunsReadSchema","TestRunResultsSchema","testRun","testResult","TableColumnsSchema","name","makeTestRepository","gen","sql","withTransaction","resultColumns","decodeUnknownEffect","mapError","from","some","column","runResultColumns","existing","INSERT_BATCH_SIZE","insertTestResults","length","encoded","forEach","_","encodeEffect","i","chunk","slice","insert","junction","map","catchTag","e","fail","insertTestResult","makeTestResultSchema","schemas","getTestResultsStream","RowSchema","RowsSchema","unwrap","rows","fromSql","decoded","fromIterable","hasResults","fnUntraced","b","r","getPreviousTestRun","p","head","getAllTestRuns","results","getAllTestRunResults","getAllTestResults","getLastTestRunHash","runs","flatMap","run","fromNullishOr","hash","getOrCreateCurrentTestRun","currentRaw","current","isSome","value","insertedRaw","inserted","fromOption","testSuiteName","clearStale","keep","raw","staleTestRuns","ids","in","log","clearUncommitedTestResults","currentTestRun","isNone","commitCurrentTestRun","currentTestRunResults","service"],"sources":["../../../src/internal/Test.repository.sqlite.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}