@effect/vitest 0.12.1 → 0.13.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 +122 -42
- package/dist/cjs/index.js +11 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal.js +39 -3
- package/dist/cjs/internal.js.map +1 -1
- package/dist/dts/index.d.ts +28 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal.d.ts +2 -1
- package/dist/dts/internal.d.ts.map +1 -1
- package/dist/esm/index.js +9 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal.js +36 -2
- package/dist/esm/internal.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +52 -1
- package/src/internal.ts +60 -4
package/README.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# Introduction
|
|
2
2
|
|
|
3
|
-
Welcome to your guide on testing Effect applications using `vitest` and the `@effect/vitest` package
|
|
3
|
+
Welcome to your guide on testing Effect-based applications using `vitest` and the `@effect/vitest` package. This package simplifies running tests for Effect-based code with Vitest.
|
|
4
4
|
|
|
5
|
-
In
|
|
5
|
+
In this guide, we'll walk you through setting up the necessary dependencies and provide examples of how to write Effect-based tests using `@effect/vitest`.
|
|
6
6
|
|
|
7
7
|
# Requirements
|
|
8
8
|
|
|
9
|
-
First,
|
|
9
|
+
First, ensure you have [`vitest`](https://vitest.dev/guide/) installed (version `1.6.0` or later).
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
12
|
pnpm add -D vitest
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
Next, install the `@effect/vitest` package which
|
|
15
|
+
Next, install the `@effect/vitest` package, which integrates Effect with Vitest.
|
|
16
16
|
|
|
17
17
|
```sh
|
|
18
18
|
pnpm add -D @effect/vitest
|
|
@@ -40,116 +40,148 @@ This import enhances the standard `it` function from `vitest` with several power
|
|
|
40
40
|
|
|
41
41
|
Here's how to use `it.effect` to write your tests:
|
|
42
42
|
|
|
43
|
+
**Syntax**
|
|
44
|
+
|
|
43
45
|
```ts
|
|
44
46
|
import { it } from "@effect/vitest"
|
|
45
47
|
|
|
46
48
|
it.effect("test name", () => EffectContainingAssertions, timeout: number | TestOptions = 5_000)
|
|
47
49
|
```
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
`it.effect` automatically provides a `TestContext`, allowing access to services like [`TestClock`](#using-the-testclock).
|
|
50
52
|
|
|
51
53
|
## Testing Successful Operations
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
To write a test, place your assertions directly within the main effect. This ensures that your assertions are evaluated as part of the test's execution.
|
|
56
|
+
|
|
57
|
+
**Example** (Testing a Successful Operation)
|
|
58
|
+
|
|
59
|
+
In the following example, we test a function that divides two numbers, but fails if the divisor is zero. The goal is to check that the function returns the correct result when given valid input.
|
|
54
60
|
|
|
55
61
|
```ts
|
|
56
62
|
import { it } from "@effect/vitest"
|
|
57
63
|
import { Effect } from "effect"
|
|
58
64
|
import { expect } from "vitest"
|
|
59
65
|
|
|
66
|
+
// A simple divide function that returns an Effect, failing when dividing by zero
|
|
60
67
|
function divide(a: number, b: number) {
|
|
61
68
|
if (b === 0) return Effect.fail("Cannot divide by zero")
|
|
62
69
|
return Effect.succeed(a / b)
|
|
63
70
|
}
|
|
64
71
|
|
|
72
|
+
// Testing a successful division
|
|
65
73
|
it.effect("test success", () =>
|
|
66
74
|
Effect.gen(function* () {
|
|
67
|
-
const result = yield* divide(4, 2)
|
|
68
|
-
expect(result).toBe(2)
|
|
75
|
+
const result = yield* divide(4, 2) // Expect 4 divided by 2 to succeed
|
|
76
|
+
expect(result).toBe(2) // Assert that the result is 2
|
|
69
77
|
})
|
|
70
78
|
)
|
|
71
79
|
```
|
|
72
80
|
|
|
73
81
|
## Testing Successes and Failures as `Exit`
|
|
74
82
|
|
|
75
|
-
|
|
83
|
+
When you need to handle both success and failure cases in a test, you can use `Effect.exit` to capture the outcome as an `Exit` object. This allows you to verify both successful and failed results within the same test structure.
|
|
84
|
+
|
|
85
|
+
**Example** (Testing Success and Failure with `Exit`)
|
|
76
86
|
|
|
77
87
|
```ts
|
|
78
88
|
import { it } from "@effect/vitest"
|
|
79
89
|
import { Effect, Exit } from "effect"
|
|
80
90
|
import { expect } from "vitest"
|
|
81
91
|
|
|
92
|
+
// A function that divides two numbers and returns an Effect.
|
|
93
|
+
// It fails if the divisor is zero.
|
|
82
94
|
function divide(a: number, b: number) {
|
|
83
95
|
if (b === 0) return Effect.fail("Cannot divide by zero")
|
|
84
96
|
return Effect.succeed(a / b)
|
|
85
97
|
}
|
|
86
98
|
|
|
99
|
+
// Test case for a successful division, using `Effect.exit` to capture the result
|
|
87
100
|
it.effect("test success as Exit", () =>
|
|
88
101
|
Effect.gen(function* () {
|
|
89
|
-
const result = yield* divide(4, 2)
|
|
90
|
-
expect(result).toStrictEqual(Exit.succeed(2))
|
|
102
|
+
const result = yield* Effect.exit(divide(4, 2)) // Capture the result as an Exit
|
|
103
|
+
expect(result).toStrictEqual(Exit.succeed(2)) // Expect success with the value 2
|
|
91
104
|
})
|
|
92
105
|
)
|
|
93
106
|
|
|
107
|
+
// Test case for a failure (division by zero), using `Effect.exit`
|
|
94
108
|
it.effect("test failure as Exit", () =>
|
|
95
109
|
Effect.gen(function* () {
|
|
96
|
-
const result = yield* divide(4, 0)
|
|
97
|
-
expect(result).toStrictEqual(Exit.fail("Cannot divide by zero"))
|
|
110
|
+
const result = yield* Effect.exit(divide(4, 0)) // Capture the result as an Exit
|
|
111
|
+
expect(result).toStrictEqual(Exit.fail("Cannot divide by zero")) // Expect failure with the correct message
|
|
98
112
|
})
|
|
99
113
|
)
|
|
100
114
|
```
|
|
101
115
|
|
|
102
116
|
## Using the TestClock
|
|
103
117
|
|
|
104
|
-
When
|
|
118
|
+
When writing tests with `it.effect`, a `TestContext` is automatically provided. This context gives access to various testing services, including the [`TestClock`](https://effect.website/docs/guides/testing/testclock), which allows you to simulate the passage of time in your tests.
|
|
119
|
+
|
|
120
|
+
**Note**: If you want to use the real-time clock (instead of the simulated one), you can switch to `it.live`.
|
|
105
121
|
|
|
106
|
-
**
|
|
122
|
+
**Example** (Using `TestClock` and `it.live`)
|
|
107
123
|
|
|
108
|
-
|
|
124
|
+
Here are examples that demonstrate how you can work with time in your tests using `it.effect` and `TestClock`:
|
|
109
125
|
|
|
110
|
-
1. **Using `it.live` to show the current time
|
|
126
|
+
1. **Using `it.live` to show the current time**: This will display the actual system time, since it runs in the live environment.
|
|
111
127
|
|
|
112
|
-
2. **Using `it.effect`
|
|
128
|
+
2. **Using `it.effect` without adjustments**: By default, the `TestClock` starts at `0`, simulating the beginning of time for your test without any time passing.
|
|
113
129
|
|
|
114
|
-
3. **Using `it.effect` and adjusting time
|
|
130
|
+
3. **Using `it.effect` and adjusting time**: In this test, we simulate the passage of time by advancing the clock by 1000 milliseconds (1 second).
|
|
115
131
|
|
|
116
132
|
```ts
|
|
117
133
|
import { it } from "@effect/vitest"
|
|
118
134
|
import { Clock, Effect, TestClock } from "effect"
|
|
119
135
|
|
|
136
|
+
// Effect to log the current time
|
|
120
137
|
const logNow = Effect.gen(function* () {
|
|
121
|
-
const now = yield* Clock.currentTimeMillis
|
|
122
|
-
console.log(now)
|
|
138
|
+
const now = yield* Clock.currentTimeMillis // Fetch the current time from the clock
|
|
139
|
+
console.log(now) // Log the current time
|
|
123
140
|
})
|
|
124
141
|
|
|
142
|
+
// Example of using the real system clock with `it.live`
|
|
125
143
|
it.live("runs the test with the live Effect environment", () =>
|
|
126
144
|
Effect.gen(function* () {
|
|
127
|
-
yield* logNow //
|
|
145
|
+
yield* logNow // Prints the actual current time
|
|
128
146
|
})
|
|
129
147
|
)
|
|
130
148
|
|
|
149
|
+
// Example of using `it.effect` with the default test environment
|
|
131
150
|
it.effect("run the test with the test environment", () =>
|
|
132
151
|
Effect.gen(function* () {
|
|
133
|
-
yield* logNow //
|
|
152
|
+
yield* logNow // Prints 0, as the test clock starts at 0
|
|
134
153
|
})
|
|
135
154
|
)
|
|
136
155
|
|
|
156
|
+
// Example of advancing the test clock by 1000 milliseconds
|
|
137
157
|
it.effect("run the test with the test environment and the time adjusted", () =>
|
|
138
158
|
Effect.gen(function* () {
|
|
139
|
-
yield* TestClock.adjust("1000 millis")
|
|
140
|
-
yield* logNow //
|
|
159
|
+
yield* TestClock.adjust("1000 millis") // Move the clock forward by 1000 milliseconds
|
|
160
|
+
yield* logNow // Prints 1000, reflecting the adjusted time
|
|
141
161
|
})
|
|
142
162
|
)
|
|
143
163
|
```
|
|
144
164
|
|
|
145
165
|
## Skipping Tests
|
|
146
166
|
|
|
147
|
-
|
|
167
|
+
If you need to temporarily disable a test but don't want to delete or comment out the code, you can use `it.effect.skip`. This is helpful when you're working on other parts of your test suite but want to keep the test for future execution.
|
|
168
|
+
|
|
169
|
+
**Example** (Skipping a Test)
|
|
148
170
|
|
|
149
171
|
```ts
|
|
150
|
-
it
|
|
172
|
+
import { it } from "@effect/vitest"
|
|
173
|
+
import { Effect, Exit } from "effect"
|
|
174
|
+
import { expect } from "vitest"
|
|
175
|
+
|
|
176
|
+
function divide(a: number, b: number) {
|
|
177
|
+
if (b === 0) return Effect.fail("Cannot divide by zero")
|
|
178
|
+
return Effect.succeed(a / b)
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Temporarily skip the test for dividing numbers
|
|
182
|
+
it.effect("test failure as Exit", () =>
|
|
151
183
|
Effect.gen(function* () {
|
|
152
|
-
const result = yield* divide(4, 0)
|
|
184
|
+
const result = yield* Effect.exit(divide(4, 0))
|
|
153
185
|
expect(result).toStrictEqual(Exit.fail("Cannot divide by zero"))
|
|
154
186
|
})
|
|
155
187
|
)
|
|
@@ -157,32 +189,78 @@ it.effect.skip("test failure as Exit", () =>
|
|
|
157
189
|
|
|
158
190
|
## Running a Single Test
|
|
159
191
|
|
|
160
|
-
|
|
192
|
+
When you're developing or debugging, it's often useful to run a specific test without executing the entire test suite. You can achieve this by using `it.effect.only`, which will run just the selected test and ignore the others.
|
|
193
|
+
|
|
194
|
+
**Example** (Running a Single Test)
|
|
161
195
|
|
|
162
196
|
```ts
|
|
197
|
+
import { it } from "@effect/vitest"
|
|
198
|
+
import { Effect, Exit } from "effect"
|
|
199
|
+
import { expect } from "vitest"
|
|
200
|
+
|
|
201
|
+
function divide(a: number, b: number) {
|
|
202
|
+
if (b === 0) return Effect.fail("Cannot divide by zero")
|
|
203
|
+
return Effect.succeed(a / b)
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// Run only this test, skipping all others
|
|
163
207
|
it.effect.only("test failure as Exit", () =>
|
|
164
208
|
Effect.gen(function* () {
|
|
165
|
-
const result = yield* divide(4, 0)
|
|
209
|
+
const result = yield* Effect.exit(divide(4, 0))
|
|
166
210
|
expect(result).toStrictEqual(Exit.fail("Cannot divide by zero"))
|
|
167
211
|
})
|
|
168
212
|
)
|
|
169
213
|
```
|
|
170
214
|
|
|
215
|
+
## Logging
|
|
216
|
+
|
|
217
|
+
By default, `it.effect` suppresses log output, which can be useful for keeping test results clean. However, if you want to enable logging during tests, you can use `it.live` or provide a custom logger to control the output.
|
|
218
|
+
|
|
219
|
+
**Example** (Controlling Logging in Tests)
|
|
220
|
+
|
|
221
|
+
```ts
|
|
222
|
+
import { it } from "@effect/vitest"
|
|
223
|
+
import { Effect, Logger } from "effect"
|
|
224
|
+
|
|
225
|
+
// This test won't display the log message, as logging is suppressed by default in `it.effect`
|
|
226
|
+
it.effect("does not display a log", () =>
|
|
227
|
+
Effect.gen(function* () {
|
|
228
|
+
yield* Effect.log("it.effect") // Log won't be shown
|
|
229
|
+
})
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
// This test will display the log because a custom logger is provided
|
|
233
|
+
it.effect("providing a logger displays a log", () =>
|
|
234
|
+
Effect.gen(function* () {
|
|
235
|
+
yield* Effect.log("it.effect with custom logger") // Log will be displayed
|
|
236
|
+
}).pipe(
|
|
237
|
+
Effect.provide(Logger.pretty) // Providing a pretty logger for log output
|
|
238
|
+
)
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
// This test runs using `it.live`, which enables logging by default
|
|
242
|
+
it.live("it.live displays a log", () =>
|
|
243
|
+
Effect.gen(function* () {
|
|
244
|
+
yield* Effect.log("it.live") // Log will be displayed
|
|
245
|
+
})
|
|
246
|
+
)
|
|
247
|
+
```
|
|
248
|
+
|
|
171
249
|
# Writing Tests with `it.scoped`
|
|
172
250
|
|
|
173
|
-
The `it.scoped` method
|
|
251
|
+
The `it.scoped` method is used for tests that involve `Effect` programs needing a `Scope`. A `Scope` ensures that any resources your test acquires are managed properly, meaning they will be released when the test completes. This helps prevent resource leaks and guarantees test isolation.
|
|
174
252
|
|
|
175
|
-
|
|
253
|
+
**Example** (Using `it.scoped` to Manage Resource Lifecycle)
|
|
176
254
|
|
|
177
255
|
```ts
|
|
178
256
|
import { it } from "@effect/vitest"
|
|
179
257
|
import { Console, Effect } from "effect"
|
|
180
258
|
|
|
181
|
-
//
|
|
259
|
+
// Simulating the acquisition and release of a resource with console logging
|
|
182
260
|
const acquire = Console.log("acquire resource")
|
|
183
261
|
const release = Console.log("release resource")
|
|
184
262
|
|
|
185
|
-
//
|
|
263
|
+
// Defining a resource that requires proper management
|
|
186
264
|
const resource = Effect.acquireRelease(acquire, () => release)
|
|
187
265
|
|
|
188
266
|
// Incorrect usage: This will result in a type error because it lacks a scope
|
|
@@ -192,7 +270,7 @@ it.effect("run with scope", () =>
|
|
|
192
270
|
})
|
|
193
271
|
)
|
|
194
272
|
|
|
195
|
-
// Correct usage: Using 'it.scoped' to
|
|
273
|
+
// Correct usage: Using 'it.scoped' to manage the scope correctly
|
|
196
274
|
it.scoped("run with scope", () =>
|
|
197
275
|
Effect.gen(function* () {
|
|
198
276
|
yield* resource
|
|
@@ -202,17 +280,17 @@ it.scoped("run with scope", () =>
|
|
|
202
280
|
|
|
203
281
|
# Writing Tests with `it.flakyTest`
|
|
204
282
|
|
|
205
|
-
`it.flakyTest` is a
|
|
283
|
+
`it.flakyTest` is a utility designed to manage tests that may not succeed consistently on the first attempt. These tests, often referred to as "flaky," can fail due to factors like timing issues, external dependencies, or randomness. `it.flakyTest` allows for retrying these tests until they pass or a specified timeout is reached.
|
|
206
284
|
|
|
207
|
-
|
|
285
|
+
**Example** (Handling Flaky Tests with Retries)
|
|
208
286
|
|
|
209
|
-
|
|
287
|
+
Let's start by setting up a basic test scenario that has the potential to fail randomly:
|
|
210
288
|
|
|
211
289
|
```ts
|
|
212
290
|
import { it } from "@effect/vitest"
|
|
213
291
|
import { Effect, Random } from "effect"
|
|
214
292
|
|
|
215
|
-
//
|
|
293
|
+
// Simulating a flaky effect
|
|
216
294
|
const flaky = Effect.gen(function* () {
|
|
217
295
|
const random = yield* Random.nextBoolean
|
|
218
296
|
if (random) {
|
|
@@ -220,14 +298,16 @@ const flaky = Effect.gen(function* () {
|
|
|
220
298
|
}
|
|
221
299
|
})
|
|
222
300
|
|
|
223
|
-
// Standard test
|
|
301
|
+
// Standard test that may fail intermittently
|
|
224
302
|
it.effect("possibly failing test", () => flaky)
|
|
225
303
|
```
|
|
226
304
|
|
|
227
|
-
|
|
305
|
+
In this test, the outcome is random, so the test might fail depending on the result of `Random.nextBoolean`.
|
|
306
|
+
|
|
307
|
+
To handle this flakiness, we use `it.flakyTest` to retry the test until it passes, or until a defined timeout expires:
|
|
228
308
|
|
|
229
309
|
```ts
|
|
230
|
-
// Retrying the flaky test with a timeout
|
|
310
|
+
// Retrying the flaky test with a 5-second timeout
|
|
231
311
|
it.effect("retrying until success or timeout", () =>
|
|
232
312
|
it.flakyTest(flaky, "5 seconds")
|
|
233
313
|
)
|
package/dist/cjs/index.js
CHANGED
|
@@ -11,9 +11,10 @@ var _exportNames = {
|
|
|
11
11
|
scopedLive: true,
|
|
12
12
|
layer: true,
|
|
13
13
|
flakyTest: true,
|
|
14
|
+
prop: true,
|
|
14
15
|
it: true
|
|
15
16
|
};
|
|
16
|
-
exports.scopedLive = exports.scoped = exports.live = exports.layer = exports.it = exports.flakyTest = exports.effect = exports.addEqualityTesters = void 0;
|
|
17
|
+
exports.scopedLive = exports.scoped = exports.prop = exports.live = exports.layer = exports.it = exports.flakyTest = exports.effect = exports.addEqualityTesters = void 0;
|
|
17
18
|
var V = _interopRequireWildcard(require("vitest"));
|
|
18
19
|
Object.keys(V).forEach(function (key) {
|
|
19
20
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -96,6 +97,13 @@ const layer = exports.layer = internal.layer;
|
|
|
96
97
|
* @since 1.0.0
|
|
97
98
|
*/
|
|
98
99
|
const flakyTest = exports.flakyTest = internal.flakyTest;
|
|
100
|
+
/**
|
|
101
|
+
* @since 1.0.0
|
|
102
|
+
*/
|
|
103
|
+
const prop = exports.prop = internal.prop;
|
|
104
|
+
/**
|
|
105
|
+
* @since 1.0.0
|
|
106
|
+
*/
|
|
99
107
|
/** @ignored */
|
|
100
108
|
const methods = {
|
|
101
109
|
effect,
|
|
@@ -103,7 +111,8 @@ const methods = {
|
|
|
103
111
|
flakyTest,
|
|
104
112
|
scoped,
|
|
105
113
|
scopedLive,
|
|
106
|
-
layer
|
|
114
|
+
layer,
|
|
115
|
+
prop
|
|
107
116
|
};
|
|
108
117
|
/**
|
|
109
118
|
* @since 1.0.0
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["V","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","addEqualityTesters","effect","scoped","live","scopedLive","layer","flakyTest","methods","it","assign"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["V","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","addEqualityTesters","effect","scoped","live","scopedLive","layer","flakyTest","prop","methods","it","assign"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/internal.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.scopedLive = exports.scoped = exports.live = exports.layer = exports.flakyTest = exports.effect = exports.addEqualityTesters = void 0;
|
|
6
|
+
exports.scopedLive = exports.scoped = exports.prop = exports.live = exports.layer = exports.flakyTest = exports.effect = exports.addEqualityTesters = void 0;
|
|
7
|
+
var Arbitrary = _interopRequireWildcard(require("effect/Arbitrary"));
|
|
7
8
|
var Cause = _interopRequireWildcard(require("effect/Cause"));
|
|
8
9
|
var Duration = _interopRequireWildcard(require("effect/Duration"));
|
|
9
10
|
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
@@ -17,7 +18,9 @@ var Schedule = _interopRequireWildcard(require("effect/Schedule"));
|
|
|
17
18
|
var Scope = _interopRequireWildcard(require("effect/Scope"));
|
|
18
19
|
var TestEnvironment = _interopRequireWildcard(require("effect/TestContext"));
|
|
19
20
|
var Utils = _interopRequireWildcard(require("effect/Utils"));
|
|
21
|
+
var _fastCheck = _interopRequireDefault(require("fast-check"));
|
|
20
22
|
var V = _interopRequireWildcard(require("vitest"));
|
|
23
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
24
|
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); }
|
|
22
25
|
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; }
|
|
23
26
|
const runPromise = ctx => effect => Effect.gen(function* () {
|
|
@@ -37,7 +40,7 @@ const runPromise = ctx => effect => Effect.gen(function* () {
|
|
|
37
40
|
}
|
|
38
41
|
}).pipe(Effect.runPromise).then(f => f());
|
|
39
42
|
/** @internal */
|
|
40
|
-
const runTest = ctx => effect => runPromise(ctx)(
|
|
43
|
+
const runTest = ctx => effect => runPromise(ctx)(effect);
|
|
41
44
|
/** @internal */
|
|
42
45
|
const TestEnv = /*#__PURE__*/TestEnvironment.TestContext.pipe( /*#__PURE__*/Layer.provide( /*#__PURE__*/Logger.remove(Logger.defaultLogger)));
|
|
43
46
|
/** @internal */
|
|
@@ -63,21 +66,54 @@ const makeTester = mapEffect => {
|
|
|
63
66
|
const each = cases => (name, self, timeout) => V.it.for(cases)(name, typeof timeout === "number" ? {
|
|
64
67
|
timeout
|
|
65
68
|
} : timeout ?? {}, (args, ctx) => run(ctx, [args], self));
|
|
69
|
+
const prop = (name, schemaObj, self, timeout) => {
|
|
70
|
+
if (Array.isArray(schemaObj)) {
|
|
71
|
+
const arbs = schemaObj.map(schema => Arbitrary.make(schema));
|
|
72
|
+
return V.it(name,
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
ctx => _fastCheck.default.assert(_fastCheck.default.asyncProperty(...arbs, (...as) => run(ctx, [as, ctx], self))), timeout);
|
|
75
|
+
}
|
|
76
|
+
const arbs = _fastCheck.default.record(Object.keys(schemaObj).reduce(function (result, key) {
|
|
77
|
+
result[key] = Arbitrary.make(schemaObj[key]);
|
|
78
|
+
return result;
|
|
79
|
+
}, {}));
|
|
80
|
+
return V.it(name,
|
|
81
|
+
// @ts-ignore
|
|
82
|
+
ctx => _fastCheck.default.assert(_fastCheck.default.asyncProperty(arbs, (...as) => run(ctx, [as[0], ctx], self))), timeout);
|
|
83
|
+
};
|
|
66
84
|
return Object.assign(f, {
|
|
67
85
|
skip,
|
|
68
86
|
skipIf,
|
|
69
87
|
runIf,
|
|
70
88
|
only,
|
|
71
|
-
each
|
|
89
|
+
each,
|
|
90
|
+
prop
|
|
72
91
|
});
|
|
73
92
|
};
|
|
93
|
+
const prop = (name, schemaObj, self, timeout) => {
|
|
94
|
+
if (Array.isArray(schemaObj)) {
|
|
95
|
+
const arbs = schemaObj.map(schema => Arbitrary.make(schema));
|
|
96
|
+
return V.it(name,
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
ctx => _fastCheck.default.assert(_fastCheck.default.property(...arbs, (...as) => self(as, ctx))), timeout);
|
|
99
|
+
}
|
|
100
|
+
const arbs = _fastCheck.default.record(Object.keys(schemaObj).reduce(function (result, key) {
|
|
101
|
+
result[key] = Arbitrary.make(schemaObj[key]);
|
|
102
|
+
return result;
|
|
103
|
+
}, {}));
|
|
104
|
+
return V.it(name,
|
|
105
|
+
// @ts-ignore
|
|
106
|
+
ctx => _fastCheck.default.assert(_fastCheck.default.property(arbs, (...as) => self(as[0], ctx))), timeout);
|
|
107
|
+
};
|
|
74
108
|
/** @internal */
|
|
109
|
+
exports.prop = prop;
|
|
75
110
|
const layer = (layer_, options) => (...args) => {
|
|
76
111
|
const memoMap = options?.memoMap ?? Effect.runSync(Layer.makeMemoMap);
|
|
77
112
|
const scope = Effect.runSync(Scope.make());
|
|
78
113
|
const runtimeEffect = Layer.toRuntimeWithMemoMap(layer_, memoMap).pipe(Scope.extend(scope), Effect.orDie, Effect.cached, Effect.runSync);
|
|
79
114
|
const it = Object.assign(V.it, {
|
|
80
115
|
effect: makeTester(effect => Effect.flatMap(runtimeEffect, runtime => effect.pipe(Effect.provide(runtime), Effect.provide(TestEnv)))),
|
|
116
|
+
prop,
|
|
81
117
|
scoped: makeTester(effect => Effect.flatMap(runtimeEffect, runtime => effect.pipe(Effect.scoped, Effect.provide(runtime), Effect.provide(TestEnv)))),
|
|
82
118
|
live: makeTester(effect => Effect.flatMap(runtimeEffect, runtime => Effect.provide(effect, runtime))),
|
|
83
119
|
scopedLive: makeTester(effect => Effect.flatMap(runtimeEffect, runtime => effect.pipe(Effect.scoped, Effect.provide(runtime)))),
|
package/dist/cjs/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","names":["Cause","_interopRequireWildcard","require","Duration","Effect","Equal","Exit","Fiber","_Function","Layer","Logger","Schedule","Scope","TestEnvironment","Utils","V","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","runPromise","ctx","effect","gen","exitFiber","fork","exit","onTestFinished","interrupt","pipe","asVoid","join","isSuccess","value","errors","prettyErrors","cause","length","logError","then","f","runTest","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","layer","layer_","options","memoMap","runSync","makeMemoMap","scope","make","runtimeEffect","toRuntimeWithMemoMap","extend","orDie","cached","flatMap","runtime","scoped","live","scopedLive","flakyTest","nestedLayer","provideMerge","beforeAll","toMillis","afterAll","close","void","describe","flow","identity","seconds","catchAllDefect","fail","retry","recurs","compose","elapsed","whileOutput","lessThanOrEqualTo"],"sources":["../../src/internal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"internal.js","names":["Arbitrary","_interopRequireWildcard","require","Cause","Duration","Effect","Equal","Exit","Fiber","_Function","Layer","Logger","Schedule","Scope","TestEnvironment","Utils","_fastCheck","_interopRequireDefault","V","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","runPromise","ctx","effect","gen","exitFiber","fork","exit","onTestFinished","interrupt","pipe","asVoid","join","isSuccess","value","errors","prettyErrors","cause","length","logError","then","f","runTest","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","prop","schemaObj","Array","isArray","arbs","map","schema","make","fc","assert","asyncProperty","as","record","keys","reduce","result","key","assign","property","layer","layer_","options","memoMap","runSync","makeMemoMap","scope","runtimeEffect","toRuntimeWithMemoMap","extend","orDie","cached","flatMap","runtime","scoped","live","scopedLive","flakyTest","nestedLayer","provideMerge","beforeAll","toMillis","afterAll","close","void","describe","flow","identity","seconds","catchAllDefect","fail","retry","recurs","compose","elapsed","whileOutput","lessThanOrEqualTo"],"sources":["../../src/internal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import type * as Duration from "effect/Duration";
|
|
5
5
|
import type * as Effect from "effect/Effect";
|
|
6
6
|
import type * as Layer from "effect/Layer";
|
|
7
|
+
import type * as Schema from "effect/Schema";
|
|
7
8
|
import type * as Scope from "effect/Scope";
|
|
8
9
|
import type * as TestServices from "effect/TestServices";
|
|
9
10
|
import * as V from "vitest";
|
|
@@ -27,6 +28,12 @@ export declare namespace Vitest {
|
|
|
27
28
|
interface Test<R> {
|
|
28
29
|
<A, E>(name: string, self: TestFunction<A, E, R, [V.TaskContext<V.RunnerTestCase<{}>> & V.TestContext]>, timeout?: number | V.TestOptions): void;
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
*/
|
|
34
|
+
type SchemaObj = Array<Schema.Schema.Any> | {
|
|
35
|
+
[K in string]: Schema.Schema.Any;
|
|
36
|
+
};
|
|
30
37
|
/**
|
|
31
38
|
* @since 1.0.0
|
|
32
39
|
*/
|
|
@@ -36,6 +43,15 @@ export declare namespace Vitest {
|
|
|
36
43
|
runIf: (condition: unknown) => Vitest.Test<R>;
|
|
37
44
|
only: Vitest.Test<R>;
|
|
38
45
|
each: <T>(cases: ReadonlyArray<T>) => <A, E>(name: string, self: TestFunction<A, E, R, Array<T>>, timeout?: number | V.TestOptions) => void;
|
|
46
|
+
/**
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
*/
|
|
49
|
+
prop: <const S extends SchemaObj, A, E>(name: string, schemas: S, self: TestFunction<A, E, R, [
|
|
50
|
+
{
|
|
51
|
+
[K in keyof S]: Schema.Schema.Type<S[K]>;
|
|
52
|
+
},
|
|
53
|
+
V.TaskContext<V.RunnerTestCase<{}>> & V.TestContext
|
|
54
|
+
]>, timeout?: number | V.TestOptions) => void;
|
|
39
55
|
}
|
|
40
56
|
/**
|
|
41
57
|
* @since 1.0.0
|
|
@@ -52,6 +68,12 @@ export declare namespace Vitest {
|
|
|
52
68
|
(f: (it: Vitest.Methods<R | R2>) => void): void;
|
|
53
69
|
(name: string, f: (it: Vitest.Methods<R | R2>) => void): void;
|
|
54
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* @since 1.0.0
|
|
73
|
+
*/
|
|
74
|
+
readonly prop: <const S extends SchemaObj>(name: string, schemas: S, self: (schemas: {
|
|
75
|
+
[K in keyof S]: Schema.Schema.Type<S[K]>;
|
|
76
|
+
}, ctx: V.TaskContext<V.RunnerTestCase<{}>> & V.TestContext) => void, timeout?: number | V.TestOptions) => void;
|
|
55
77
|
}
|
|
56
78
|
}
|
|
57
79
|
/**
|
|
@@ -127,6 +149,12 @@ export declare const layer: <R, E>(layer_: Layer.Layer<R, E>, options?: {
|
|
|
127
149
|
* @since 1.0.0
|
|
128
150
|
*/
|
|
129
151
|
export declare const flakyTest: <A, E, R>(self: Effect.Effect<A, E, R>, timeout?: Duration.DurationInput) => Effect.Effect<A, never, R>;
|
|
152
|
+
/**
|
|
153
|
+
* @since 1.0.0
|
|
154
|
+
*/
|
|
155
|
+
export declare const prop: <const S extends Vitest.SchemaObj>(name: string, schemas: S, self: (schemas: {
|
|
156
|
+
[K in keyof S]: Schema.Schema.Type<S[K]>;
|
|
157
|
+
}, ctx: V.TaskContext<V.RunnerTestCase<{}>> & V.TestContext) => void, timeout?: number | V.TestOptions) => void;
|
|
130
158
|
/**
|
|
131
159
|
* @since 1.0.0
|
|
132
160
|
*/
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,YAAY,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAA;AAG3B;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AAE/B;;GAEG;AACH,yBAAiB,MAAM,CAAC;IACtB;;OAEG;IACH,UAAiB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,SAAS,KAAK,CAAC,GAAG,CAAC;QAChE,CAAC,GAAG,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KAC5C;IAED;;OAEG;IACH,UAAiB,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,EAAE,CAAC,EACH,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,EAClF,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,GAC/B,IAAI,CAAA;KACR;IAED;;OAEG;IACH,UAAiB,MAAM,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9C,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC7C,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,EAAE,CAAC,CAAC,EACN,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KACpB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/dts/internal.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,KAAK,MAAM,MAAM,YAAY,CAAA;AA2GzC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAwB9C,CAAA"}
|
package/dist/esm/index.js
CHANGED
|
@@ -67,6 +67,13 @@ export const layer = internal.layer;
|
|
|
67
67
|
* @since 1.0.0
|
|
68
68
|
*/
|
|
69
69
|
export const flakyTest = internal.flakyTest;
|
|
70
|
+
/**
|
|
71
|
+
* @since 1.0.0
|
|
72
|
+
*/
|
|
73
|
+
export const prop = internal.prop;
|
|
74
|
+
/**
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
*/
|
|
70
77
|
/** @ignored */
|
|
71
78
|
const methods = {
|
|
72
79
|
effect,
|
|
@@ -74,7 +81,8 @@ const methods = {
|
|
|
74
81
|
flakyTest,
|
|
75
82
|
scoped,
|
|
76
83
|
scopedLive,
|
|
77
|
-
layer
|
|
84
|
+
layer,
|
|
85
|
+
prop
|
|
78
86
|
};
|
|
79
87
|
/**
|
|
80
88
|
* @since 1.0.0
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["V","internal","addEqualityTesters","effect","scoped","live","scopedLive","layer","flakyTest","methods","it","Object","assign"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["V","internal","addEqualityTesters","effect","scoped","live","scopedLive","layer","flakyTest","prop","methods","it","Object","assign"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AASA,OAAO,KAAKA,CAAC,MAAM,QAAQ;AAC3B,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAgGzC;;;AAGA,OAAO,MAAMC,kBAAkB,GAAeD,QAAQ,CAACC,kBAAkB;AAEzE;;;AAGA,OAAO,MAAMC,MAAM,GAA6CF,QAAQ,CAACE,MAAM;AAE/E;;;AAGA,OAAO,MAAMC,MAAM,GAA2DH,QAAQ,CAACG,MAAM;AAE7F;;;AAGA,OAAO,MAAMC,IAAI,GAAyBJ,QAAQ,CAACI,IAAI;AAEvD;;;AAGA,OAAO,MAAMC,UAAU,GAA+BL,QAAQ,CAACK,UAAU;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,OAAO,MAAMC,KAAK,GAIhBN,QAAQ,CAACM,KAAK;AAEhB;;;AAGA,OAAO,MAAMC,SAAS,GAGYP,QAAQ,CAACO,SAAS;AAEpD;;;AAGA,OAAO,MAAMC,IAAI,GAQLR,QAAQ,CAACQ,IAAI;AAEzB;;;AAIA;AACA,MAAMC,OAAO,GAAG;EAAEP,MAAM;EAAEE,IAAI;EAAEG,SAAS;EAAEJ,MAAM;EAAEE,UAAU;EAAEC,KAAK;EAAEE;AAAI,CAAW;AAErF;;;AAGA,OAAO,MAAME,EAAE,gBAAmBC,MAAM,CAACC,MAAM,CAACb,CAAC,CAACW,EAAE,EAAED,OAAO,CAAC;AAE9D;;;AAGA,cAAc,QAAQ","ignoreList":[]}
|
package/dist/esm/internal.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Arbitrary from "effect/Arbitrary";
|
|
1
2
|
import * as Cause from "effect/Cause";
|
|
2
3
|
import * as Duration from "effect/Duration";
|
|
3
4
|
import * as Effect from "effect/Effect";
|
|
@@ -11,6 +12,7 @@ import * as Schedule from "effect/Schedule";
|
|
|
11
12
|
import * as Scope from "effect/Scope";
|
|
12
13
|
import * as TestEnvironment from "effect/TestContext";
|
|
13
14
|
import * as Utils from "effect/Utils";
|
|
15
|
+
import fc from "fast-check";
|
|
14
16
|
import * as V from "vitest";
|
|
15
17
|
const runPromise = ctx => effect => Effect.gen(function* () {
|
|
16
18
|
const exitFiber = yield* Effect.fork(Effect.exit(effect));
|
|
@@ -29,7 +31,7 @@ const runPromise = ctx => effect => Effect.gen(function* () {
|
|
|
29
31
|
}
|
|
30
32
|
}).pipe(Effect.runPromise).then(f => f());
|
|
31
33
|
/** @internal */
|
|
32
|
-
const runTest = ctx => effect => runPromise(ctx)(
|
|
34
|
+
const runTest = ctx => effect => runPromise(ctx)(effect);
|
|
33
35
|
/** @internal */
|
|
34
36
|
const TestEnv = /*#__PURE__*/TestEnvironment.TestContext.pipe( /*#__PURE__*/Layer.provide( /*#__PURE__*/Logger.remove(Logger.defaultLogger)));
|
|
35
37
|
/** @internal */
|
|
@@ -54,14 +56,45 @@ const makeTester = mapEffect => {
|
|
|
54
56
|
const each = cases => (name, self, timeout) => V.it.for(cases)(name, typeof timeout === "number" ? {
|
|
55
57
|
timeout
|
|
56
58
|
} : timeout ?? {}, (args, ctx) => run(ctx, [args], self));
|
|
59
|
+
const prop = (name, schemaObj, self, timeout) => {
|
|
60
|
+
if (Array.isArray(schemaObj)) {
|
|
61
|
+
const arbs = schemaObj.map(schema => Arbitrary.make(schema));
|
|
62
|
+
return V.it(name,
|
|
63
|
+
// @ts-ignore
|
|
64
|
+
ctx => fc.assert(fc.asyncProperty(...arbs, (...as) => run(ctx, [as, ctx], self))), timeout);
|
|
65
|
+
}
|
|
66
|
+
const arbs = fc.record(Object.keys(schemaObj).reduce(function (result, key) {
|
|
67
|
+
result[key] = Arbitrary.make(schemaObj[key]);
|
|
68
|
+
return result;
|
|
69
|
+
}, {}));
|
|
70
|
+
return V.it(name,
|
|
71
|
+
// @ts-ignore
|
|
72
|
+
ctx => fc.assert(fc.asyncProperty(arbs, (...as) => run(ctx, [as[0], ctx], self))), timeout);
|
|
73
|
+
};
|
|
57
74
|
return Object.assign(f, {
|
|
58
75
|
skip,
|
|
59
76
|
skipIf,
|
|
60
77
|
runIf,
|
|
61
78
|
only,
|
|
62
|
-
each
|
|
79
|
+
each,
|
|
80
|
+
prop
|
|
63
81
|
});
|
|
64
82
|
};
|
|
83
|
+
export const prop = (name, schemaObj, self, timeout) => {
|
|
84
|
+
if (Array.isArray(schemaObj)) {
|
|
85
|
+
const arbs = schemaObj.map(schema => Arbitrary.make(schema));
|
|
86
|
+
return V.it(name,
|
|
87
|
+
// @ts-ignore
|
|
88
|
+
ctx => fc.assert(fc.property(...arbs, (...as) => self(as, ctx))), timeout);
|
|
89
|
+
}
|
|
90
|
+
const arbs = fc.record(Object.keys(schemaObj).reduce(function (result, key) {
|
|
91
|
+
result[key] = Arbitrary.make(schemaObj[key]);
|
|
92
|
+
return result;
|
|
93
|
+
}, {}));
|
|
94
|
+
return V.it(name,
|
|
95
|
+
// @ts-ignore
|
|
96
|
+
ctx => fc.assert(fc.property(arbs, (...as) => self(as[0], ctx))), timeout);
|
|
97
|
+
};
|
|
65
98
|
/** @internal */
|
|
66
99
|
export const layer = (layer_, options) => (...args) => {
|
|
67
100
|
const memoMap = options?.memoMap ?? Effect.runSync(Layer.makeMemoMap);
|
|
@@ -69,6 +102,7 @@ export const layer = (layer_, options) => (...args) => {
|
|
|
69
102
|
const runtimeEffect = Layer.toRuntimeWithMemoMap(layer_, memoMap).pipe(Scope.extend(scope), Effect.orDie, Effect.cached, Effect.runSync);
|
|
70
103
|
const it = Object.assign(V.it, {
|
|
71
104
|
effect: makeTester(effect => Effect.flatMap(runtimeEffect, runtime => effect.pipe(Effect.provide(runtime), Effect.provide(TestEnv)))),
|
|
105
|
+
prop,
|
|
72
106
|
scoped: makeTester(effect => Effect.flatMap(runtimeEffect, runtime => effect.pipe(Effect.scoped, Effect.provide(runtime), Effect.provide(TestEnv)))),
|
|
73
107
|
live: makeTester(effect => Effect.flatMap(runtimeEffect, runtime => Effect.provide(effect, runtime))),
|
|
74
108
|
scopedLive: makeTester(effect => Effect.flatMap(runtimeEffect, runtime => effect.pipe(Effect.scoped, Effect.provide(runtime)))),
|
package/dist/esm/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","names":["Cause","Duration","Effect","Equal","Exit","Fiber","flow","identity","pipe","Layer","Logger","Schedule","Scope","TestEnvironment","Utils","V","runPromise","ctx","effect","gen","exitFiber","fork","exit","onTestFinished","interrupt","asVoid","join","isSuccess","value","errors","prettyErrors","cause","i","length","logError","then","f","runTest","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","layer","layer_","options","memoMap","runSync","makeMemoMap","scope","make","runtimeEffect","toRuntimeWithMemoMap","extend","orDie","cached","flatMap","runtime","scoped","live","scopedLive","flakyTest","nestedLayer","provideMerge","beforeAll","toMillis","afterAll","close","void","describe","seconds","catchAllDefect","fail","retry","recurs","compose","elapsed","whileOutput","lessThanOrEqualTo"],"sources":["../../src/internal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"internal.js","names":["Arbitrary","Cause","Duration","Effect","Equal","Exit","Fiber","flow","identity","pipe","Layer","Logger","Schedule","Scope","TestEnvironment","Utils","fc","V","runPromise","ctx","effect","gen","exitFiber","fork","exit","onTestFinished","interrupt","asVoid","join","isSuccess","value","errors","prettyErrors","cause","i","length","logError","then","f","runTest","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","prop","schemaObj","Array","isArray","arbs","map","schema","make","assert","asyncProperty","as","record","Object","keys","reduce","result","key","assign","property","layer","layer_","options","memoMap","runSync","makeMemoMap","scope","runtimeEffect","toRuntimeWithMemoMap","extend","orDie","cached","flatMap","runtime","scoped","live","scopedLive","flakyTest","nestedLayer","provideMerge","beforeAll","toMillis","afterAll","close","void","describe","seconds","catchAllDefect","fail","retry","recurs","compose","elapsed","whileOutput","lessThanOrEqualTo"],"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.
|
|
3
|
+
"version": "0.13.1",
|
|
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.5",
|
|
14
|
-
"effect": "^3.
|
|
14
|
+
"effect": "^3.10.1"
|
|
15
15
|
},
|
|
16
16
|
"publishConfig": {
|
|
17
17
|
"provenance": true
|
package/src/index.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import type * as Duration from "effect/Duration"
|
|
5
5
|
import type * as Effect from "effect/Effect"
|
|
6
6
|
import type * as Layer from "effect/Layer"
|
|
7
|
+
import type * as Schema from "effect/Schema"
|
|
7
8
|
import type * as Scope from "effect/Scope"
|
|
8
9
|
import type * as TestServices from "effect/TestServices"
|
|
9
10
|
import * as V from "vitest"
|
|
@@ -36,6 +37,11 @@ export namespace Vitest {
|
|
|
36
37
|
): void
|
|
37
38
|
}
|
|
38
39
|
|
|
40
|
+
/**
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
*/
|
|
43
|
+
export type SchemaObj = Array<Schema.Schema.Any> | { [K in string]: Schema.Schema.Any }
|
|
44
|
+
|
|
39
45
|
/**
|
|
40
46
|
* @since 1.0.0
|
|
41
47
|
*/
|
|
@@ -47,6 +53,21 @@ export namespace Vitest {
|
|
|
47
53
|
each: <T>(
|
|
48
54
|
cases: ReadonlyArray<T>
|
|
49
55
|
) => <A, E>(name: string, self: TestFunction<A, E, R, Array<T>>, timeout?: number | V.TestOptions) => void
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @since 1.0.0
|
|
59
|
+
*/
|
|
60
|
+
prop: <const S extends SchemaObj, A, E>(
|
|
61
|
+
name: string,
|
|
62
|
+
schemas: S,
|
|
63
|
+
self: TestFunction<
|
|
64
|
+
A,
|
|
65
|
+
E,
|
|
66
|
+
R,
|
|
67
|
+
[{ [K in keyof S]: Schema.Schema.Type<S[K]> }, V.TaskContext<V.RunnerTestCase<{}>> & V.TestContext]
|
|
68
|
+
>,
|
|
69
|
+
timeout?: number | V.TestOptions
|
|
70
|
+
) => void
|
|
50
71
|
}
|
|
51
72
|
|
|
52
73
|
/**
|
|
@@ -67,6 +88,19 @@ export namespace Vitest {
|
|
|
67
88
|
(f: (it: Vitest.Methods<R | R2>) => void): void
|
|
68
89
|
(name: string, f: (it: Vitest.Methods<R | R2>) => void): void
|
|
69
90
|
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* @since 1.0.0
|
|
94
|
+
*/
|
|
95
|
+
readonly prop: <const S extends SchemaObj>(
|
|
96
|
+
name: string,
|
|
97
|
+
schemas: S,
|
|
98
|
+
self: (
|
|
99
|
+
schemas: { [K in keyof S]: Schema.Schema.Type<S[K]> },
|
|
100
|
+
ctx: V.TaskContext<V.RunnerTestCase<{}>> & V.TestContext
|
|
101
|
+
) => void,
|
|
102
|
+
timeout?: number | V.TestOptions
|
|
103
|
+
) => void
|
|
70
104
|
}
|
|
71
105
|
}
|
|
72
106
|
|
|
@@ -151,8 +185,25 @@ export const flakyTest: <A, E, R>(
|
|
|
151
185
|
timeout?: Duration.DurationInput
|
|
152
186
|
) => Effect.Effect<A, never, R> = internal.flakyTest
|
|
153
187
|
|
|
188
|
+
/**
|
|
189
|
+
* @since 1.0.0
|
|
190
|
+
*/
|
|
191
|
+
export const prop: <const S extends Vitest.SchemaObj>(
|
|
192
|
+
name: string,
|
|
193
|
+
schemas: S,
|
|
194
|
+
self: (
|
|
195
|
+
schemas: { [K in keyof S]: Schema.Schema.Type<S[K]> },
|
|
196
|
+
ctx: V.TaskContext<V.RunnerTestCase<{}>> & V.TestContext
|
|
197
|
+
) => void,
|
|
198
|
+
timeout?: number | V.TestOptions
|
|
199
|
+
) => void = internal.prop
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* @since 1.0.0
|
|
203
|
+
*/
|
|
204
|
+
|
|
154
205
|
/** @ignored */
|
|
155
|
-
const methods = { effect, live, flakyTest, scoped, scopedLive, layer } as const
|
|
206
|
+
const methods = { effect, live, flakyTest, scoped, scopedLive, layer, prop } as const
|
|
156
207
|
|
|
157
208
|
/**
|
|
158
209
|
* @since 1.0.0
|
package/src/internal.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import type { Tester, TesterContext } from "@vitest/expect"
|
|
5
|
+
import * as Arbitrary from "effect/Arbitrary"
|
|
5
6
|
import * as Cause from "effect/Cause"
|
|
6
7
|
import * as Duration from "effect/Duration"
|
|
7
8
|
import * as Effect from "effect/Effect"
|
|
@@ -16,6 +17,7 @@ import * as Scope from "effect/Scope"
|
|
|
16
17
|
import * as TestEnvironment from "effect/TestContext"
|
|
17
18
|
import type * as TestServices from "effect/TestServices"
|
|
18
19
|
import * as Utils from "effect/Utils"
|
|
20
|
+
import fc from "fast-check"
|
|
19
21
|
import * as V from "vitest"
|
|
20
22
|
import type * as Vitest from "./index.js"
|
|
21
23
|
|
|
@@ -45,8 +47,7 @@ const runPromise = (ctx?: Vitest.TaskContext) => <E, A>(effect: Effect.Effect<A,
|
|
|
45
47
|
}).pipe(Effect.runPromise).then((f) => f())
|
|
46
48
|
|
|
47
49
|
/** @internal */
|
|
48
|
-
const runTest = (ctx?: Vitest.TaskContext) => <E, A>(effect: Effect.Effect<A, E>) =>
|
|
49
|
-
runPromise(ctx)(Effect.asVoid(effect))
|
|
50
|
+
const runTest = (ctx?: Vitest.TaskContext) => <E, A>(effect: Effect.Effect<A, E>) => runPromise(ctx)(effect)
|
|
50
51
|
|
|
51
52
|
/** @internal */
|
|
52
53
|
const TestEnv = TestEnvironment.TestContext.pipe(
|
|
@@ -93,10 +94,62 @@ const makeTester = <R>(
|
|
|
93
94
|
V.it.for(cases)(
|
|
94
95
|
name,
|
|
95
96
|
typeof timeout === "number" ? { timeout } : timeout ?? {},
|
|
96
|
-
(args, ctx) => run(ctx, [args], self)
|
|
97
|
+
(args, ctx) => run(ctx, [args], self) as any
|
|
97
98
|
)
|
|
98
99
|
|
|
99
|
-
|
|
100
|
+
const prop: Vitest.Vitest.Tester<R>["prop"] = (name, schemaObj, self, timeout) => {
|
|
101
|
+
if (Array.isArray(schemaObj)) {
|
|
102
|
+
const arbs = schemaObj.map((schema) => Arbitrary.make(schema))
|
|
103
|
+
return V.it(
|
|
104
|
+
name,
|
|
105
|
+
// @ts-ignore
|
|
106
|
+
(ctx) => fc.assert(fc.asyncProperty(...arbs, (...as) => run(ctx, [as as any, ctx], self))),
|
|
107
|
+
timeout
|
|
108
|
+
)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const arbs = fc.record(
|
|
112
|
+
Object.keys(schemaObj).reduce(function(result, key) {
|
|
113
|
+
result[key] = Arbitrary.make(schemaObj[key])
|
|
114
|
+
return result
|
|
115
|
+
}, {} as Record<string, fc.Arbitrary<any>>)
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
return V.it(
|
|
119
|
+
name,
|
|
120
|
+
// @ts-ignore
|
|
121
|
+
(ctx) => fc.assert(fc.asyncProperty(arbs, (...as) => run(ctx, [as[0] as any, ctx], self))),
|
|
122
|
+
timeout
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return Object.assign(f, { skip, skipIf, runIf, only, each, prop })
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export const prop: Vitest.Vitest.Methods["prop"] = (name, schemaObj, self, timeout) => {
|
|
130
|
+
if (Array.isArray(schemaObj)) {
|
|
131
|
+
const arbs = schemaObj.map((schema) => Arbitrary.make(schema))
|
|
132
|
+
return V.it(
|
|
133
|
+
name,
|
|
134
|
+
// @ts-ignore
|
|
135
|
+
(ctx) => fc.assert(fc.property(...arbs, (...as) => self(as, ctx))),
|
|
136
|
+
timeout
|
|
137
|
+
)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const arbs = fc.record(
|
|
141
|
+
Object.keys(schemaObj).reduce(function(result, key) {
|
|
142
|
+
result[key] = Arbitrary.make(schemaObj[key])
|
|
143
|
+
return result
|
|
144
|
+
}, {} as Record<string, fc.Arbitrary<any>>)
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
return V.it(
|
|
148
|
+
name,
|
|
149
|
+
// @ts-ignore
|
|
150
|
+
(ctx) => fc.assert(fc.property(arbs, (...as) => self(as[0], ctx))),
|
|
151
|
+
timeout
|
|
152
|
+
)
|
|
100
153
|
}
|
|
101
154
|
|
|
102
155
|
/** @internal */
|
|
@@ -127,6 +180,9 @@ export const layer = <R, E>(layer_: Layer.Layer<R, E>, options?: {
|
|
|
127
180
|
Effect.provide(TestEnv)
|
|
128
181
|
))
|
|
129
182
|
),
|
|
183
|
+
|
|
184
|
+
prop,
|
|
185
|
+
|
|
130
186
|
scoped: makeTester<TestServices.TestServices | Scope.Scope | R>((effect) =>
|
|
131
187
|
Effect.flatMap(runtimeEffect, (runtime) =>
|
|
132
188
|
effect.pipe(
|