@creative-introvert/tons-of-tests 2.1.0 → 3.0.0-rc.1
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 +143 -37
- package/dist/cjs/Classify.js +1 -2
- package/dist/cjs/Classify.js.map +1 -1
- package/dist/cjs/RepositoryError.js +42 -33
- package/dist/cjs/RepositoryError.js.map +1 -1
- package/dist/cjs/Show.js +18 -0
- package/dist/cjs/Show.js.map +1 -1
- package/dist/cjs/Test.js +40 -2
- package/dist/cjs/Test.js.map +1 -1
- package/dist/cjs/Test.repository.js +25 -22
- package/dist/cjs/Test.repository.js.map +1 -1
- package/dist/cjs/TestRun.js +28 -0
- package/dist/cjs/TestRun.js.map +1 -0
- package/dist/cjs/TestValueError.js +23 -0
- package/dist/cjs/TestValueError.js.map +1 -0
- package/dist/cjs/index.js +0 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/Classify.js +1 -9
- package/dist/cjs/internal/Classify.js.map +1 -1
- package/dist/cjs/internal/Test.js +235 -95
- package/dist/cjs/internal/Test.js.map +1 -1
- package/dist/cjs/internal/Test.repository.sqlite.js +487 -356
- package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
- package/dist/cjs/internal/Test.serialization.js +128 -0
- package/dist/cjs/internal/Test.serialization.js.map +1 -0
- package/dist/cjs/internal/common.js.map +1 -1
- package/dist/cjs/internal/stats.js +29 -1
- package/dist/cjs/internal/stats.js.map +1 -1
- package/dist/cjs/internal/summarize.js +143 -29
- package/dist/cjs/internal/summarize.js.map +1 -1
- package/dist/cjs/internal/test-repository-fixtures.js +31 -0
- package/dist/cjs/internal/test-repository-fixtures.js.map +1 -0
- package/dist/cjs/internal/test-repository-schema.js +98 -0
- package/dist/cjs/internal/test-repository-schema.js.map +1 -0
- package/dist/cjs/internal/test-result-stats.js +89 -0
- package/dist/cjs/internal/test-result-stats.js.map +1 -0
- package/dist/dts/Classify.d.ts +0 -1
- package/dist/dts/Classify.d.ts.map +1 -1
- package/dist/dts/RepositoryError.d.ts +47 -20
- package/dist/dts/RepositoryError.d.ts.map +1 -1
- package/dist/dts/Show.d.ts +5 -5
- package/dist/dts/Show.d.ts.map +1 -1
- package/dist/dts/Test.d.ts +136 -13
- package/dist/dts/Test.d.ts.map +1 -1
- package/dist/dts/Test.repository.d.ts +132 -9
- package/dist/dts/Test.repository.d.ts.map +1 -1
- package/dist/dts/TestRun.d.ts +22 -0
- package/dist/dts/TestRun.d.ts.map +1 -0
- package/dist/dts/TestValueError.d.ts +17 -0
- package/dist/dts/TestValueError.d.ts.map +1 -0
- package/dist/dts/index.d.ts +0 -1
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/Classify.d.ts +0 -1
- package/dist/dts/internal/Classify.d.ts.map +1 -1
- package/dist/dts/internal/Test.d.ts +64 -30
- package/dist/dts/internal/Test.d.ts.map +1 -1
- package/dist/dts/internal/Test.repository.sqlite.d.ts +92 -11
- package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
- package/dist/dts/internal/Test.serialization.d.ts +34 -0
- package/dist/dts/internal/Test.serialization.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/stats.d.ts +16 -1
- package/dist/dts/internal/stats.d.ts.map +1 -1
- package/dist/dts/internal/summarize.d.ts +39 -7
- package/dist/dts/internal/summarize.d.ts.map +1 -1
- package/dist/dts/internal/test-repository-fixtures.d.ts +33 -0
- package/dist/dts/internal/test-repository-fixtures.d.ts.map +1 -0
- package/dist/dts/internal/test-repository-schema.d.ts +16 -0
- package/dist/dts/internal/test-repository-schema.d.ts.map +1 -0
- package/dist/dts/internal/test-result-stats.d.ts +7 -0
- package/dist/dts/internal/test-result-stats.d.ts.map +1 -0
- package/dist/esm/Classify.js +0 -1
- package/dist/esm/Classify.js.map +1 -1
- package/dist/esm/RepositoryError.js +29 -29
- package/dist/esm/RepositoryError.js.map +1 -1
- package/dist/esm/Show.js +2 -2
- package/dist/esm/Show.js.map +1 -1
- package/dist/esm/Test.js +37 -1
- package/dist/esm/Test.js.map +1 -1
- package/dist/esm/Test.repository.js +26 -21
- package/dist/esm/Test.repository.js.map +1 -1
- package/dist/esm/TestRun.js +22 -0
- package/dist/esm/TestRun.js.map +1 -0
- package/dist/esm/TestValueError.js +16 -0
- package/dist/esm/TestValueError.js.map +1 -0
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/Classify.js +0 -7
- package/dist/esm/internal/Classify.js.map +1 -1
- package/dist/esm/internal/Test.js +231 -94
- package/dist/esm/internal/Test.js.map +1 -1
- package/dist/esm/internal/Test.repository.sqlite.js +486 -356
- package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
- package/dist/esm/internal/Test.serialization.js +119 -0
- package/dist/esm/internal/Test.serialization.js.map +1 -0
- package/dist/esm/internal/common.js.map +1 -1
- package/dist/esm/internal/stats.js +27 -0
- package/dist/esm/internal/stats.js.map +1 -1
- package/dist/esm/internal/summarize.js +143 -28
- package/dist/esm/internal/summarize.js.map +1 -1
- package/dist/esm/internal/test-repository-fixtures.js +25 -0
- package/dist/esm/internal/test-repository-fixtures.js.map +1 -0
- package/dist/esm/internal/test-repository-schema.js +92 -0
- package/dist/esm/internal/test-repository-schema.js.map +1 -0
- package/dist/esm/internal/test-result-stats.js +83 -0
- package/dist/esm/internal/test-result-stats.js.map +1 -0
- package/package.json +1 -1
- package/dist/cjs/Test.repository.types.js +0 -14
- package/dist/cjs/Test.repository.types.js.map +0 -1
- package/dist/cjs/internal/lib/Schema.js +0 -14
- package/dist/cjs/internal/lib/Schema.js.map +0 -1
- package/dist/dts/Test.repository.types.d.ts +0 -62
- package/dist/dts/Test.repository.types.d.ts.map +0 -1
- package/dist/dts/internal/lib/Schema.d.ts +0 -4
- package/dist/dts/internal/lib/Schema.d.ts.map +0 -1
- package/dist/esm/Test.repository.types.js +0 -7
- package/dist/esm/Test.repository.types.js.map +0 -1
- package/dist/esm/internal/lib/Schema.js +0 -7
- package/dist/esm/internal/lib/Schema.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-repository-fixtures.js","names":["Effect","Schema","SqlClient","TestRun","TestResultStorage","tables","getAllTestRuns","gen","sql","decodeUnknownEffect","Array","testRuns","getAllTestResults","testResults","getAllTestRunResults","Struct","testRun","Int","testResult","String","ordering","resultOrdering","timeMillis","Finite","tags","fromJsonString","testRunResults"],"sources":["../../../src/internal/test-repository-fixtures.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAQA,MAAM,EAAEC,MAAM,QAAO,QAAQ;AACrC,SAAQC,SAAS,QAAO,YAAY;AAEpC,SAAQC,OAAO,QAAO,eAAe;AACrC,SAAQC,iBAAiB,EAAEC,MAAM,QAAO,6BAA6B;AAErE;AACA,OAAO,MAAMC,cAAc,gBAAGN,MAAM,CAACO,GAAG,CAAC,aAAS;EAC9C,MAAMC,GAAG,GAAG,OAAON,SAAS,CAACA,SAAS;EACtC,OAAO,OAAOD,MAAM,CAACQ,mBAAmB,CAACR,MAAM,CAACS,KAAK,CAACP,OAAO,CAAC,CAAC,CAC3D,OAAOK,GAAG,mCAAmCA,GAAG,CAACH,MAAM,CAACM,QAAQ,CAAC,GAAG,CACvE;AACL,CAAC,CAAC;AAEF,OAAO,MAAMC,iBAAiB,gBAAGZ,MAAM,CAACO,GAAG,CAAC,aAAS;EACjD,MAAMC,GAAG,GAAG,OAAON,SAAS,CAACA,SAAS;EACtC,OAAO,OAAOD,MAAM,CAACQ,mBAAmB,CAACR,MAAM,CAACS,KAAK,CAACN,iBAAiB,CAAC,CAAC,CACrE,OAAOI,GAAG,iBAAiBA,GAAG,CAACH,MAAM,CAACQ,WAAW,CAAC,GAAG,CACxD;AACL,CAAC,CAAC;AAEF,OAAO,MAAMC,oBAAoB,gBAAGd,MAAM,CAACO,GAAG,CAAC,aAAS;EACpD,MAAMC,GAAG,GAAG,OAAON,SAAS,CAACA,SAAS;EACtC,OAAO,OAAOD,MAAM,CAACQ,mBAAmB,CACpCR,MAAM,CAACS,KAAK,CACRT,MAAM,CAACc,MAAM,CAAC;IACVC,OAAO,EAAEf,MAAM,CAACgB,GAAG;IACnBC,UAAU,EAAEjB,MAAM,CAACkB,MAAM;IACzBC,QAAQ,EAAEnB,MAAM,CAACgB,GAAG;IACpBI,cAAc,EAAEpB,MAAM,CAACgB,GAAG;IAC1BK,UAAU,EAAErB,MAAM,CAACsB,MAAM;IACzBC,IAAI,EAAEvB,MAAM,CAACwB,cAAc,CAACxB,MAAM,CAACS,KAAK,CAACT,MAAM,CAACkB,MAAM,CAAC;GAC1D,CAAC,CACL,CACJ,CAAC,OAAOX,GAAG,iBAAiBA,GAAG,CAACH,MAAM,CAACqB,cAAc,CAAC,GAAG,CAAC;AAC/D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Effect, Schema } from 'effect';
|
|
2
|
+
import { RepositoryFormatError } from '../RepositoryError.js';
|
|
3
|
+
export const tables = {
|
|
4
|
+
testResults: 'test-results',
|
|
5
|
+
testRuns: 'test-runs',
|
|
6
|
+
testBaselines: 'test-baselines',
|
|
7
|
+
testRunResults: 'test-run-results'
|
|
8
|
+
};
|
|
9
|
+
const format = {
|
|
10
|
+
cache: 1414480721,
|
|
11
|
+
snapshot: 1414480722
|
|
12
|
+
};
|
|
13
|
+
const decodeVersion = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.Tuple([/*#__PURE__*/Schema.Struct({
|
|
14
|
+
user_version: Schema.Int
|
|
15
|
+
})]));
|
|
16
|
+
export const checkFormat = /*#__PURE__*/Effect.fnUntraced(function* (sql, store, path) {
|
|
17
|
+
const [saved] = yield* decodeVersion(yield* sql`PRAGMA user_version;`);
|
|
18
|
+
if (saved.user_version !== format[store]) {
|
|
19
|
+
return yield* new RepositoryFormatError({
|
|
20
|
+
store,
|
|
21
|
+
path
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Initialize an empty store. Recheck its marker inside the transaction so another
|
|
27
|
+
* process may finish initialization first. Existing formats are never upgraded.
|
|
28
|
+
*/
|
|
29
|
+
export const initializeSchema = /*#__PURE__*/Effect.fnUntraced(function* (sql, store, path) {
|
|
30
|
+
yield* sql.withTransaction(Effect.gen(function* () {
|
|
31
|
+
const [saved] = yield* decodeVersion(yield* sql`PRAGMA user_version;`);
|
|
32
|
+
if (saved.user_version === format[store]) return;
|
|
33
|
+
const existing = yield* sql`
|
|
34
|
+
SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' LIMIT 1;
|
|
35
|
+
`;
|
|
36
|
+
if (saved.user_version !== 0 || existing.length > 0) {
|
|
37
|
+
return yield* new RepositoryFormatError({
|
|
38
|
+
store,
|
|
39
|
+
path
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
yield* sql`
|
|
43
|
+
CREATE TABLE ${sql(tables.testRuns)} (
|
|
44
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
45
|
+
executionId TEXT NOT NULL UNIQUE,
|
|
46
|
+
snapshotIdentity TEXT NOT NULL,
|
|
47
|
+
name TEXT NOT NULL,
|
|
48
|
+
variant TEXT NOT NULL,
|
|
49
|
+
state TEXT NOT NULL CHECK (state IN ('Running', 'Complete', 'Failed'))
|
|
50
|
+
);
|
|
51
|
+
`;
|
|
52
|
+
yield* sql`CREATE INDEX idx_run_identity ON ${sql(tables.testRuns)} (snapshotIdentity, name, variant, id);`;
|
|
53
|
+
if (store === 'cache') {
|
|
54
|
+
yield* sql`CREATE UNIQUE INDEX idx_latest_attempt ON ${sql(tables.testRuns)} (snapshotIdentity, name, variant);`;
|
|
55
|
+
}
|
|
56
|
+
yield* sql`
|
|
57
|
+
CREATE TABLE ${sql(tables.testBaselines)} (
|
|
58
|
+
name TEXT NOT NULL,
|
|
59
|
+
variant TEXT NOT NULL,
|
|
60
|
+
testRun INTEGER NOT NULL REFERENCES ${sql(tables.testRuns)}(id),
|
|
61
|
+
PRIMARY KEY (name, variant)
|
|
62
|
+
);
|
|
63
|
+
`;
|
|
64
|
+
yield* sql`
|
|
65
|
+
CREATE TABLE ${sql(tables.testResults)} (
|
|
66
|
+
id TEXT PRIMARY KEY,
|
|
67
|
+
hashTestCase TEXT NOT NULL,
|
|
68
|
+
key TEXT NOT NULL,
|
|
69
|
+
input TEXT NOT NULL,
|
|
70
|
+
result TEXT NOT NULL,
|
|
71
|
+
expected TEXT NOT NULL,
|
|
72
|
+
label TEXT NOT NULL
|
|
73
|
+
);
|
|
74
|
+
`;
|
|
75
|
+
yield* sql`CREATE INDEX idx_tr_case_key ON ${sql(tables.testResults)}(hashTestCase, key);`;
|
|
76
|
+
yield* sql`
|
|
77
|
+
CREATE TABLE ${sql(tables.testRunResults)} (
|
|
78
|
+
testRun INTEGER NOT NULL REFERENCES ${sql(tables.testRuns)}(id) ON DELETE CASCADE,
|
|
79
|
+
testResult TEXT NOT NULL REFERENCES ${sql(tables.testResults)}(id),
|
|
80
|
+
ordering INTEGER NOT NULL,
|
|
81
|
+
resultOrdering INTEGER NOT NULL,
|
|
82
|
+
timeMillis REAL NOT NULL,
|
|
83
|
+
tags TEXT NOT NULL,
|
|
84
|
+
UNIQUE (testRun, testResult)
|
|
85
|
+
);
|
|
86
|
+
`;
|
|
87
|
+
yield* sql`CREATE INDEX idx_trr_testresult ON ${sql(tables.testRunResults)}(testResult);`;
|
|
88
|
+
yield* sql`CREATE INDEX idx_trr_run_order ON ${sql(tables.testRunResults)}(testRun, ordering, resultOrdering, testResult);`;
|
|
89
|
+
yield* sql.unsafe(`PRAGMA user_version = ${format[store]};`);
|
|
90
|
+
}));
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=test-repository-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-repository-schema.js","names":["Effect","Schema","RepositoryFormatError","tables","testResults","testRuns","testBaselines","testRunResults","format","cache","snapshot","decodeVersion","decodeUnknownEffect","Tuple","Struct","user_version","Int","checkFormat","fnUntraced","sql","store","path","saved","initializeSchema","withTransaction","gen","existing","length","unsafe"],"sources":["../../../src/internal/test-repository-schema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Effect, Option, Ref, Schema } from 'effect';
|
|
2
|
+
import { SqlClient } from 'effect/sql';
|
|
3
|
+
import { Stats } from '../Classify.js';
|
|
4
|
+
import { precision, recall } from './Classify.js';
|
|
5
|
+
const decodeName = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.Tuple([/*#__PURE__*/Schema.Struct({
|
|
6
|
+
name: Schema.String
|
|
7
|
+
})]));
|
|
8
|
+
const decodeTimes = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.Tuple([/*#__PURE__*/Schema.Struct({
|
|
9
|
+
count: Schema.Int,
|
|
10
|
+
mean: /*#__PURE__*/Schema.NullOr(Schema.Finite),
|
|
11
|
+
min: /*#__PURE__*/Schema.NullOr(Schema.Finite),
|
|
12
|
+
max: /*#__PURE__*/Schema.NullOr(Schema.Finite)
|
|
13
|
+
})]));
|
|
14
|
+
const decodeMedian = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Struct({
|
|
15
|
+
timeMillis: Schema.Finite
|
|
16
|
+
})));
|
|
17
|
+
export const withStats = /*#__PURE__*/Effect.fnUntraced(function* (use) {
|
|
18
|
+
const sql = yield* SqlClient.SqlClient;
|
|
19
|
+
const [{
|
|
20
|
+
name
|
|
21
|
+
}] = yield* decodeName(yield* sql`SELECT 'tots_stats_' || lower(hex(randomblob(16))) AS name;`);
|
|
22
|
+
return yield* Effect.acquireUseRelease(sql`CREATE TEMP TABLE ${sql(name)} (hashTestCase TEXT PRIMARY KEY, timeMillis REAL NOT NULL);`, () => Effect.gen(function* () {
|
|
23
|
+
yield* sql`CREATE INDEX ${sql(`${name}_time`)} ON ${sql(name)} (timeMillis);`;
|
|
24
|
+
const counts = yield* Ref.make({
|
|
25
|
+
TP: 0,
|
|
26
|
+
TN: 0,
|
|
27
|
+
FP: 0,
|
|
28
|
+
FN: 0,
|
|
29
|
+
total: 0
|
|
30
|
+
});
|
|
31
|
+
const add = Effect.fnUntraced(function* (results) {
|
|
32
|
+
for (let offset = 0; offset < results.length; offset += 50) {
|
|
33
|
+
const batch = results.slice(offset, offset + 50);
|
|
34
|
+
yield* sql`
|
|
35
|
+
INSERT INTO ${sql(name)} ${sql.insert(batch.map(({
|
|
36
|
+
hashTestCase,
|
|
37
|
+
timeMillis
|
|
38
|
+
}) => ({
|
|
39
|
+
hashTestCase,
|
|
40
|
+
timeMillis
|
|
41
|
+
})))}
|
|
42
|
+
ON CONFLICT(hashTestCase) DO NOTHING;
|
|
43
|
+
`;
|
|
44
|
+
yield* Ref.update(counts, previous => {
|
|
45
|
+
const next = {
|
|
46
|
+
...previous
|
|
47
|
+
};
|
|
48
|
+
for (const result of batch) {
|
|
49
|
+
next[result.label]++;
|
|
50
|
+
next.total++;
|
|
51
|
+
}
|
|
52
|
+
return next;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
const stats = Effect.gen(function* () {
|
|
57
|
+
const totals = yield* Ref.get(counts);
|
|
58
|
+
const [times] = yield* decodeTimes(yield* sql`
|
|
59
|
+
SELECT COUNT(*) AS count, AVG(timeMillis) AS mean,
|
|
60
|
+
MIN(timeMillis) AS min, MAX(timeMillis) AS max FROM ${sql(name)};
|
|
61
|
+
`);
|
|
62
|
+
const middle = times.count === 0 ? [] : yield* decodeMedian(yield* sql`
|
|
63
|
+
SELECT timeMillis FROM ${sql(name)} ORDER BY timeMillis
|
|
64
|
+
LIMIT ${2 - times.count % 2} OFFSET ${Math.floor((times.count - 1) / 2)};
|
|
65
|
+
`);
|
|
66
|
+
return new Stats({
|
|
67
|
+
...totals,
|
|
68
|
+
testCases: times.count,
|
|
69
|
+
precision: precision(totals),
|
|
70
|
+
recall: recall(totals),
|
|
71
|
+
timeMin: Option.fromNullishOr(times.min),
|
|
72
|
+
timeMax: Option.fromNullishOr(times.max),
|
|
73
|
+
timeMean: Option.fromNullishOr(times.mean),
|
|
74
|
+
timeMedian: middle.length === 0 ? Option.none() : Option.some(middle.reduce((sum, row) => sum + row.timeMillis, 0) / middle.length)
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
return yield* use({
|
|
78
|
+
add,
|
|
79
|
+
stats
|
|
80
|
+
});
|
|
81
|
+
}), () => sql`DROP TABLE ${sql(name)};`.pipe(Effect.asVoid));
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=test-result-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-result-stats.js","names":["Effect","Option","Ref","Schema","SqlClient","Stats","precision","recall","decodeName","decodeUnknownEffect","Tuple","Struct","name","String","decodeTimes","count","Int","mean","NullOr","Finite","min","max","decodeMedian","Array","timeMillis","withStats","fnUntraced","use","sql","acquireUseRelease","gen","counts","make","TP","TN","FP","FN","total","add","results","offset","length","batch","slice","insert","map","hashTestCase","update","previous","next","result","label","stats","totals","get","times","middle","Math","floor","testCases","timeMin","fromNullishOr","timeMax","timeMean","timeMedian","none","some","reduce","sum","row","pipe","asVoid"],"sources":["../../../src/internal/test-result-stats.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.TestRun = void 0;
|
|
7
|
-
var _effect = /*#__PURE__*/require("effect");
|
|
8
|
-
class TestRun extends /*#__PURE__*/_effect.Schema.Class('TestRun')({
|
|
9
|
-
id: _effect.Schema.Int,
|
|
10
|
-
name: _effect.Schema.String,
|
|
11
|
-
hash: /*#__PURE__*/_effect.Schema.NullOr(_effect.Schema.String)
|
|
12
|
-
}) {}
|
|
13
|
-
exports.TestRun = TestRun;
|
|
14
|
-
//# sourceMappingURL=Test.repository.types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Test.repository.types.js","names":["_effect","require","TestRun","Schema","Class","id","Int","name","String","hash","NullOr","exports"],"sources":["../../src/Test.repository.types.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AAoBM,MAAOC,OAAQ,sBAAQC,cAAM,CAACC,KAAK,CAAU,SAAS,CAAC,CAAC;EAC1DC,EAAE,EAAEF,cAAM,CAACG,GAAG;EACdC,IAAI,EAAEJ,cAAM,CAACK,MAAM;EACnBC,IAAI,eAAEN,cAAM,CAACO,MAAM,CAACP,cAAM,CAACK,MAAM;CACpC,CAAC;AAAGG,OAAA,CAAAT,OAAA,GAAAA,OAAA","ignoreList":[]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.split = void 0;
|
|
7
|
-
var _effect = /*#__PURE__*/require("effect");
|
|
8
|
-
/** An empty tag list is stored as an empty string. */
|
|
9
|
-
const split = separator => _effect.Schema.String.pipe(_effect.Schema.decodeTo(_effect.Schema.Array(_effect.Schema.String), _effect.SchemaTransformation.transform({
|
|
10
|
-
decode: s => s.length === 0 ? [] : s.split(separator),
|
|
11
|
-
encode: xs => xs.join(separator)
|
|
12
|
-
})));
|
|
13
|
-
exports.split = split;
|
|
14
|
-
//# sourceMappingURL=Schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","names":["_effect","require","split","separator","Schema","String","pipe","decodeTo","Array","SchemaTransformation","transform","decode","s","length","encode","xs","join","exports"],"sources":["../../../../src/internal/lib/Schema.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AAEA;AACO,MAAMC,KAAK,GACdC,SAAiB,IAEjBC,cAAM,CAACC,MAAM,CAACC,IAAI,CACdF,cAAM,CAACG,QAAQ,CACXH,cAAM,CAACI,KAAK,CAACJ,cAAM,CAACC,MAAM,CAAC,EAC3BI,4BAAoB,CAACC,SAAS,CAAC;EAC3BC,MAAM,EAAGC,CAAC,IACNA,CAAC,CAACC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAGD,CAAC,CAACV,KAAK,CAACC,SAAS,CAAC;EAC5CW,MAAM,EAAEC,EAAE,IAAIA,EAAE,CAACC,IAAI,CAACb,SAAS;CAClC,CAAC,CACL,CACJ;AAACc,OAAA,CAAAf,KAAA,GAAAA,KAAA","ignoreList":[]}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { type Effect, type Option, Schema, type Stream } from 'effect';
|
|
2
|
-
import type { Label } from './Classify.js';
|
|
3
|
-
import type { RepositoryError } from './RepositoryError.js';
|
|
4
|
-
import type { TestResult } from './Test.js';
|
|
5
|
-
export type TestResultRead = {
|
|
6
|
-
id: string;
|
|
7
|
-
hashTestCase: string;
|
|
8
|
-
key: string;
|
|
9
|
-
ordering: number;
|
|
10
|
-
resultOrdering: number;
|
|
11
|
-
label: Label;
|
|
12
|
-
input: string;
|
|
13
|
-
result: string;
|
|
14
|
-
expected: string;
|
|
15
|
-
tags: string;
|
|
16
|
-
timeMillis: number;
|
|
17
|
-
};
|
|
18
|
-
declare const TestRun_base: Schema.Class<TestRun, Schema.Struct<{
|
|
19
|
-
readonly id: Schema.Int;
|
|
20
|
-
readonly name: Schema.String;
|
|
21
|
-
readonly hash: Schema.NullOr<Schema.String>;
|
|
22
|
-
}>, {}>;
|
|
23
|
-
export declare class TestRun extends TestRun_base {
|
|
24
|
-
}
|
|
25
|
-
export type TestRunResults = {
|
|
26
|
-
testRun: number;
|
|
27
|
-
testResult: string;
|
|
28
|
-
ordering: number;
|
|
29
|
-
resultOrdering: number;
|
|
30
|
-
timeMillis: number;
|
|
31
|
-
};
|
|
32
|
-
/** Decode stored input and evaluated values, including values from prior runs. */
|
|
33
|
-
export type TestResultSchemas<I = unknown, O = unknown, T = unknown> = {
|
|
34
|
-
input: Schema.Codec<I>;
|
|
35
|
-
result: Schema.Codec<O>;
|
|
36
|
-
expected: Schema.Codec<T>;
|
|
37
|
-
};
|
|
38
|
-
export type TestRepositoryShape = {
|
|
39
|
-
clearStale: ({ name, keep, }: {
|
|
40
|
-
name: string;
|
|
41
|
-
keep?: number;
|
|
42
|
-
}) => Effect.Effect<void, RepositoryError>;
|
|
43
|
-
clearUncommitedTestResults: ({ name, }: {
|
|
44
|
-
name: string;
|
|
45
|
-
}) => Effect.Effect<void, RepositoryError>;
|
|
46
|
-
getTestResultsStream: <I = unknown, O = unknown, T = unknown>(testRun: TestRun, schemas?: TestResultSchemas<I, O, T>) => Stream.Stream<TestResult<I, O, T>, RepositoryError>;
|
|
47
|
-
hasResults: (testRun: TestRun) => Effect.Effect<boolean, RepositoryError>;
|
|
48
|
-
getAllTestResults: Effect.Effect<readonly TestResult[], RepositoryError>;
|
|
49
|
-
getAllTestRuns: Effect.Effect<readonly TestRun[], RepositoryError>;
|
|
50
|
-
getAllTestRunResults: Effect.Effect<readonly TestRunResults[], RepositoryError>;
|
|
51
|
-
getLastTestRunHash: (name: string) => Effect.Effect<Option.Option<string>, RepositoryError>;
|
|
52
|
-
getOrCreateCurrentTestRun: (name: string) => Effect.Effect<TestRun, RepositoryError>;
|
|
53
|
-
getPreviousTestRun: (name: string) => Effect.Effect<Option.Option<TestRun>, RepositoryError>;
|
|
54
|
-
commitCurrentTestRun: (input: {
|
|
55
|
-
name: string;
|
|
56
|
-
hash: string;
|
|
57
|
-
}) => Effect.Effect<void, RepositoryError>;
|
|
58
|
-
insertTestResult: (input: TestResult, testRun: TestRun) => Effect.Effect<void, RepositoryError>;
|
|
59
|
-
insertTestResults: (inputs: ReadonlyArray<TestResult>, testRun: TestRun) => Effect.Effect<void, RepositoryError>;
|
|
60
|
-
};
|
|
61
|
-
export {};
|
|
62
|
-
//# sourceMappingURL=Test.repository.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Test.repository.types.d.ts","sourceRoot":"","sources":["../../src/Test.repository.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../src/internal/lib/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAuB,MAAM,QAAQ,CAAC;AAEpD,sDAAsD;AACtD,eAAO,MAAM,KAAK,cACH,MAAM,KAClB,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,EAAE,EAAE,MAAM,CAUpC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Test.repository.types.js","names":["Schema","TestRun","Class","id","Int","name","String","hash","NullOr"],"sources":["../../src/Test.repository.types.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAkCA,MAAM,QAAoB,QAAQ;AAoBpE,OAAM,MAAOC,OAAQ,sBAAQD,MAAM,CAACE,KAAK,CAAU,SAAS,CAAC,CAAC;EAC1DC,EAAE,EAAEH,MAAM,CAACI,GAAG;EACdC,IAAI,EAAEL,MAAM,CAACM,MAAM;EACnBC,IAAI,eAAEP,MAAM,CAACQ,MAAM,CAACR,MAAM,CAACM,MAAM;CACpC,CAAC","ignoreList":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Schema, SchemaTransformation } from 'effect';
|
|
2
|
-
/** An empty tag list is stored as an empty string. */
|
|
3
|
-
export const split = separator => Schema.String.pipe(Schema.decodeTo(Schema.Array(Schema.String), SchemaTransformation.transform({
|
|
4
|
-
decode: s => s.length === 0 ? [] : s.split(separator),
|
|
5
|
-
encode: xs => xs.join(separator)
|
|
6
|
-
})));
|
|
7
|
-
//# sourceMappingURL=Schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","names":["Schema","SchemaTransformation","split","separator","String","pipe","decodeTo","Array","transform","decode","s","length","encode","xs","join"],"sources":["../../../../src/internal/lib/Schema.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAQA,MAAM,EAAEC,oBAAoB,QAAO,QAAQ;AAEnD;AACA,OAAO,MAAMC,KAAK,GACdC,SAAiB,IAEjBH,MAAM,CAACI,MAAM,CAACC,IAAI,CACdL,MAAM,CAACM,QAAQ,CACXN,MAAM,CAACO,KAAK,CAACP,MAAM,CAACI,MAAM,CAAC,EAC3BH,oBAAoB,CAACO,SAAS,CAAC;EAC3BC,MAAM,EAAGC,CAAC,IACNA,CAAC,CAACC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAGD,CAAC,CAACR,KAAK,CAACC,SAAS,CAAC;EAC5CS,MAAM,EAAEC,EAAE,IAAIA,EAAE,CAACC,IAAI,CAACX,SAAS;CAClC,CAAC,CACL,CACJ","ignoreList":[]}
|