@fncts/test 0.0.1 → 0.0.4
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/TestSpec.d.ts +4 -2
- package/_cjs/api.cjs +4 -4
- package/_cjs/control/Annotations/live.cjs +2 -2
- package/_cjs/control/Annotations.cjs +3 -3
- package/_cjs/control/Assertion/api.cjs +19 -8
- package/_cjs/control/Assertion/api.cjs.map +1 -1
- package/_cjs/control/Assertion/definition.cjs +1 -1
- package/_cjs/control/Assertion.cjs +2 -2
- package/_cjs/control/AssertionIO/api.cjs +1 -1
- package/_cjs/control/AssertionIO.cjs +2 -2
- package/_cjs/control/DefaultRunnableSpec.cjs +7 -1
- package/_cjs/control/DefaultRunnableSpec.cjs.map +1 -1
- package/_cjs/control/DefaultTestReporter/render.cjs +5 -5
- package/_cjs/control/DefaultTestReporter.cjs +2 -2
- package/_cjs/control/FreeBooleanAlgebraIO.cjs +2 -2
- package/_cjs/control/Gen/api/conc.cjs +8 -6
- package/_cjs/control/Gen/api/conc.cjs.map +1 -1
- package/_cjs/control/Gen/api/double.cjs +2 -2
- package/_cjs/control/Gen/api/float.cjs +1 -1
- package/_cjs/control/Gen/api/string.cjs +1 -1
- package/_cjs/control/Gen/api.cjs +3 -3
- package/_cjs/control/Gen.cjs +10 -10
- package/_cjs/control/Live.cjs +1 -1
- package/_cjs/control/RunnableSpec.cjs +9 -5
- package/_cjs/control/RunnableSpec.cjs.map +1 -1
- package/_cjs/control/Sample/api.cjs +2 -2
- package/_cjs/control/Sample.cjs +2 -2
- package/_cjs/control/Sized/live.cjs +1 -1
- package/_cjs/control/Sized.cjs +3 -3
- package/_cjs/control/Spec/api.cjs +2 -2
- package/_cjs/control/Spec.cjs +2 -2
- package/_cjs/control/TestAnnotationRenderer/api.cjs +1 -1
- package/_cjs/control/TestAnnotationRenderer.cjs +2 -2
- package/_cjs/control/TestAspect/api.cjs +2 -2
- package/_cjs/control/TestAspect/api.cjs.map +1 -1
- package/_cjs/control/TestAspect.cjs +2 -2
- package/_cjs/control/TestClock/definition.cjs +26 -24
- package/_cjs/control/TestClock/definition.cjs.map +1 -1
- package/_cjs/control/TestClock.cjs +2 -2
- package/_cjs/control/TestConsole.cjs +2 -2
- package/_cjs/control/TestExecutor.cjs +2 -2
- package/_cjs/control/TestRandom.cjs +2 -2
- package/_cjs/control/TestRenderer/ConsoleRenderer.cjs +2 -2
- package/_cjs/data/AssertionData.cjs +1 -1
- package/_cjs/data/AssertionValue/api.cjs +1 -1
- package/_cjs/data/AssertionValue.cjs +2 -2
- package/_cjs/data/ExecutedSpec/api.cjs +1 -1
- package/_cjs/data/ExecutedSpec.cjs +2 -2
- package/_cjs/data/FreeBooleanAlgebra/api.cjs +11 -3
- package/_cjs/data/FreeBooleanAlgebra/api.cjs.map +1 -1
- package/_cjs/data/FreeBooleanAlgebra.cjs +2 -2
- package/_cjs/data/LogLine/Fragment.cjs +1 -1
- package/_cjs/data/LogLine/Line.cjs +1 -1
- package/_cjs/data/LogLine/api.cjs +1 -1
- package/_cjs/data/LogLine.cjs +2 -2
- package/_cjs/data/Render/api.cjs +1 -1
- package/_cjs/data/Render.cjs +2 -2
- package/_cjs/data/RenderParam/api.cjs +2 -2
- package/_cjs/data/RenderParam.cjs +2 -2
- package/_cjs/data/TestAnnotation/api.cjs +1 -1
- package/_cjs/data/TestAnnotation.cjs +2 -2
- package/_cjs/data/TestArgs.cjs +1 -1
- package/_cjs/demo.cjs +2 -2
- package/_mjs/control/Assertion/api.mjs +7 -1
- package/_mjs/control/Assertion/api.mjs.map +1 -1
- package/_mjs/control/DefaultRunnableSpec.mjs +2 -1
- package/_mjs/control/DefaultRunnableSpec.mjs.map +1 -1
- package/_mjs/control/Gen/api/conc.mjs +8 -6
- package/_mjs/control/Gen/api/conc.mjs.map +1 -1
- package/_mjs/control/RunnableSpec.mjs +8 -5
- package/_mjs/control/RunnableSpec.mjs.map +1 -1
- package/_mjs/control/TestAspect/api.mjs +2 -2
- package/_mjs/control/TestAspect/api.mjs.map +1 -1
- package/_mjs/control/TestClock/definition.mjs +25 -24
- package/_mjs/control/TestClock/definition.mjs.map +1 -1
- package/_mjs/data/FreeBooleanAlgebra/api.mjs +10 -2
- package/_mjs/data/FreeBooleanAlgebra/api.mjs.map +1 -1
- package/_src/control/Assertion/api.ts +16 -1
- package/_src/control/DefaultRunnableSpec.ts +1 -1
- package/_src/control/Gen/api/conc.ts +8 -10
- package/_src/control/RunnableSpec.ts +7 -2
- package/_src/control/TestAspect/api.ts +5 -5
- package/_src/control/TestClock/definition.ts +6 -6
- package/_src/data/FreeBooleanAlgebra/api.ts +12 -6
- package/control/Assertion/api.d.ts +4 -0
- package/control/Gen/api/conc.d.ts +2 -2
- package/control/TestAspect/api.d.ts +2 -1
- package/control/TestClock/definition.d.ts +3 -1
- package/package.json +6 -6
- package/runTests.d.ts +1 -0
@@ -58,13 +58,13 @@ export class TestClock extends Clock {
|
|
58
58
|
) {
|
59
59
|
super();
|
60
60
|
}
|
61
|
-
sleep = (ms:
|
61
|
+
sleep = (ms: Lazy<Duration>) => {
|
62
62
|
const self = this;
|
63
63
|
return IO.gen(function* (_) {
|
64
64
|
const promise = yield* _(Future.make<never, void>());
|
65
65
|
const wait = yield* _(
|
66
66
|
self.clockState.modify((data) => {
|
67
|
-
const end = data.duration + ms;
|
67
|
+
const end = data.duration + ms().milliseconds;
|
68
68
|
if (end > data.duration) {
|
69
69
|
return [true, new Data(data.duration, data.sleeps.prepend([end, promise]))];
|
70
70
|
} else {
|
@@ -135,12 +135,12 @@ export class TestClock extends Clock {
|
|
135
135
|
}
|
136
136
|
|
137
137
|
private get delay(): UIO<void> {
|
138
|
-
return this.live.provide(Clock.sleep(5));
|
138
|
+
return this.live.provide(Clock.sleep((5).milliseconds));
|
139
139
|
}
|
140
140
|
|
141
141
|
private get awaitSuspended(): UIO<void> {
|
142
142
|
return this.suspended
|
143
|
-
.zipWith(this.live.provide(Clock.sleep(10)) > this.suspended, Equatable.strictEquals)
|
143
|
+
.zipWith(this.live.provide(Clock.sleep((10).milliseconds)) > this.suspended, Equatable.strictEquals)
|
144
144
|
.filterOrFail(Function.identity, (): void => undefined).eventually.asUnit;
|
145
145
|
}
|
146
146
|
|
@@ -149,7 +149,7 @@ export class TestClock extends Clock {
|
|
149
149
|
this.awaitSuspended >
|
150
150
|
this.clockState.modify((data) => {
|
151
151
|
const end = f(data.duration);
|
152
|
-
const sorted = data.sleeps.sortWith(([x], [y]) => Number.Ord.
|
152
|
+
const sorted = data.sleeps.sortWith(([x], [y]) => Number.Ord.compare(x, y));
|
153
153
|
return sorted.head
|
154
154
|
.flatMap(([duration, promise]) =>
|
155
155
|
duration <= end
|
@@ -188,7 +188,7 @@ export class TestClock extends Clock {
|
|
188
188
|
matchTag(
|
189
189
|
{
|
190
190
|
Start: () =>
|
191
|
-
Just(this.live.provide(Clock.sleep(
|
191
|
+
Just(this.live.provide(Clock.sleep((5).seconds) > Console.print(warning)).interruptible.fork.map(Pending)),
|
192
192
|
},
|
193
193
|
() => Nothing<IO<unknown, never, WarningData>>(),
|
194
194
|
),
|
@@ -34,22 +34,28 @@ export function failures<A>(self: FreeBooleanAlgebra<A>): Maybe<FreeBooleanAlgeb
|
|
34
34
|
return self
|
35
35
|
.fold<A, Either<FreeBooleanAlgebra<A>, FreeBooleanAlgebra<A>>>({
|
36
36
|
Value: (a) => Either.right(FreeBooleanAlgebra.success(a)),
|
37
|
-
And: (l, r) =>
|
38
|
-
|
37
|
+
And: (l, r) => {
|
38
|
+
Either.concrete(l);
|
39
|
+
Either.concrete(r);
|
40
|
+
return l.isRight()
|
39
41
|
? r.isRight()
|
40
42
|
? Either.right(l.right && r.right)
|
41
43
|
: r
|
42
44
|
: r.isRight()
|
43
45
|
? l
|
44
|
-
: Either.left(l.left && r.left)
|
45
|
-
|
46
|
-
|
46
|
+
: Either.left(l.left && r.left);
|
47
|
+
},
|
48
|
+
Or: (l, r) => {
|
49
|
+
Either.concrete(l);
|
50
|
+
Either.concrete(r);
|
51
|
+
return l.isRight()
|
47
52
|
? r.isRight()
|
48
53
|
? Either.right(l.right || r.right)
|
49
54
|
: l
|
50
55
|
: r.isRight()
|
51
56
|
? r
|
52
|
-
: Either.left(l.left || r.left)
|
57
|
+
: Either.left(l.left || r.left);
|
58
|
+
},
|
53
59
|
Not: (v) => v.swap,
|
54
60
|
})
|
55
61
|
.match(Maybe.just, () => Nothing());
|
@@ -52,11 +52,15 @@ export declare function deepEqualTo<A>(expected: A): Assertion<A>;
|
|
52
52
|
export declare function equals<A>(expected: A, E: Eq<A>): Assertion<A>;
|
53
53
|
export declare const isFalse: Assertion<boolean>;
|
54
54
|
export declare const isInterrupted: Assertion<Exit<any, any>>;
|
55
|
+
export declare const isOnlyInterrupted: Assertion<Exit<any, any>>;
|
55
56
|
export declare function isLeft<A>(assertion: Assertion<A>): Assertion<Either<A, any>>;
|
56
57
|
export declare function isJust<A>(assertion: Assertion<A>): Assertion<Maybe<A>>;
|
57
58
|
export declare const isNothing: Assertion<Maybe<any>>;
|
58
59
|
export declare function isRight<A>(assertion: Assertion<A>): Assertion<Either<any, A>>;
|
59
60
|
export declare const isTrue: Assertion<boolean>;
|
61
|
+
export declare const isEmpty: Assertion<Iterable<any>>;
|
62
|
+
export declare const isUnit: Assertion<void>;
|
63
|
+
export declare function isLessThanOrEqualTo(n: number): Assertion<number>;
|
60
64
|
/**
|
61
65
|
* @tsplus fluent fncts.test.Assertion label
|
62
66
|
* @tsplus location "@fncts/test/control/Assertion/api"
|
@@ -20,7 +20,7 @@ export declare function concN_<R, A>(g: Gen<R, A>, n: number): Gen<R, Conc<A>>;
|
|
20
20
|
*/
|
21
21
|
export declare function uniqueConc_<R, A>(self: Gen<R, A>, constraints?: LengthConstraints & EqConstraint<A>): Gen<Has<Sized> & R, Conc<A>>;
|
22
22
|
/**
|
23
|
-
* @tsplus
|
23
|
+
* @tsplus fluent fncts.test.Gen uniqueConcN
|
24
24
|
* @tsplus location "@fncts/test/control/Gen/api/conc"
|
25
25
|
*/
|
26
|
-
export declare function uniqueConcN_<R, A>(self: Gen<R, A
|
26
|
+
export declare function uniqueConcN_<R, A>(self: Gen<R, A>, n: number, /** @tsplus auto */ E: Eq<A>): Gen<R, Conc<A>>;
|
@@ -2,6 +2,7 @@ import { Has } from "@fncts/base/typeclass";
|
|
2
2
|
import { IO } from "@fncts/io/IO";
|
3
3
|
import { Schedule } from "@fncts/io/Schedule/definition";
|
4
4
|
import { Environment } from "@fncts/base/data/Environment";
|
5
|
+
import { Duration } from "@fncts/base/data/Duration";
|
5
6
|
import { Vector } from "@fncts/base/collection/immutable/Vector";
|
6
7
|
import type { TestAspect } from "@fncts/test/control/TestAspect/definition";
|
7
8
|
import type { TestSuccess } from "@fncts/test/data/TestSuccess";
|
@@ -20,4 +21,4 @@ export declare function before<R0>(effect: IO<R0, never, any>): TestAspect<R0, n
|
|
20
21
|
export declare function beforeAll<R0, E0>(effect: IO<R0, E0, any>): TestAspect<R0, E0>;
|
21
22
|
export declare const eventually: TestAspect<unknown, unknown>;
|
22
23
|
export declare function repeat<R0>(schedule: Schedule<R0, TestSuccess, any>): TestAspect<R0 & Has<Annotations>, never>;
|
23
|
-
export declare function timeoutWarning(duration:
|
24
|
+
export declare function timeoutWarning(duration: Duration): TestAspect<Has<Live>, any>;
|
@@ -3,6 +3,8 @@ import { Future } from "@fncts/io/Future";
|
|
3
3
|
import { FiberId } from "@fncts/base/data/FiberId/definition";
|
4
4
|
import { Fiber } from "@fncts/io/Fiber";
|
5
5
|
import { Ref } from "@fncts/io/Ref";
|
6
|
+
import { Lazy } from "@fncts/base/data/function/definition";
|
7
|
+
import { Duration } from "@fncts/base/data/Duration";
|
6
8
|
import { UIO, IO } from "@fncts/io/IO";
|
7
9
|
import { HashSet } from "@fncts/base/collection/immutable/HashSet";
|
8
10
|
import { HashMap } from "@fncts/base/collection/immutable/HashMap";
|
@@ -48,7 +50,7 @@ export declare class TestClock extends Clock {
|
|
48
50
|
readonly annotations: Annotations;
|
49
51
|
readonly warningState: Ref.Synchronized<WarningData>;
|
50
52
|
constructor(clockState: Ref<Data>, live: Live, annotations: Annotations, warningState: Ref.Synchronized<WarningData>);
|
51
|
-
sleep: (ms:
|
53
|
+
sleep: (ms: Lazy<Duration>) => import("@fncts/io/IO").IO<unknown, never, void>;
|
52
54
|
currentTime: import("@fncts/io/IO").IO<unknown, never, number>;
|
53
55
|
adjust(duration: number): UIO<void>;
|
54
56
|
setDate(date: Date): UIO<void>;
|
package/package.json
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fncts/test",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.4",
|
4
4
|
"dependencies": {
|
5
|
-
"@fncts/base": "0.0.
|
6
|
-
"@fncts/io": "0.0.
|
7
|
-
"@fncts/typelevel": "0.0.
|
5
|
+
"@fncts/base": "0.0.4",
|
6
|
+
"@fncts/io": "0.0.4",
|
7
|
+
"@fncts/typelevel": "0.0.4"
|
8
8
|
},
|
9
9
|
"exports": {
|
10
10
|
"./*": {
|
11
|
-
"import": "./_mjs
|
12
|
-
"require": "./_cjs
|
11
|
+
"import": "./_mjs/*.mjs",
|
12
|
+
"require": "./_cjs/*.cjs"
|
13
13
|
}
|
14
14
|
},
|
15
15
|
"publishConfig": {
|
package/runTests.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|