@effect/vitest 0.8.0 → 0.8.2
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/internal.js +16 -9
- package/dist/cjs/internal.js.map +1 -1
- package/dist/esm/internal.js +16 -9
- package/dist/esm/internal.js.map +1 -1
- package/package.json +2 -2
- package/src/internal.ts +31 -11
package/dist/cjs/internal.js
CHANGED
|
@@ -9,9 +9,11 @@ var Duration = _interopRequireWildcard(require("effect/Duration"));
|
|
|
9
9
|
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
10
10
|
var Equal = _interopRequireWildcard(require("effect/Equal"));
|
|
11
11
|
var Exit = _interopRequireWildcard(require("effect/Exit"));
|
|
12
|
+
var Fiber = _interopRequireWildcard(require("effect/Fiber"));
|
|
12
13
|
var _Function = require("effect/Function");
|
|
13
14
|
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
14
15
|
var Logger = _interopRequireWildcard(require("effect/Logger"));
|
|
16
|
+
var Runtime = _interopRequireWildcard(require("effect/Runtime"));
|
|
15
17
|
var Schedule = _interopRequireWildcard(require("effect/Schedule"));
|
|
16
18
|
var TestEnvironment = _interopRequireWildcard(require("effect/TestContext"));
|
|
17
19
|
var Utils = _interopRequireWildcard(require("effect/Utils"));
|
|
@@ -19,8 +21,11 @@ var V = _interopRequireWildcard(require("vitest"));
|
|
|
19
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
22
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
23
|
/** @internal */
|
|
22
|
-
const runTest = effect => Effect.gen(function* () {
|
|
23
|
-
const
|
|
24
|
+
const runTest = ctx => effect => Effect.gen(function* () {
|
|
25
|
+
const exitFiber = yield* Effect.fork(Effect.exit(effect));
|
|
26
|
+
const runtime = yield* Effect.runtime();
|
|
27
|
+
ctx.onTestFinished(() => Fiber.interrupt(exitFiber).pipe(Effect.asVoid, Runtime.runPromise(runtime)));
|
|
28
|
+
const exit = yield* Fiber.join(exitFiber);
|
|
24
29
|
if (Exit.isSuccess(exit)) {
|
|
25
30
|
return () => {};
|
|
26
31
|
} else {
|
|
@@ -49,13 +54,15 @@ const addEqualityTesters = () => {
|
|
|
49
54
|
/** @internal */
|
|
50
55
|
exports.addEqualityTesters = addEqualityTesters;
|
|
51
56
|
const makeTester = mapEffect => {
|
|
52
|
-
const run =
|
|
53
|
-
const f = (name, self, timeout) => V.it(name, run(self), timeout);
|
|
54
|
-
const skip = (name, self, timeout) => V.it.skip(name, run(self), timeout);
|
|
55
|
-
const skipIf = condition => (name, self, timeout) => V.it.skipIf(condition)(name, run(self), timeout);
|
|
56
|
-
const runIf = condition => (name, self, timeout) => V.it.runIf(condition)(name, run(self), timeout);
|
|
57
|
-
const only = (name, self, timeout) => V.it.only(name, run(self), timeout);
|
|
58
|
-
const each = cases => (name, self, timeout) => V.it.
|
|
57
|
+
const run = (ctx, args, self) => (0, _Function.pipe)(Effect.suspend(() => self(...args)), mapEffect, runTest(ctx));
|
|
58
|
+
const f = (name, self, timeout) => V.it(name, ctx => run(ctx, [ctx], self), timeout);
|
|
59
|
+
const skip = (name, self, timeout) => V.it.skip(name, ctx => run(ctx, [ctx], self), timeout);
|
|
60
|
+
const skipIf = condition => (name, self, timeout) => V.it.skipIf(condition)(name, ctx => run(ctx, [ctx], self), timeout);
|
|
61
|
+
const runIf = condition => (name, self, timeout) => V.it.runIf(condition)(name, ctx => run(ctx, [ctx], self), timeout);
|
|
62
|
+
const only = (name, self, timeout) => V.it.only(name, ctx => run(ctx, [ctx], self), timeout);
|
|
63
|
+
const each = cases => (name, self, timeout) => V.it.for(cases)(name, typeof timeout === "number" ? {
|
|
64
|
+
timeout
|
|
65
|
+
} : timeout ?? {}, (args, ctx) => run(ctx, [args], self));
|
|
59
66
|
return Object.assign(f, {
|
|
60
67
|
skip,
|
|
61
68
|
skipIf,
|
package/dist/cjs/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","names":["Cause","_interopRequireWildcard","require","Duration","Effect","Equal","Exit","_Function","Layer","Logger","Schedule","TestEnvironment","Utils","V","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","runTest","effect","gen","exit","isSuccess","errors","prettyErrors","cause","length","logError","
|
|
1
|
+
{"version":3,"file":"internal.js","names":["Cause","_interopRequireWildcard","require","Duration","Effect","Equal","Exit","Fiber","_Function","Layer","Logger","Runtime","Schedule","TestEnvironment","Utils","V","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","runTest","ctx","effect","gen","exitFiber","fork","exit","runtime","onTestFinished","interrupt","pipe","asVoid","runPromise","join","isSuccess","errors","prettyErrors","cause","length","logError","then","f","TestEnv","TestContext","provide","remove","defaultLogger","customTester","b","customTesters","isEqual","undefined","structuralRegion","equals","x","y","filter","addEqualityTesters","expect","exports","makeTester","mapEffect","run","args","self","suspend","name","timeout","it","skip","skipIf","condition","runIf","only","each","cases","for","assign","scoped","flow","live","identity","scopedLive","flakyTest","seconds","catchAllDefect","fail","retry","recurs","compose","elapsed","whileOutput","lessThanOrEqualTo","orDie"],"sources":["../../src/internal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/internal.js
CHANGED
|
@@ -3,16 +3,21 @@ import * as Duration from "effect/Duration";
|
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Equal from "effect/Equal";
|
|
5
5
|
import * as Exit from "effect/Exit";
|
|
6
|
+
import * as Fiber from "effect/Fiber";
|
|
6
7
|
import { flow, identity, pipe } from "effect/Function";
|
|
7
8
|
import * as Layer from "effect/Layer";
|
|
8
9
|
import * as Logger from "effect/Logger";
|
|
10
|
+
import * as Runtime from "effect/Runtime";
|
|
9
11
|
import * as Schedule from "effect/Schedule";
|
|
10
12
|
import * as TestEnvironment from "effect/TestContext";
|
|
11
13
|
import * as Utils from "effect/Utils";
|
|
12
14
|
import * as V from "vitest";
|
|
13
15
|
/** @internal */
|
|
14
|
-
const runTest = effect => Effect.gen(function* () {
|
|
15
|
-
const
|
|
16
|
+
const runTest = ctx => effect => Effect.gen(function* () {
|
|
17
|
+
const exitFiber = yield* Effect.fork(Effect.exit(effect));
|
|
18
|
+
const runtime = yield* Effect.runtime();
|
|
19
|
+
ctx.onTestFinished(() => Fiber.interrupt(exitFiber).pipe(Effect.asVoid, Runtime.runPromise(runtime)));
|
|
20
|
+
const exit = yield* Fiber.join(exitFiber);
|
|
16
21
|
if (Exit.isSuccess(exit)) {
|
|
17
22
|
return () => {};
|
|
18
23
|
} else {
|
|
@@ -40,13 +45,15 @@ export const addEqualityTesters = () => {
|
|
|
40
45
|
};
|
|
41
46
|
/** @internal */
|
|
42
47
|
const makeTester = mapEffect => {
|
|
43
|
-
const run =
|
|
44
|
-
const f = (name, self, timeout) => V.it(name, run(self), timeout);
|
|
45
|
-
const skip = (name, self, timeout) => V.it.skip(name, run(self), timeout);
|
|
46
|
-
const skipIf = condition => (name, self, timeout) => V.it.skipIf(condition)(name, run(self), timeout);
|
|
47
|
-
const runIf = condition => (name, self, timeout) => V.it.runIf(condition)(name, run(self), timeout);
|
|
48
|
-
const only = (name, self, timeout) => V.it.only(name, run(self), timeout);
|
|
49
|
-
const each = cases => (name, self, timeout) => V.it.
|
|
48
|
+
const run = (ctx, args, self) => pipe(Effect.suspend(() => self(...args)), mapEffect, runTest(ctx));
|
|
49
|
+
const f = (name, self, timeout) => V.it(name, ctx => run(ctx, [ctx], self), timeout);
|
|
50
|
+
const skip = (name, self, timeout) => V.it.skip(name, ctx => run(ctx, [ctx], self), timeout);
|
|
51
|
+
const skipIf = condition => (name, self, timeout) => V.it.skipIf(condition)(name, ctx => run(ctx, [ctx], self), timeout);
|
|
52
|
+
const runIf = condition => (name, self, timeout) => V.it.runIf(condition)(name, ctx => run(ctx, [ctx], self), timeout);
|
|
53
|
+
const only = (name, self, timeout) => V.it.only(name, ctx => run(ctx, [ctx], self), timeout);
|
|
54
|
+
const each = cases => (name, self, timeout) => V.it.for(cases)(name, typeof timeout === "number" ? {
|
|
55
|
+
timeout
|
|
56
|
+
} : timeout ?? {}, (args, ctx) => run(ctx, [args], self));
|
|
50
57
|
return Object.assign(f, {
|
|
51
58
|
skip,
|
|
52
59
|
skipIf,
|
package/dist/esm/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","names":["Cause","Duration","Effect","Equal","Exit","flow","identity","pipe","Layer","Logger","Schedule","TestEnvironment","Utils","V","runTest","effect","gen","exit","isSuccess","errors","prettyErrors","cause","i","length","logError","
|
|
1
|
+
{"version":3,"file":"internal.js","names":["Cause","Duration","Effect","Equal","Exit","Fiber","flow","identity","pipe","Layer","Logger","Runtime","Schedule","TestEnvironment","Utils","V","runTest","ctx","effect","gen","exitFiber","fork","exit","runtime","onTestFinished","interrupt","asVoid","runPromise","join","isSuccess","errors","prettyErrors","cause","i","length","logError","then","f","TestEnv","TestContext","provide","remove","defaultLogger","customTester","a","b","customTesters","isEqual","undefined","structuralRegion","equals","x","y","filter","t","addEqualityTesters","expect","makeTester","mapEffect","run","args","self","suspend","name","timeout","it","skip","skipIf","condition","runIf","only","each","cases","for","Object","assign","scoped","live","scopedLive","flakyTest","seconds","catchAllDefect","fail","retry","recurs","compose","elapsed","whileOutput","lessThanOrEqualTo","orDie"],"sources":["../../src/internal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/vitest",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2",
|
|
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": "^2.0",
|
|
14
|
-
"effect": "^3.6.
|
|
14
|
+
"effect": "^3.6.1"
|
|
15
15
|
},
|
|
16
16
|
"publishConfig": {
|
|
17
17
|
"provenance": true
|
package/src/internal.ts
CHANGED
|
@@ -7,9 +7,11 @@ import * as Duration from "effect/Duration"
|
|
|
7
7
|
import * as Effect from "effect/Effect"
|
|
8
8
|
import * as Equal from "effect/Equal"
|
|
9
9
|
import * as Exit from "effect/Exit"
|
|
10
|
+
import * as Fiber from "effect/Fiber"
|
|
10
11
|
import { flow, identity, pipe } from "effect/Function"
|
|
11
12
|
import * as Layer from "effect/Layer"
|
|
12
13
|
import * as Logger from "effect/Logger"
|
|
14
|
+
import * as Runtime from "effect/Runtime"
|
|
13
15
|
import * as Schedule from "effect/Schedule"
|
|
14
16
|
import type * as Scope from "effect/Scope"
|
|
15
17
|
import * as TestEnvironment from "effect/TestContext"
|
|
@@ -19,9 +21,19 @@ import * as V from "vitest"
|
|
|
19
21
|
import type * as Vitest from "./index.js"
|
|
20
22
|
|
|
21
23
|
/** @internal */
|
|
22
|
-
const runTest = <E, A>(effect: Effect.Effect<A, E>) =>
|
|
24
|
+
const runTest = (ctx: Vitest.TaskContext) => <E, A>(effect: Effect.Effect<A, E>) =>
|
|
23
25
|
Effect.gen(function*() {
|
|
24
|
-
const
|
|
26
|
+
const exitFiber = yield* Effect.fork(Effect.exit(effect))
|
|
27
|
+
const runtime = yield* Effect.runtime()
|
|
28
|
+
|
|
29
|
+
ctx.onTestFinished(() =>
|
|
30
|
+
Fiber.interrupt(exitFiber).pipe(
|
|
31
|
+
Effect.asVoid,
|
|
32
|
+
Runtime.runPromise(runtime)
|
|
33
|
+
)
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
const exit = yield* Fiber.join(exitFiber)
|
|
25
37
|
if (Exit.isSuccess(exit)) {
|
|
26
38
|
return () => {}
|
|
27
39
|
} else {
|
|
@@ -60,20 +72,28 @@ export const addEqualityTesters = () => {
|
|
|
60
72
|
const makeTester = <R>(
|
|
61
73
|
mapEffect: <A, E>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, never>
|
|
62
74
|
): Vitest.Vitest.Tester<R> => {
|
|
63
|
-
const run =
|
|
64
|
-
|
|
65
|
-
|
|
75
|
+
const run = <A, E, TestArgs extends Array<unknown>>(
|
|
76
|
+
ctx: V.TaskContext<V.Test<object>> & V.TestContext & object,
|
|
77
|
+
args: TestArgs,
|
|
78
|
+
self: Vitest.Vitest.TestFunction<A, E, R, TestArgs>
|
|
79
|
+
) => pipe(Effect.suspend(() => self(...args)), mapEffect, runTest(ctx))
|
|
66
80
|
|
|
67
|
-
const f: Vitest.Vitest.Test<R> = (name, self, timeout) => V.it(name, run(self), timeout)
|
|
81
|
+
const f: Vitest.Vitest.Test<R> = (name, self, timeout) => V.it(name, (ctx) => run(ctx, [ctx], self), timeout)
|
|
68
82
|
|
|
69
|
-
const skip: Vitest.Vitest.Tester<R>["only"] = (name, self, timeout) =>
|
|
83
|
+
const skip: Vitest.Vitest.Tester<R>["only"] = (name, self, timeout) =>
|
|
84
|
+
V.it.skip(name, (ctx) => run(ctx, [ctx], self), timeout)
|
|
70
85
|
const skipIf: Vitest.Vitest.Tester<R>["skipIf"] = (condition) => (name, self, timeout) =>
|
|
71
|
-
V.it.skipIf(condition)(name, run(self), timeout)
|
|
86
|
+
V.it.skipIf(condition)(name, (ctx) => run(ctx, [ctx], self), timeout)
|
|
72
87
|
const runIf: Vitest.Vitest.Tester<R>["runIf"] = (condition) => (name, self, timeout) =>
|
|
73
|
-
V.it.runIf(condition)(name, run(self), timeout)
|
|
74
|
-
const only: Vitest.Vitest.Tester<R>["only"] = (name, self, timeout) =>
|
|
88
|
+
V.it.runIf(condition)(name, (ctx) => run(ctx, [ctx], self), timeout)
|
|
89
|
+
const only: Vitest.Vitest.Tester<R>["only"] = (name, self, timeout) =>
|
|
90
|
+
V.it.only(name, (ctx) => run(ctx, [ctx], self), timeout)
|
|
75
91
|
const each: Vitest.Vitest.Tester<R>["each"] = (cases) => (name, self, timeout) =>
|
|
76
|
-
V.it.
|
|
92
|
+
V.it.for(cases)(
|
|
93
|
+
name,
|
|
94
|
+
typeof timeout === "number" ? { timeout } : timeout ?? {},
|
|
95
|
+
(args, ctx) => run(ctx, [args], self)
|
|
96
|
+
)
|
|
77
97
|
|
|
78
98
|
return Object.assign(f, { skip, skipIf, runIf, only, each })
|
|
79
99
|
}
|