@creative-introvert/tons-of-tests 0.9.0 → 1.0.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.
- package/README.md +78 -12
- package/dist/cjs/Classify.js +33 -2
- package/dist/cjs/Classify.js.map +1 -1
- package/dist/cjs/RepositoryError.js +45 -0
- package/dist/cjs/RepositoryError.js.map +1 -0
- package/dist/cjs/Test.js +2 -1
- package/dist/cjs/Test.js.map +1 -1
- package/dist/cjs/Test.repository.js +32 -6
- package/dist/cjs/Test.repository.js.map +1 -1
- package/dist/cjs/Test.repository.types.js +14 -0
- package/dist/cjs/Test.repository.types.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internal/Classify.js +4 -32
- package/dist/cjs/internal/Classify.js.map +1 -1
- package/dist/cjs/internal/Classify.spec.js +223 -0
- package/dist/cjs/internal/Classify.spec.js.map +1 -0
- package/dist/cjs/internal/Test.js +61 -29
- package/dist/cjs/internal/Test.js.map +1 -1
- package/dist/cjs/internal/Test.repository.sqlite.js +172 -121
- package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
- package/dist/cjs/internal/Test.repository.sqlite.spec.js +263 -170
- package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +1 -1
- package/dist/cjs/internal/Test.spec.js +205 -0
- package/dist/cjs/internal/Test.spec.js.map +1 -0
- package/dist/cjs/internal/format-diff.spec.js +22 -16
- package/dist/cjs/internal/format-diff.spec.js.map +1 -1
- package/dist/cjs/internal/summarize.js.map +1 -1
- package/dist/cjs/pack.js.map +1 -1
- package/dist/dts/Classify.d.ts +58 -24
- package/dist/dts/Classify.d.ts.map +1 -1
- package/dist/dts/Error.d.ts +1 -1
- package/dist/dts/RepositoryError.d.ts +40 -0
- package/dist/dts/RepositoryError.d.ts.map +1 -0
- package/dist/dts/Test.d.ts +8 -1
- package/dist/dts/Test.d.ts.map +1 -1
- package/dist/dts/Test.repository.d.ts +11 -55
- package/dist/dts/Test.repository.d.ts.map +1 -1
- package/dist/dts/Test.repository.types.d.ts +66 -0
- package/dist/dts/Test.repository.types.d.ts.map +1 -0
- package/dist/dts/index.d.ts +1 -1
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/Classify.d.ts +14 -23
- package/dist/dts/internal/Classify.d.ts.map +1 -1
- package/dist/dts/internal/Classify.spec.d.ts +2 -0
- package/dist/dts/internal/Classify.spec.d.ts.map +1 -0
- package/dist/dts/internal/Test.d.ts +3 -3
- package/dist/dts/internal/Test.d.ts.map +1 -1
- package/dist/dts/internal/Test.repository.sqlite.d.ts +9 -12
- package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
- package/dist/dts/internal/Test.spec.d.ts +2 -0
- package/dist/dts/internal/Test.spec.d.ts.map +1 -0
- package/dist/dts/internal/common.d.ts +1 -1
- package/dist/dts/internal/common.d.ts.map +1 -1
- package/dist/dts/internal/diff.d.ts.map +1 -1
- package/dist/dts/internal/format-diff.d.ts.map +1 -1
- package/dist/dts/internal/lib/Schema.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/contexts/context.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/contexts/diff.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/contexts/patch.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/contexts/reverse.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/diffpatcher.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/annotated.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/html.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/jsonpatch.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/pipe.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts.map +1 -1
- package/dist/dts/internal/pack.d.ts.map +1 -1
- package/dist/dts/internal/stats.d.ts +1 -1
- package/dist/dts/internal/stats.d.ts.map +1 -1
- package/dist/dts/internal/summarize.d.ts +2 -2
- package/dist/dts/internal/summarize.d.ts.map +1 -1
- package/dist/esm/Classify.js +33 -2
- package/dist/esm/Classify.js.map +1 -1
- package/dist/esm/RepositoryError.js +45 -0
- package/dist/esm/RepositoryError.js.map +1 -0
- package/dist/esm/Test.js +2 -1
- package/dist/esm/Test.js.map +1 -1
- package/dist/esm/Test.repository.js +32 -6
- package/dist/esm/Test.repository.js.map +1 -1
- package/dist/esm/Test.repository.types.js +14 -0
- package/dist/esm/Test.repository.types.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/internal/Classify.js +4 -32
- package/dist/esm/internal/Classify.js.map +1 -1
- package/dist/esm/internal/Classify.spec.js +204 -0
- package/dist/esm/internal/Classify.spec.js.map +1 -0
- package/dist/esm/internal/Test.js +61 -29
- package/dist/esm/internal/Test.js.map +1 -1
- package/dist/esm/internal/Test.repository.sqlite.js +172 -121
- package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
- package/dist/esm/internal/Test.repository.sqlite.spec.js +263 -170
- package/dist/esm/internal/Test.repository.sqlite.spec.js.map +1 -1
- package/dist/esm/internal/Test.spec.js +186 -0
- package/dist/esm/internal/Test.spec.js.map +1 -0
- package/dist/esm/internal/format-diff.spec.js +22 -16
- package/dist/esm/internal/format-diff.spec.js.map +1 -1
- package/dist/esm/internal/summarize.js.map +1 -1
- package/dist/esm/pack.js.map +1 -1
- package/package.json +7 -7
|
@@ -3,10 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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__*/
|
|
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__*/
|
|
66
|
-
const
|
|
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
|
-
})
|
|
74
|
-
|
|
75
|
-
const
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
${
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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.
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
return yield* _effect.Schema.
|
|
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
|
-
|
|
167
|
-
|
|
168
|
-
return yield* _effect.Schema.
|
|
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
|
-
|
|
173
|
-
|
|
174
|
-
return yield* _effect.Schema.
|
|
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 =>
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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
|
-
|
|
197
|
-
|
|
241
|
+
name
|
|
242
|
+
})}
|
|
198
243
|
RETURNING *;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
return
|
|
202
|
-
|
|
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
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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":[]}
|