@effect/vitest 0.4.4 → 0.5.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/dist/cjs/index.js +22 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/index.js +22 -6
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +24 -6
package/dist/cjs/index.js
CHANGED
|
@@ -13,9 +13,11 @@ var _exportNames = {
|
|
|
13
13
|
it: true
|
|
14
14
|
};
|
|
15
15
|
exports.scopedLive = exports.scoped = exports.live = exports.it = exports.flakyTest = exports.effect = exports.addEqualityTesters = void 0;
|
|
16
|
+
var Cause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Cause"));
|
|
16
17
|
var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Duration"));
|
|
17
18
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
18
19
|
var Equal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Equal"));
|
|
20
|
+
var Exit = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Exit"));
|
|
19
21
|
var _Function = /*#__PURE__*/require("effect/Function");
|
|
20
22
|
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
21
23
|
var Logger = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Logger"));
|
|
@@ -59,6 +61,20 @@ function _interopRequireWildcard(e, r) {
|
|
|
59
61
|
}
|
|
60
62
|
return n.default = e, t && t.set(e, n), n;
|
|
61
63
|
}
|
|
64
|
+
const runTest = effect => Effect.gen(function* () {
|
|
65
|
+
const exit = yield* Effect.exit(effect);
|
|
66
|
+
if (Exit.isSuccess(exit)) {
|
|
67
|
+
return () => {};
|
|
68
|
+
} else {
|
|
69
|
+
const errors = Cause.prettyErrors(exit.cause);
|
|
70
|
+
for (let i = 1; i < errors.length; i++) {
|
|
71
|
+
yield* Effect.logError(errors[i]);
|
|
72
|
+
}
|
|
73
|
+
return () => {
|
|
74
|
+
throw errors[0];
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}).pipe(Effect.runPromise).then(f => f());
|
|
62
78
|
const TestEnv = /*#__PURE__*/TestEnvironment.TestContext.pipe( /*#__PURE__*/Layer.provide( /*#__PURE__*/Logger.remove(Logger.defaultLogger)));
|
|
63
79
|
/** @internal */
|
|
64
80
|
function customTester(a, b, customTesters) {
|
|
@@ -78,16 +94,16 @@ const addEqualityTesters = () => {
|
|
|
78
94
|
*/
|
|
79
95
|
exports.addEqualityTesters = addEqualityTesters;
|
|
80
96
|
const effect = exports.effect = /*#__PURE__*/(() => {
|
|
81
|
-
const f = (name, self, timeout = 5_000) => it(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.provide(TestEnv),
|
|
97
|
+
const f = (name, self, timeout = 5_000) => it(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.provide(TestEnv), runTest), timeout);
|
|
82
98
|
return Object.assign(f, {
|
|
83
|
-
skip: (name, self, timeout = 5_000) => it.skip(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.provide(TestEnv),
|
|
84
|
-
only: (name, self, timeout = 5_000) => it.only(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.provide(TestEnv),
|
|
99
|
+
skip: (name, self, timeout = 5_000) => it.skip(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.provide(TestEnv), runTest), timeout),
|
|
100
|
+
only: (name, self, timeout = 5_000) => it.only(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.provide(TestEnv), runTest), timeout)
|
|
85
101
|
});
|
|
86
102
|
})();
|
|
87
103
|
/**
|
|
88
104
|
* @since 1.0.0
|
|
89
105
|
*/
|
|
90
|
-
const live = (name, self, timeout = 5_000) => it(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)),
|
|
106
|
+
const live = (name, self, timeout = 5_000) => it(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), runTest), timeout);
|
|
91
107
|
/**
|
|
92
108
|
* @since 1.0.0
|
|
93
109
|
*/
|
|
@@ -97,12 +113,12 @@ const flakyTest = (self, timeout = Duration.seconds(30)) => (0, _Function.pipe)(
|
|
|
97
113
|
* @since 1.0.0
|
|
98
114
|
*/
|
|
99
115
|
exports.flakyTest = flakyTest;
|
|
100
|
-
const scoped = (name, self, timeout = 5_000) => it(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.scoped, Effect.provide(TestEnv),
|
|
116
|
+
const scoped = (name, self, timeout = 5_000) => it(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.scoped, Effect.provide(TestEnv), runTest), timeout);
|
|
101
117
|
/**
|
|
102
118
|
* @since 1.0.0
|
|
103
119
|
*/
|
|
104
120
|
exports.scoped = scoped;
|
|
105
|
-
const scopedLive = (name, self, timeout = 5_000) => it(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.scoped,
|
|
121
|
+
const scopedLive = (name, self, timeout = 5_000) => it(name, c => (0, _Function.pipe)(Effect.suspend(() => self(c)), Effect.scoped, runTest), timeout);
|
|
106
122
|
exports.scopedLive = scopedLive;
|
|
107
123
|
const methods = {
|
|
108
124
|
effect,
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["Cause","_interopRequireWildcard","require","Duration","Effect","Equal","Exit","_Function","Layer","Logger","Schedule","TestEnvironment","Utils","V","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","runTest","effect","gen","exit","isSuccess","errors","prettyErrors","cause","length","logError","pipe","runPromise","then","f","TestEnv","TestContext","provide","remove","defaultLogger","customTester","b","customTesters","isEqual","undefined","structuralRegion","equals","x","y","filter","addEqualityTesters","expect","name","self","timeout","it","c","suspend","assign","skip","only","live","flakyTest","seconds","catchAllDefect","fail","retry","recurs","compose","elapsed","whileOutput","lessThanOrEqualTo","orDie","scoped","scopedLive","methods"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause";
|
|
1
2
|
import * as Duration from "effect/Duration";
|
|
2
3
|
import * as Effect from "effect/Effect";
|
|
3
4
|
import * as Equal from "effect/Equal";
|
|
5
|
+
import * as Exit from "effect/Exit";
|
|
4
6
|
import { pipe } from "effect/Function";
|
|
5
7
|
import * as Layer from "effect/Layer";
|
|
6
8
|
import * as Logger from "effect/Logger";
|
|
@@ -8,6 +10,20 @@ import * as Schedule from "effect/Schedule";
|
|
|
8
10
|
import * as TestEnvironment from "effect/TestContext";
|
|
9
11
|
import * as Utils from "effect/Utils";
|
|
10
12
|
import * as V from "vitest";
|
|
13
|
+
const runTest = effect => Effect.gen(function* () {
|
|
14
|
+
const exit = yield* Effect.exit(effect);
|
|
15
|
+
if (Exit.isSuccess(exit)) {
|
|
16
|
+
return () => {};
|
|
17
|
+
} else {
|
|
18
|
+
const errors = Cause.prettyErrors(exit.cause);
|
|
19
|
+
for (let i = 1; i < errors.length; i++) {
|
|
20
|
+
yield* Effect.logError(errors[i]);
|
|
21
|
+
}
|
|
22
|
+
return () => {
|
|
23
|
+
throw errors[0];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}).pipe(Effect.runPromise).then(f => f());
|
|
11
27
|
const TestEnv = /*#__PURE__*/TestEnvironment.TestContext.pipe( /*#__PURE__*/Layer.provide( /*#__PURE__*/Logger.remove(Logger.defaultLogger)));
|
|
12
28
|
/** @internal */
|
|
13
29
|
function customTester(a, b, customTesters) {
|
|
@@ -26,16 +42,16 @@ export const addEqualityTesters = () => {
|
|
|
26
42
|
* @since 1.0.0
|
|
27
43
|
*/
|
|
28
44
|
export const effect = /*#__PURE__*/(() => {
|
|
29
|
-
const f = (name, self, timeout = 5_000) => it(name, c => pipe(Effect.suspend(() => self(c)), Effect.provide(TestEnv),
|
|
45
|
+
const f = (name, self, timeout = 5_000) => it(name, c => pipe(Effect.suspend(() => self(c)), Effect.provide(TestEnv), runTest), timeout);
|
|
30
46
|
return Object.assign(f, {
|
|
31
|
-
skip: (name, self, timeout = 5_000) => it.skip(name, c => pipe(Effect.suspend(() => self(c)), Effect.provide(TestEnv),
|
|
32
|
-
only: (name, self, timeout = 5_000) => it.only(name, c => pipe(Effect.suspend(() => self(c)), Effect.provide(TestEnv),
|
|
47
|
+
skip: (name, self, timeout = 5_000) => it.skip(name, c => pipe(Effect.suspend(() => self(c)), Effect.provide(TestEnv), runTest), timeout),
|
|
48
|
+
only: (name, self, timeout = 5_000) => it.only(name, c => pipe(Effect.suspend(() => self(c)), Effect.provide(TestEnv), runTest), timeout)
|
|
33
49
|
});
|
|
34
50
|
})();
|
|
35
51
|
/**
|
|
36
52
|
* @since 1.0.0
|
|
37
53
|
*/
|
|
38
|
-
export const live = (name, self, timeout = 5_000) => it(name, c => pipe(Effect.suspend(() => self(c)),
|
|
54
|
+
export const live = (name, self, timeout = 5_000) => it(name, c => pipe(Effect.suspend(() => self(c)), runTest), timeout);
|
|
39
55
|
/**
|
|
40
56
|
* @since 1.0.0
|
|
41
57
|
*/
|
|
@@ -43,11 +59,11 @@ export const flakyTest = (self, timeout = Duration.seconds(30)) => pipe(Effect.c
|
|
|
43
59
|
/**
|
|
44
60
|
* @since 1.0.0
|
|
45
61
|
*/
|
|
46
|
-
export const scoped = (name, self, timeout = 5_000) => it(name, c => pipe(Effect.suspend(() => self(c)), Effect.scoped, Effect.provide(TestEnv),
|
|
62
|
+
export const scoped = (name, self, timeout = 5_000) => it(name, c => pipe(Effect.suspend(() => self(c)), Effect.scoped, Effect.provide(TestEnv), runTest), timeout);
|
|
47
63
|
/**
|
|
48
64
|
* @since 1.0.0
|
|
49
65
|
*/
|
|
50
|
-
export const scopedLive = (name, self, timeout = 5_000) => it(name, c => pipe(Effect.suspend(() => self(c)), Effect.scoped,
|
|
66
|
+
export const scopedLive = (name, self, timeout = 5_000) => it(name, c => pipe(Effect.suspend(() => self(c)), Effect.scoped, runTest), timeout);
|
|
51
67
|
const methods = {
|
|
52
68
|
effect,
|
|
53
69
|
live,
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Duration","Effect","Equal","pipe","Layer","Logger","Schedule","TestEnvironment","Utils","V","TestEnv","TestContext","provide","remove","defaultLogger","customTester","a","b","customTesters","isEqual","undefined","structuralRegion","equals","x","y","filter","t","addEqualityTesters","expect","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Cause","Duration","Effect","Equal","Exit","pipe","Layer","Logger","Schedule","TestEnvironment","Utils","V","runTest","effect","gen","exit","isSuccess","errors","prettyErrors","cause","i","length","logError","runPromise","then","f","TestEnv","TestContext","provide","remove","defaultLogger","customTester","a","b","customTesters","isEqual","undefined","structuralRegion","equals","x","y","filter","t","addEqualityTesters","expect","name","self","timeout","it","c","suspend","Object","assign","skip","only","live","flakyTest","seconds","catchAllDefect","fail","retry","recurs","compose","elapsed","whileOutput","lessThanOrEqualTo","orDie","scoped","scopedLive","methods"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAE3C,OAAO,KAAKC,eAAe,MAAM,oBAAoB;AAErD,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,OAAO,KAAKC,CAAC,MAAM,QAAQ;AAE3B,MAAMC,OAAO,GAAUC,MAA2B,IAChDX,MAAM,CAACY,GAAG,CAAC,aAAS;EAClB,MAAMC,IAAI,GAAoB,OAAOb,MAAM,CAACa,IAAI,CAACF,MAAM,CAAC;EACxD,IAAIT,IAAI,CAACY,SAAS,CAACD,IAAI,CAAC,EAAE;IACxB,OAAO,MAAK,CAAE,CAAC;EACjB,CAAC,MAAM;IACL,MAAME,MAAM,GAAGjB,KAAK,CAACkB,YAAY,CAACH,IAAI,CAACI,KAAK,CAAC;IAC7C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,MAAM,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;MACtC,OAAOlB,MAAM,CAACoB,QAAQ,CAACL,MAAM,CAACG,CAAC,CAAC,CAAC;IACnC;IACA,OAAO,MAAK;MACV,MAAMH,MAAM,CAAC,CAAC,CAAC;IACjB,CAAC;EACH;AACF,CAAC,CAAC,CAACZ,IAAI,CAACH,MAAM,CAACqB,UAAU,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,EAAE,CAAC;AAO7C,MAAMC,OAAO,gBAAGjB,eAAe,CAACkB,WAAW,CAACtB,IAAI,eAC9CC,KAAK,CAACsB,OAAO,eAACrB,MAAM,CAACsB,MAAM,CAACtB,MAAM,CAACuB,aAAa,CAAC,CAAC,CACnD;AAED;AACA,SAASC,YAAYA,CAAsBC,CAAU,EAAEC,CAAU,EAAEC,aAA4B;EAC7F,IAAI,CAAC/B,KAAK,CAACgC,OAAO,CAACH,CAAC,CAAC,IAAI,CAAC7B,KAAK,CAACgC,OAAO,CAACF,CAAC,CAAC,EAAE;IAC1C,OAAOG,SAAS;EAClB;EACA,OAAO1B,KAAK,CAAC2B,gBAAgB,CAC3B,MAAMlC,KAAK,CAACmC,MAAM,CAACN,CAAC,EAAEC,CAAC,CAAC,EACxB,CAACM,CAAC,EAAEC,CAAC,KAAK,IAAI,CAACF,MAAM,CAACC,CAAC,EAAEC,CAAC,EAAEN,aAAa,CAACO,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKX,YAAY,CAAC,CAAC,CAC7E;AACH;AAEA;;;AAGA,OAAO,MAAMY,kBAAkB,GAAGA,CAAA,KAAK;EACrChC,CAAC,CAACiC,MAAM,CAACD,kBAAkB,CAAC,CAACZ,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED;;;AAGA,OAAO,MAAMlB,MAAM,gBAAG,CAAC,MAAK;EAC1B,MAAMY,CAAC,GAAGA,CACRoB,IAAY,EACZC,IAAwG,EACxGC,OAAA,GAAkC,KAAK,KAEvCC,EAAE,CACAH,IAAI,EACHI,CAAC,IACA5C,IAAI,CACFH,MAAM,CAACgD,OAAO,CAAC,MAAMJ,IAAI,CAACG,CAAC,CAAC,CAAC,EAC7B/C,MAAM,CAAC0B,OAAO,CAACF,OAAO,CAAC,EACvBd,OAAO,CACR,EACHmC,OAAO,CACR;EACH,OAAOI,MAAM,CAACC,MAAM,CAAC3B,CAAC,EAAE;IACtB4B,IAAI,EAAEA,CACJR,IAAY,EACZC,IAAwG,EACxGC,OAAO,GAAG,KAAK,KAEfC,EAAE,CAACK,IAAI,CACLR,IAAI,EACHI,CAAC,IACA5C,IAAI,CACFH,MAAM,CAACgD,OAAO,CAAC,MAAMJ,IAAI,CAACG,CAAC,CAAC,CAAC,EAC7B/C,MAAM,CAAC0B,OAAO,CAACF,OAAO,CAAC,EACvBd,OAAO,CACR,EACHmC,OAAO,CACR;IACHO,IAAI,EAAEA,CACJT,IAAY,EACZC,IAAwG,EACxGC,OAAO,GAAG,KAAK,KAEfC,EAAE,CAACM,IAAI,CACLT,IAAI,EACHI,CAAC,IACA5C,IAAI,CACFH,MAAM,CAACgD,OAAO,CAAC,MAAMJ,IAAI,CAACG,CAAC,CAAC,CAAC,EAC7B/C,MAAM,CAAC0B,OAAO,CAACF,OAAO,CAAC,EACvBd,OAAO,CACR,EACHmC,OAAO;GAEZ,CAAC;AACJ,CAAC,EAAC,CAAE;AAEJ;;;AAGA,OAAO,MAAMQ,IAAI,GAAGA,CAClBV,IAAY,EACZC,IAA6E,EAC7EC,OAAO,GAAG,KAAK,KAEfC,EAAE,CACAH,IAAI,EACHI,CAAC,IACA5C,IAAI,CACFH,MAAM,CAACgD,OAAO,CAAC,MAAMJ,IAAI,CAACG,CAAC,CAAC,CAAC,EAC7BrC,OAAO,CACR,EACHmC,OAAO,CACR;AAEH;;;AAGA,OAAO,MAAMS,SAAS,GAAGA,CACvBV,IAA4B,EAC5BC,OAAA,GAA6B9C,QAAQ,CAACwD,OAAO,CAAC,EAAE,CAAC,KAEjDpD,IAAI,CACFH,MAAM,CAACwD,cAAc,CAACZ,IAAI,EAAE5C,MAAM,CAACyD,IAAI,CAAC,EACxCzD,MAAM,CAAC0D,KAAK,CACVvD,IAAI,CACFG,QAAQ,CAACqD,MAAM,CAAC,EAAE,CAAC,EACnBrD,QAAQ,CAACsD,OAAO,CAACtD,QAAQ,CAACuD,OAAO,CAAC,EAClCvD,QAAQ,CAACwD,WAAW,CAAC/D,QAAQ,CAACgE,iBAAiB,CAAClB,OAAO,CAAC,CAAC,CAC1D,CACF,EACD7C,MAAM,CAACgE,KAAK,CACb;AAEH;;;AAGA,OAAO,MAAMC,MAAM,GAAGA,CACpBtB,IAAY,EACZC,IAEiE,EACjEC,OAAO,GAAG,KAAK,KAEfC,EAAE,CACAH,IAAI,EACHI,CAAC,IACA5C,IAAI,CACFH,MAAM,CAACgD,OAAO,CAAC,MAAMJ,IAAI,CAACG,CAAC,CAAC,CAAC,EAC7B/C,MAAM,CAACiE,MAAM,EACbjE,MAAM,CAAC0B,OAAO,CAACF,OAAO,CAAC,EACvBd,OAAO,CACR,EACHmC,OAAO,CACR;AAEH;;;AAGA,OAAO,MAAMqB,UAAU,GAAGA,CACxBvB,IAAY,EACZC,IAA0F,EAC1FC,OAAO,GAAG,KAAK,KAEfC,EAAE,CACAH,IAAI,EACHI,CAAC,IACA5C,IAAI,CACFH,MAAM,CAACgD,OAAO,CAAC,MAAMJ,IAAI,CAACG,CAAC,CAAC,CAAC,EAC7B/C,MAAM,CAACiE,MAAM,EACbvD,OAAO,CACR,EACHmC,OAAO,CACR;AAEH,MAAMsB,OAAO,GAAG;EAAExD,MAAM;EAAE0C,IAAI;EAAEC,SAAS;EAAEW,MAAM;EAAEC;AAAU,CAAW;AAExE;;;AAGA,OAAO,MAAMpB,EAAE,gBAAyBG,MAAM,CAACC,MAAM,CACnDzC,CAAC,CAACqC,EAAE,EACJqB,OAAO,CACR;AAED;;;AAGA,cAAc,QAAQ","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/vitest",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "A set of helpers for testing Effects with vitest",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"sideEffects": [],
|
|
12
12
|
"peerDependencies": {
|
|
13
13
|
"vitest": "^1.4.0",
|
|
14
|
-
"effect": "^3.
|
|
14
|
+
"effect": "^3.2.0"
|
|
15
15
|
},
|
|
16
16
|
"publishConfig": {
|
|
17
17
|
"provenance": true
|
package/src/index.ts
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import type { Tester, TesterContext } from "@vitest/expect"
|
|
5
|
+
import * as Cause from "effect/Cause"
|
|
5
6
|
import * as Duration from "effect/Duration"
|
|
6
7
|
import * as Effect from "effect/Effect"
|
|
7
8
|
import * as Equal from "effect/Equal"
|
|
9
|
+
import * as Exit from "effect/Exit"
|
|
8
10
|
import { pipe } from "effect/Function"
|
|
9
11
|
import * as Layer from "effect/Layer"
|
|
10
12
|
import * as Logger from "effect/Logger"
|
|
@@ -16,6 +18,22 @@ import * as Utils from "effect/Utils"
|
|
|
16
18
|
import type { TestAPI } from "vitest"
|
|
17
19
|
import * as V from "vitest"
|
|
18
20
|
|
|
21
|
+
const runTest = <E, A>(effect: Effect.Effect<A, E>) =>
|
|
22
|
+
Effect.gen(function*() {
|
|
23
|
+
const exit: Exit.Exit<A, E> = yield* Effect.exit(effect)
|
|
24
|
+
if (Exit.isSuccess(exit)) {
|
|
25
|
+
return () => {}
|
|
26
|
+
} else {
|
|
27
|
+
const errors = Cause.prettyErrors(exit.cause)
|
|
28
|
+
for (let i = 1; i < errors.length; i++) {
|
|
29
|
+
yield* Effect.logError(errors[i])
|
|
30
|
+
}
|
|
31
|
+
return () => {
|
|
32
|
+
throw errors[0]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}).pipe(Effect.runPromise).then((f) => f())
|
|
36
|
+
|
|
19
37
|
/**
|
|
20
38
|
* @since 1.0.0
|
|
21
39
|
*/
|
|
@@ -58,7 +76,7 @@ export const effect = (() => {
|
|
|
58
76
|
pipe(
|
|
59
77
|
Effect.suspend(() => self(c)),
|
|
60
78
|
Effect.provide(TestEnv),
|
|
61
|
-
|
|
79
|
+
runTest
|
|
62
80
|
),
|
|
63
81
|
timeout
|
|
64
82
|
)
|
|
@@ -74,7 +92,7 @@ export const effect = (() => {
|
|
|
74
92
|
pipe(
|
|
75
93
|
Effect.suspend(() => self(c)),
|
|
76
94
|
Effect.provide(TestEnv),
|
|
77
|
-
|
|
95
|
+
runTest
|
|
78
96
|
),
|
|
79
97
|
timeout
|
|
80
98
|
),
|
|
@@ -89,7 +107,7 @@ export const effect = (() => {
|
|
|
89
107
|
pipe(
|
|
90
108
|
Effect.suspend(() => self(c)),
|
|
91
109
|
Effect.provide(TestEnv),
|
|
92
|
-
|
|
110
|
+
runTest
|
|
93
111
|
),
|
|
94
112
|
timeout
|
|
95
113
|
)
|
|
@@ -109,7 +127,7 @@ export const live = <E, A>(
|
|
|
109
127
|
(c) =>
|
|
110
128
|
pipe(
|
|
111
129
|
Effect.suspend(() => self(c)),
|
|
112
|
-
|
|
130
|
+
runTest
|
|
113
131
|
),
|
|
114
132
|
timeout
|
|
115
133
|
)
|
|
@@ -150,7 +168,7 @@ export const scoped = <E, A>(
|
|
|
150
168
|
Effect.suspend(() => self(c)),
|
|
151
169
|
Effect.scoped,
|
|
152
170
|
Effect.provide(TestEnv),
|
|
153
|
-
|
|
171
|
+
runTest
|
|
154
172
|
),
|
|
155
173
|
timeout
|
|
156
174
|
)
|
|
@@ -169,7 +187,7 @@ export const scopedLive = <E, A>(
|
|
|
169
187
|
pipe(
|
|
170
188
|
Effect.suspend(() => self(c)),
|
|
171
189
|
Effect.scoped,
|
|
172
|
-
|
|
190
|
+
runTest
|
|
173
191
|
),
|
|
174
192
|
timeout
|
|
175
193
|
)
|