@creative-introvert/tons-of-tests 0.9.1 → 1.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 (142) hide show
  1. package/README.md +113 -13
  2. package/dist/cjs/Classify.js +33 -2
  3. package/dist/cjs/Classify.js.map +1 -1
  4. package/dist/cjs/RepositoryError.js +45 -0
  5. package/dist/cjs/RepositoryError.js.map +1 -0
  6. package/dist/cjs/Test.js +2 -1
  7. package/dist/cjs/Test.js.map +1 -1
  8. package/dist/cjs/Test.repository.js +32 -6
  9. package/dist/cjs/Test.repository.js.map +1 -1
  10. package/dist/cjs/Test.repository.types.js +14 -0
  11. package/dist/cjs/Test.repository.types.js.map +1 -0
  12. package/dist/cjs/index.js +1 -1
  13. package/dist/cjs/internal/Classify.js +4 -32
  14. package/dist/cjs/internal/Classify.js.map +1 -1
  15. package/dist/cjs/internal/Classify.spec.js +223 -0
  16. package/dist/cjs/internal/Classify.spec.js.map +1 -0
  17. package/dist/cjs/internal/Test.js +61 -29
  18. package/dist/cjs/internal/Test.js.map +1 -1
  19. package/dist/cjs/internal/Test.repository.sqlite.js +172 -121
  20. package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
  21. package/dist/cjs/internal/Test.repository.sqlite.spec.js +263 -170
  22. package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +1 -1
  23. package/dist/cjs/internal/Test.spec.js +205 -0
  24. package/dist/cjs/internal/Test.spec.js.map +1 -0
  25. package/dist/cjs/internal/format-diff.spec.js +22 -16
  26. package/dist/cjs/internal/format-diff.spec.js.map +1 -1
  27. package/dist/cjs/internal/summarize.js.map +1 -1
  28. package/dist/cjs/pack.js.map +1 -1
  29. package/dist/dts/Classify.d.ts +58 -24
  30. package/dist/dts/Classify.d.ts.map +1 -1
  31. package/dist/dts/Error.d.ts +1 -1
  32. package/dist/dts/RepositoryError.d.ts +40 -0
  33. package/dist/dts/RepositoryError.d.ts.map +1 -0
  34. package/dist/dts/Test.d.ts +13 -6
  35. package/dist/dts/Test.d.ts.map +1 -1
  36. package/dist/dts/Test.repository.d.ts +11 -55
  37. package/dist/dts/Test.repository.d.ts.map +1 -1
  38. package/dist/dts/Test.repository.types.d.ts +66 -0
  39. package/dist/dts/Test.repository.types.d.ts.map +1 -0
  40. package/dist/dts/index.d.ts +1 -1
  41. package/dist/dts/index.d.ts.map +1 -1
  42. package/dist/dts/internal/Classify.d.ts +14 -23
  43. package/dist/dts/internal/Classify.d.ts.map +1 -1
  44. package/dist/dts/internal/Classify.spec.d.ts +2 -0
  45. package/dist/dts/internal/Classify.spec.d.ts.map +1 -0
  46. package/dist/dts/internal/Test.d.ts +8 -8
  47. package/dist/dts/internal/Test.d.ts.map +1 -1
  48. package/dist/dts/internal/Test.repository.sqlite.d.ts +9 -12
  49. package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
  50. package/dist/dts/internal/Test.spec.d.ts +2 -0
  51. package/dist/dts/internal/Test.spec.d.ts.map +1 -0
  52. package/dist/dts/internal/common.d.ts +1 -1
  53. package/dist/dts/internal/common.d.ts.map +1 -1
  54. package/dist/dts/internal/diff.d.ts.map +1 -1
  55. package/dist/dts/internal/format-diff.d.ts.map +1 -1
  56. package/dist/dts/internal/lib/Schema.d.ts.map +1 -1
  57. package/dist/dts/internal/lib/jsondiffpatch/contexts/context.d.ts.map +1 -1
  58. package/dist/dts/internal/lib/jsondiffpatch/contexts/diff.d.ts.map +1 -1
  59. package/dist/dts/internal/lib/jsondiffpatch/contexts/patch.d.ts.map +1 -1
  60. package/dist/dts/internal/lib/jsondiffpatch/contexts/reverse.d.ts.map +1 -1
  61. package/dist/dts/internal/lib/jsondiffpatch/diffpatcher.d.ts.map +1 -1
  62. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -1
  63. package/dist/dts/internal/lib/jsondiffpatch/formatters/annotated.d.ts.map +1 -1
  64. package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts +1 -1
  65. package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts.map +1 -1
  66. package/dist/dts/internal/lib/jsondiffpatch/formatters/html.d.ts.map +1 -1
  67. package/dist/dts/internal/lib/jsondiffpatch/formatters/jsonpatch.d.ts.map +1 -1
  68. package/dist/dts/internal/lib/jsondiffpatch/pipe.d.ts.map +1 -1
  69. package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts +1 -1
  70. package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts.map +1 -1
  71. package/dist/dts/internal/pack.d.ts.map +1 -1
  72. package/dist/dts/internal/stats.d.ts +1 -1
  73. package/dist/dts/internal/stats.d.ts.map +1 -1
  74. package/dist/dts/internal/summarize.d.ts +2 -2
  75. package/dist/dts/internal/summarize.d.ts.map +1 -1
  76. package/dist/esm/Classify.js +53 -3
  77. package/dist/esm/Classify.js.map +1 -1
  78. package/dist/esm/DisplayConfig.js +20 -1
  79. package/dist/esm/DisplayConfig.js.map +1 -1
  80. package/dist/esm/Error.js.map +1 -1
  81. package/dist/esm/RepositoryError.js +45 -0
  82. package/dist/esm/RepositoryError.js.map +1 -0
  83. package/dist/esm/Test.js +2 -1
  84. package/dist/esm/Test.js.map +1 -1
  85. package/dist/esm/Test.repository.js +52 -7
  86. package/dist/esm/Test.repository.js.map +1 -1
  87. package/dist/esm/Test.repository.types.js +14 -0
  88. package/dist/esm/Test.repository.types.js.map +1 -0
  89. package/dist/esm/index.js +21 -2
  90. package/dist/esm/index.js.map +1 -1
  91. package/dist/esm/internal/Classify.js +4 -32
  92. package/dist/esm/internal/Classify.js.map +1 -1
  93. package/dist/esm/internal/Classify.spec.js +223 -0
  94. package/dist/esm/internal/Classify.spec.js.map +1 -0
  95. package/dist/esm/internal/Test.js +61 -29
  96. package/dist/esm/internal/Test.js.map +1 -1
  97. package/dist/esm/internal/Test.repository.sqlite.js +192 -122
  98. package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
  99. package/dist/esm/internal/Test.repository.sqlite.spec.js +283 -171
  100. package/dist/esm/internal/Test.repository.sqlite.spec.js.map +1 -1
  101. package/dist/esm/internal/Test.spec.js +205 -0
  102. package/dist/esm/internal/Test.spec.js.map +1 -0
  103. package/dist/esm/internal/common.js +5 -1
  104. package/dist/esm/internal/common.js.map +1 -1
  105. package/dist/esm/internal/diff.js +5 -1
  106. package/dist/esm/internal/diff.js.map +1 -1
  107. package/dist/esm/internal/format-diff.js +5 -1
  108. package/dist/esm/internal/format-diff.js.map +1 -1
  109. package/dist/esm/internal/format-diff.spec.js +42 -17
  110. package/dist/esm/internal/format-diff.spec.js.map +1 -1
  111. package/dist/esm/internal/lib/Schema.js.map +1 -1
  112. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js +5 -1
  113. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
  114. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js +5 -1
  115. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
  116. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js +5 -1
  117. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
  118. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js +25 -2
  119. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
  120. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js +5 -1
  121. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
  122. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js +5 -1
  123. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
  124. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js +5 -1
  125. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
  126. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js +5 -1
  127. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
  128. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js +5 -1
  129. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
  130. package/dist/esm/internal/lib/jsondiffpatch/index.js +5 -1
  131. package/dist/esm/internal/lib/jsondiffpatch/index.js.map +1 -1
  132. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js +5 -1
  133. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
  134. package/dist/esm/internal/pack.js +20 -1
  135. package/dist/esm/internal/pack.js.map +1 -1
  136. package/dist/esm/internal/stats.js +5 -1
  137. package/dist/esm/internal/stats.js.map +1 -1
  138. package/dist/esm/internal/summarize.js +5 -1
  139. package/dist/esm/internal/summarize.js.map +1 -1
  140. package/dist/esm/pack.js +20 -1
  141. package/dist/esm/pack.js.map +1 -1
  142. package/package.json +6 -6
@@ -3,10 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.tables = exports.makeSqliteLiveLayer = exports.TestRepository = exports.SqliteTestLayer = exports.LiveLayer = void 0;
7
- var Sql = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect/sql"));
8
- var Sqlite = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect/sql-sqlite-node"));
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"));
9
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");
10
18
  var _Classify = /*#__PURE__*/require("./Classify.js");
11
19
  var _Schema = /*#__PURE__*/require("./lib/Schema.js");
12
20
  function _interopRequireWildcard(e, t) {
@@ -45,13 +53,7 @@ const TestResultWriteSchema = /*#__PURE__*/_effect.Schema.Struct({
45
53
  tags: /*#__PURE__*/(0, _Schema.split)(','),
46
54
  timeMillis: _effect.Schema.Number
47
55
  });
48
- const TestResultsSchema = /*#__PURE__*/TestResultWriteSchema.pipe(_effect.Schema.Array);
49
- const TestRunReadSchema = /*#__PURE__*/_effect.Schema.Struct({
50
- id: _effect.Schema.Int,
51
- name: _effect.Schema.String,
52
- // TODO: Is this a hash, or uuid?
53
- hash: /*#__PURE__*/_effect.Schema.String.pipe(_effect.Schema.NullOr)
54
- });
56
+ const TestResultsSchema = /*#__PURE__*/_effect.Schema.Array(TestResultWriteSchema);
55
57
  const CountSchema = /*#__PURE__*/_effect.Schema.Tuple(_effect.Schema.Struct({
56
58
  count: _effect.Schema.Int
57
59
  })).pipe(/*#__PURE__*/_effect.Schema.transform(_effect.Schema.Int, {
@@ -62,29 +64,29 @@ const CountSchema = /*#__PURE__*/_effect.Schema.Tuple(_effect.Schema.Struct({
62
64
  count
63
65
  }]
64
66
  }));
65
- const TestRunsReadSchema = /*#__PURE__*/TestRunReadSchema.pipe(_effect.Schema.Array);
66
- const CurrentTestRunSchema = /*#__PURE__*/_effect.Schema.Tuple(TestRunReadSchema).pipe(/*#__PURE__*/_effect.Schema.transform(TestRunReadSchema, {
67
- encode: _ => [_],
68
- decode: ([_]) => _
69
- }));
70
- const TestRunResultsSchema = /*#__PURE__*/_effect.Schema.Struct({
67
+ const TestRunsReadSchema = /*#__PURE__*/_effect.Schema.Array(_TestRepositoryTypes.TestRun);
68
+ const TestRunResultsSchema = /*#__PURE__*/_effect.Schema.Array(/*#__PURE__*/_effect.Schema.Struct({
71
69
  testRun: _effect.Schema.Int,
72
70
  testResult: _effect.Schema.String
73
- }).pipe(_effect.Schema.Array);
74
- // FIXME: Effect.tag
75
- const TestRepository = exports.TestRepository = /*#__PURE__*/_effect.Context.GenericTag('TestRunRepository');
76
- const makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
77
- const sql = yield* Sql.SqlClient.SqlClient;
71
+ }));
72
+ const makeTestRepository = exports.makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
73
+ const sql = yield* SqlClient.SqlClient;
78
74
  yield* sql`PRAGMA auto_vacuum = FULL;`;
79
75
  yield* sql`
80
76
  CREATE TABLE IF NOT EXISTS ${sql(tables.testRuns)}(
81
77
  id INTEGER PRIMARY KEY AUTOINCREMENT,
82
78
  name TEXT NOT NULL,
83
- hash TEXT,
84
- UNIQUE (id, name, hash)
79
+ hash TEXT
85
80
  );
86
81
  `;
87
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`
86
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_current_per_name
87
+ ON ${sql(tables.testRuns)}(name)
88
+ WHERE hash IS NULL;
89
+ `;
88
90
  yield* sql`
89
91
  CREATE TABLE IF NOT EXISTS ${sql(tables.testResults)}(
90
92
  id TEXT PRIMARY KEY,
@@ -107,42 +109,82 @@ const makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
107
109
  UNIQUE (testRun, testResult)
108
110
  );
109
111
  `;
110
- /** Assumes that a `TestRun` with hash=null exists. */
111
- const insertTestResult = (testResult, name) => sql.withTransaction(_effect.Effect.gen(function* () {
112
- const encoded = yield* _effect.Schema.encode(TestResultWriteSchema)(testResult);
113
- yield* sql`
114
- INSERT INTO ${sql(tables.testResults)}
115
- ${sql.insert(encoded)}
116
- ON CONFLICT(id) DO NOTHING;
117
- `;
118
- yield* sql`
119
- INSERT INTO ${sql(tables.testRunResults)}
120
- VALUES (
121
- (
122
- SELECT id FROM ${sql(tables.testRuns)}
123
- WHERE hash IS NULL AND name = ${name}
124
- ),
125
- ${encoded.id}
126
- )
127
- ON CONFLICT(testRun, testResult) DO NOTHING;
128
- `;
129
- }));
130
- const getTestResultsStream = testRun => _effect.Effect.gen(function* () {
131
- const raw = yield* sql`
132
- SELECT res.* FROM ${sql(tables.testResults)} res
133
- JOIN ${sql(tables.testRunResults)} runres ON res.id = runres.testResult
134
- JOIN ${sql(tables.testRuns)} runs ON runs.id = runres.testRun
135
- WHERE runs.id = ${testRun.id}
136
- ORDER BY ordering ASC;
137
- `;
138
- return yield* _effect.Schema.decode(TestResultsSchema)(raw);
139
- }).pipe(_effect.Stream.fromIterableEffect);
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.
120
+ const INSERT_BATCH_SIZE = 50;
121
+ const insertTestResults = (testResults, testRun) => sql.withTransaction(_effect.Effect.gen(function* () {
122
+ 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'))));
124
+ for (let i = 0; i < encoded.length; i += INSERT_BATCH_SIZE) {
125
+ const chunk = encoded.slice(i, i + INSERT_BATCH_SIZE);
126
+ yield* sql`
127
+ INSERT INTO ${sql(tables.testResults)}
128
+ ${sql.insert(chunk)}
129
+ ON CONFLICT(id) DO NOTHING;
130
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('insertTestResults')));
131
+ }
132
+ // Junction rows reference the resolved testRun.id directly,
133
+ // so no correlated subquery.
134
+ const junction = encoded.map(_ => ({
135
+ testRun: testRun.id,
136
+ testResult: _.id
137
+ }));
138
+ for (let i = 0; i < junction.length; i += INSERT_BATCH_SIZE) {
139
+ const chunk = junction.slice(i, i + INSERT_BATCH_SIZE);
140
+ yield* sql`
141
+ INSERT INTO ${sql(tables.testRunResults)}
142
+ ${sql.insert(chunk)}
143
+ ON CONFLICT(testRun, testResult) DO NOTHING;
144
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('insertTestResults')));
145
+ }
146
+ })).pipe(_effect.Effect.catchTag('SqlError', e => _effect.Effect.fail(_RepositoryError.RepositoryWriteError.from('insertTestResults')(e))));
147
+ const insertTestResult = (testResult, testRun) => insertTestResults([testResult], testRun);
148
+ 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
162
+ });
163
+ };
164
+ const getTestResultsStream = (testRun, schemas) => {
165
+ 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* () {
171
+ const rows = yield* sql`
172
+ SELECT res.* FROM ${sql(tables.testResults)} res
173
+ JOIN ${sql(tables.testRunResults)} runres ON res.id = runres.testResult
174
+ JOIN ${sql(tables.testRuns)} runs ON runs.id = runres.testRun
175
+ 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);
180
+ }));
181
+ };
140
182
  const hasResults = testRun => _effect.Effect.gen(function* () {
141
183
  const b = yield* sql`
142
184
  SELECT COUNT(*) count FROM ${sql(tables.testRunResults)}
143
185
  WHERE testRun = ${testRun.id};
144
- `;
145
- const r = yield* _effect.Schema.decodeUnknown(CountSchema)(b);
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')));
146
188
  return r > 0;
147
189
  });
148
190
  const getPreviousTestRun = name => _effect.Effect.gen(function* () {
@@ -151,66 +193,75 @@ const makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
151
193
  WHERE hash IS NOT NULL AND name = ${name}
152
194
  ORDER BY id DESC
153
195
  LIMIT 1;
154
- `;
155
- const p = yield* _effect.Schema.decode(TestRunsReadSchema)(r);
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')));
156
198
  return _effect.Array.head(p);
157
199
  });
158
200
  const getAllTestRuns = _effect.Effect.gen(function* () {
159
201
  const results = yield* sql`
160
- SELECT * from ${sql(tables.testRuns)};
161
- `;
162
- return yield* _effect.Schema.decode(TestRunsReadSchema)(results);
202
+ 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')));
163
205
  });
164
206
  const getAllTestRunResults = _effect.Effect.gen(function* () {
165
207
  const results = yield* sql`
166
- SELECT * from ${sql(tables.testRunResults)};
167
- `;
168
- return yield* _effect.Schema.decode(TestRunResultsSchema)(results);
208
+ 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')));
169
211
  });
170
212
  const getAllTestResults = _effect.Effect.gen(function* () {
171
213
  const results = yield* sql`
172
- SELECT * from ${sql(tables.testResults)};
173
- `;
174
- return yield* _effect.Schema.decode(TestResultsSchema)(results);
214
+ 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')));
175
217
  });
176
- const getLastTestRunHash = name => _effect.Effect.gen(function* () {
177
- const current = yield* sql`
178
- SELECT *
179
- FROM ${sql(tables.testRuns)}
180
- WHERE hash IS NOT NULL AND name = ${name}
181
- ORDER BY id DESC
182
- LIMIT 1;
183
- `;
184
- return current;
185
- }).pipe(_effect.Effect.map((0, _effect.flow)(_effect.Array.get(0), _effect.Option.flatMap(_ => _effect.Option.fromNullable(_.hash)))));
186
- const getOrCreateCurrentTestRun = name => _effect.Effect.gen(function* () {
187
- const current = yield* sql`
188
- SELECT *
189
- FROM ${sql(tables.testRuns)}
190
- WHERE hash IS NULL AND name = ${name};
191
- `;
192
- if (current.length === 0) {
193
- return yield* sql`
218
+ const getLastTestRunHash = name => sql`
219
+ SELECT *
220
+ FROM ${sql(tables.testRuns)}
221
+ WHERE hash IS NOT NULL AND name = ${name}
222
+ ORDER BY id DESC
223
+ 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* () {
226
+ const currentRaw = yield* sql`
227
+ SELECT *
228
+ FROM ${sql(tables.testRuns)}
229
+ WHERE hash IS NULL AND name = ${name}
230
+ ORDER BY id DESC
231
+ 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)) {
236
+ return existing.value;
237
+ }
238
+ const insertedRaw = yield* sql`
194
239
  INSERT INTO ${sql(tables.testRuns)}
195
240
  ${sql.insert({
196
- name
197
- })}
241
+ name
242
+ })}
198
243
  RETURNING *;
199
- `;
200
- }
201
- return current;
202
- }).pipe(_effect.Effect.map((0, _effect.flow)(_effect.Array.head, _effect.Option.getOrThrow)));
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))));
203
253
  const clearStale = ({
204
254
  name,
205
255
  keep = 1
206
256
  }) => sql.withTransaction(_effect.Effect.gen(function* () {
207
- const staleTestRuns = yield* _effect.Schema.decode(TestRunsReadSchema)(yield* sql`
208
- SELECT *
209
- FROM ${sql(tables.testRuns)}
210
- WHERE hash IS NOT NULL AND name = ${name}
211
- ORDER BY id DESC
212
- LIMIT -1 OFFSET ${keep};
213
- `);
257
+ const raw = yield* sql`
258
+ SELECT *
259
+ FROM ${sql(tables.testRuns)}
260
+ WHERE hash IS NOT NULL AND name = ${name}
261
+ ORDER BY id DESC
262
+ 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')));
214
265
  if (staleTestRuns.length === 0) {
215
266
  return;
216
267
  }
@@ -218,38 +269,45 @@ const makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
218
269
  yield* sql`
219
270
  DELETE FROM ${sql(tables.testRunResults)}
220
271
  WHERE testRun IN ${sql.in(ids)};
221
- `;
272
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearStale')));
222
273
  yield* sql`
223
274
  DELETE FROM ${sql(tables.testRuns)}
224
275
  WHERE id IN ${sql.in(ids)};
225
- `;
276
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearStale')));
226
277
  yield* sql`
227
278
  DELETE FROM ${sql(tables.testResults)}
228
279
  WHERE id NOT IN (
229
280
  SELECT DISTINCT testResult FROM ${sql(tables.testRunResults)}
230
281
  );
231
- `;
282
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearStale')));
232
283
  yield* _effect.Console.log('Cleared stale test runs.');
233
- }));
284
+ })).pipe(_effect.Effect.catchTag('SqlError', e => _effect.Effect.fail(_RepositoryError.RepositoryWriteError.from('clearStale')(e))));
234
285
  const clearUncommitedTestResults = ({
235
286
  name
236
287
  }) => sql.withTransaction(_effect.Effect.gen(function* () {
237
- const currentTestRun = yield* _effect.Schema.decodeUnknown(CurrentTestRunSchema)(yield* sql`
238
- SELECT *
239
- FROM ${sql(tables.testRuns)}
240
- WHERE hash IS NULL AND name = ${name};
241
- `);
288
+ const currentRaw = yield* sql`
289
+ SELECT *
290
+ FROM ${sql(tables.testRuns)}
291
+ WHERE hash IS NULL AND name = ${name}
292
+ ORDER BY id DESC
293
+ 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)) {
298
+ return;
299
+ }
242
300
  yield* sql`
243
301
  DELETE FROM ${sql(tables.testRunResults)}
244
- WHERE testRun = ${currentTestRun.id};
245
- `;
302
+ WHERE testRun = ${currentTestRun.value.id};
303
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearUncommitedTestResults')));
246
304
  yield* sql`
247
305
  DELETE FROM ${sql(tables.testResults)}
248
306
  WHERE id NOT IN (
249
307
  SELECT DISTINCT testResult FROM ${sql(tables.testRunResults)}
250
308
  );
251
- `;
252
- }));
309
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('clearUncommitedTestResults')));
310
+ })).pipe(_effect.Effect.catchTag('SqlError', e => _effect.Effect.fail(_RepositoryError.RepositoryWriteError.from('clearUncommitedTestResults')(e))));
253
311
  const commitCurrentTestRun = ({
254
312
  name,
255
313
  hash
@@ -261,7 +319,7 @@ const makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
261
319
  FROM ${sql(tables.testRuns)}
262
320
  WHERE hash IS NULL AND name = ${name}
263
321
  );
264
- `);
322
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryQueryError.fromSql('commitCurrentTestRun')))).pipe(_effect.Effect.mapError(_RepositoryError.RepositoryDecodeError.from('commitCurrentTestRun')));
265
323
  if (currentTestRunResults === 0) {
266
324
  yield* _effect.Console.log('Current run has no test results, not commiting.');
267
325
  return;
@@ -274,13 +332,13 @@ const makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
274
332
  FROM ${sql(tables.testRuns)}
275
333
  WHERE hash IS NULL AND name = ${name}
276
334
  );
277
- `;
335
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('commitCurrentTestRun')));
278
336
  yield* sql`
279
337
  INSERT INTO ${sql(tables.testRuns)}
280
338
  ${sql.insert({
281
339
  name
282
340
  })};
283
- `;
341
+ `.pipe(_effect.Effect.mapError(_RepositoryError.RepositoryWriteError.from('commitCurrentTestRun')));
284
342
  yield* _effect.Console.log('Commited test run.');
285
343
  });
286
344
  const service = {
@@ -295,16 +353,9 @@ const makeTestRepository = /*#__PURE__*/_effect.Effect.gen(function* () {
295
353
  getTestResultsStream,
296
354
  hasResults,
297
355
  insertTestResult,
356
+ insertTestResults,
298
357
  getAllTestRunResults
299
358
  };
300
359
  return service;
301
360
  });
302
- const LiveLayer = exports.LiveLayer = /*#__PURE__*/_effect.Layer.effect(TestRepository, makeTestRepository);
303
- const makeSqliteLiveLayer = dbPath => Sqlite.SqliteClient.layer({
304
- filename: dbPath
305
- });
306
- exports.makeSqliteLiveLayer = makeSqliteLiveLayer;
307
- const SqliteTestLayer = exports.SqliteTestLayer = /*#__PURE__*/Sqlite.SqliteClient.layer({
308
- filename: ':memory:'
309
- });
310
361
  //# sourceMappingURL=Test.repository.sqlite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Test.repository.sqlite.js","names":["Sql","_interopRequireWildcard","require","Sqlite","_effect","_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","pipe","Array","TestRunReadSchema","name","hash","NullOr","CountSchema","Tuple","count","transform","decode","encode","TestRunsReadSchema","CurrentTestRunSchema","_","TestRunResultsSchema","testRun","testResult","TestRepository","Context","GenericTag","makeTestRepository","Effect","gen","sql","SqlClient","insertTestResult","withTransaction","encoded","insert","getTestResultsStream","raw","Stream","fromIterableEffect","hasResults","b","decodeUnknown","getPreviousTestRun","p","head","getAllTestRuns","results","getAllTestRunResults","getAllTestResults","getLastTestRunHash","current","map","flow","Option","flatMap","fromNullable","getOrCreateCurrentTestRun","length","getOrThrow","clearStale","keep","staleTestRuns","ids","in","Console","log","clearUncommitedTestResults","currentTestRun","commitCurrentTestRun","currentTestRunResults","service","LiveLayer","Layer","effect","makeSqliteLiveLayer","dbPath","SqliteClient","layer","filename","SqliteTestLayer"],"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","_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":[]}