@fncts/test 0.0.38 → 0.0.40
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/_cjs/api.cjs +16 -4
- package/_cjs/api.cjs.map +1 -1
- package/_cjs/control/AbstractRunnableSpec.cjs +6 -3
- package/_cjs/control/AbstractRunnableSpec.cjs.map +1 -1
- package/_cjs/control/Annotations/api.cjs +3 -4
- package/_cjs/control/Annotations/api.cjs.map +1 -1
- package/_cjs/control/Annotations/definition.cjs +4 -6
- package/_cjs/control/Annotations/definition.cjs.map +1 -1
- package/_cjs/control/Annotations/live.cjs +7 -5
- package/_cjs/control/Annotations/live.cjs.map +1 -1
- package/_cjs/control/Annotations.cjs +8 -8
- package/_cjs/control/Annotations.cjs.map +1 -1
- package/_cjs/control/Assertion/api.cjs +35 -33
- package/_cjs/control/Assertion/api.cjs.map +1 -1
- package/_cjs/control/Assertion/definition.cjs +3 -3
- package/_cjs/control/Assertion/definition.cjs.map +1 -1
- package/_cjs/control/Assertion.cjs +8 -8
- package/_cjs/control/Assertion.cjs.map +1 -1
- package/_cjs/control/AssertionIO/api.cjs +2 -2
- package/_cjs/control/AssertionIO/api.cjs.map +1 -1
- package/_cjs/control/AssertionIO/definition.cjs +3 -4
- package/_cjs/control/AssertionIO/definition.cjs.map +1 -1
- package/_cjs/control/AssertionIO.cjs +8 -8
- package/_cjs/control/AssertionIO.cjs.map +1 -1
- package/_cjs/control/DefaultRunnableSpec.cjs +2 -2
- package/_cjs/control/DefaultRunnableSpec.cjs.map +1 -1
- package/_cjs/control/DefaultTestReporter/definition.cjs +1 -2
- package/_cjs/control/DefaultTestReporter/definition.cjs.map +1 -1
- package/_cjs/control/DefaultTestReporter/render.cjs +29 -23
- package/_cjs/control/DefaultTestReporter/render.cjs.map +1 -1
- package/_cjs/control/DefaultTestReporter.cjs +8 -8
- package/_cjs/control/DefaultTestReporter.cjs.map +1 -1
- package/_cjs/control/FreeBooleanAlgebraIO/api.cjs +2 -2
- package/_cjs/control/FreeBooleanAlgebraIO/definition.cjs +1 -2
- package/_cjs/control/FreeBooleanAlgebraIO/definition.cjs.map +1 -1
- package/_cjs/control/FreeBooleanAlgebraIO.cjs +8 -8
- package/_cjs/control/FreeBooleanAlgebraIO.cjs.map +1 -1
- package/_cjs/control/Gen/api.cjs +63 -126
- package/_cjs/control/Gen/api.cjs.map +1 -1
- package/_cjs/control/Gen.cjs +8 -8
- package/_cjs/control/Gen.cjs.map +1 -1
- package/_cjs/control/Live/definition.cjs +3 -4
- package/_cjs/control/Live/definition.cjs.map +1 -1
- package/_cjs/control/Live.cjs.map +1 -1
- package/_cjs/control/Sample/api.cjs +20 -19
- package/_cjs/control/Sample/api.cjs.map +1 -1
- package/_cjs/control/Sample/definition.cjs.map +1 -1
- package/_cjs/control/Sample.cjs +8 -8
- package/_cjs/control/Sample.cjs.map +1 -1
- package/_cjs/control/Sized/api.cjs +3 -4
- package/_cjs/control/Sized/api.cjs.map +1 -1
- package/_cjs/control/Sized/definition.cjs +3 -4
- package/_cjs/control/Sized/definition.cjs.map +1 -1
- package/_cjs/control/Sized/live.cjs +2 -2
- package/_cjs/control/Sized/live.cjs.map +1 -1
- package/_cjs/control/Sized.cjs +8 -8
- package/_cjs/control/Sized.cjs.map +1 -1
- package/_cjs/control/Spec/api.cjs +18 -34
- package/_cjs/control/Spec/api.cjs.map +1 -1
- package/_cjs/control/Spec/definition.cjs +1 -2
- package/_cjs/control/Spec/definition.cjs.map +1 -1
- package/_cjs/control/Spec.cjs +8 -8
- package/_cjs/control/Spec.cjs.map +1 -1
- package/_cjs/control/SummaryBuilder.cjs +11 -6
- package/_cjs/control/SummaryBuilder.cjs.map +1 -1
- package/_cjs/control/Test.cjs +3 -4
- package/_cjs/control/Test.cjs.map +1 -1
- package/_cjs/control/TestAnnotationRenderer/api.cjs +9 -16
- package/_cjs/control/TestAnnotationRenderer/api.cjs.map +1 -1
- package/_cjs/control/TestAnnotationRenderer/definition.cjs +3 -6
- package/_cjs/control/TestAnnotationRenderer/definition.cjs.map +1 -1
- package/_cjs/control/TestAnnotationRenderer.cjs +8 -8
- package/_cjs/control/TestAnnotationRenderer.cjs.map +1 -1
- package/_cjs/control/TestAspect/api.cjs +8 -9
- package/_cjs/control/TestAspect/api.cjs.map +1 -1
- package/_cjs/control/TestAspect.cjs +8 -8
- package/_cjs/control/TestAspect.cjs.map +1 -1
- package/_cjs/control/TestClock/api.cjs +7 -8
- package/_cjs/control/TestClock/api.cjs.map +1 -1
- package/_cjs/control/TestClock/definition.cjs +36 -36
- package/_cjs/control/TestClock/definition.cjs.map +1 -1
- package/_cjs/control/TestClock.cjs +8 -8
- package/_cjs/control/TestClock.cjs.map +1 -1
- package/_cjs/control/TestConsole/api.cjs +7 -8
- package/_cjs/control/TestConsole/api.cjs.map +1 -1
- package/_cjs/control/TestConsole/definition.cjs +14 -15
- package/_cjs/control/TestConsole/definition.cjs.map +1 -1
- package/_cjs/control/TestConsole.cjs +8 -8
- package/_cjs/control/TestConsole.cjs.map +1 -1
- package/_cjs/control/TestEnvironment.cjs +4 -6
- package/_cjs/control/TestEnvironment.cjs.map +1 -1
- package/_cjs/control/TestLogger.cjs +4 -6
- package/_cjs/control/TestLogger.cjs.map +1 -1
- package/_cjs/control/TestRandom/api.cjs +5 -8
- package/_cjs/control/TestRandom/api.cjs.map +1 -1
- package/_cjs/control/TestRandom/definition.cjs +36 -40
- package/_cjs/control/TestRandom/definition.cjs.map +1 -1
- package/_cjs/control/TestRandom.cjs +8 -8
- package/_cjs/control/TestRandom.cjs.map +1 -1
- package/_cjs/control/TestRenderer/ConsoleRenderer.cjs +4 -5
- package/_cjs/control/TestRenderer/ConsoleRenderer.cjs.map +1 -1
- package/_cjs/data/AssertionData.cjs +5 -8
- package/_cjs/data/AssertionData.cjs.map +1 -1
- package/_cjs/data/AssertionResult.cjs +3 -4
- package/_cjs/data/AssertionResult.cjs.map +1 -1
- package/_cjs/data/AssertionValue/api.cjs +2 -2
- package/_cjs/data/AssertionValue/api.cjs.map +1 -1
- package/_cjs/data/AssertionValue/definition.cjs +3 -4
- package/_cjs/data/AssertionValue/definition.cjs.map +1 -1
- package/_cjs/data/AssertionValue.cjs +8 -8
- package/_cjs/data/AssertionValue.cjs.map +1 -1
- package/_cjs/data/ExecutedSpec/api.cjs +4 -6
- package/_cjs/data/ExecutedSpec/api.cjs.map +1 -1
- package/_cjs/data/ExecutedSpec/definition.cjs.map +1 -1
- package/_cjs/data/ExecutedSpec.cjs +8 -8
- package/_cjs/data/ExecutedSpec.cjs.map +1 -1
- package/_cjs/data/ExecutionResult.cjs +8 -14
- package/_cjs/data/ExecutionResult.cjs.map +1 -1
- package/_cjs/data/FailureDetails.cjs.map +1 -1
- package/_cjs/data/FreeBooleanAlgebra/api.cjs +17 -23
- package/_cjs/data/FreeBooleanAlgebra/api.cjs.map +1 -1
- package/_cjs/data/FreeBooleanAlgebra/definition.cjs +1 -2
- package/_cjs/data/FreeBooleanAlgebra/definition.cjs.map +1 -1
- package/_cjs/data/FreeBooleanAlgebra.cjs +8 -8
- package/_cjs/data/FreeBooleanAlgebra.cjs.map +1 -1
- package/_cjs/data/GenFailureDetails.cjs.map +1 -1
- package/_cjs/data/LogLine/Fragment.cjs +2 -2
- package/_cjs/data/LogLine/Fragment.cjs.map +1 -1
- package/_cjs/data/LogLine/Line.cjs +5 -8
- package/_cjs/data/LogLine/Line.cjs.map +1 -1
- package/_cjs/data/LogLine/Message.cjs +7 -12
- package/_cjs/data/LogLine/Message.cjs.map +1 -1
- package/_cjs/data/LogLine/Style.cjs +8 -16
- package/_cjs/data/LogLine/Style.cjs.map +1 -1
- package/_cjs/data/LogLine/api.cjs +3 -4
- package/_cjs/data/LogLine/api.cjs.map +1 -1
- package/_cjs/data/Render/definition.cjs +3 -6
- package/_cjs/data/Render/definition.cjs.map +1 -1
- package/_cjs/data/Render.cjs +8 -8
- package/_cjs/data/Render.cjs.map +1 -1
- package/_cjs/data/RenderParam/api.cjs.map +1 -1
- package/_cjs/data/RenderParam/definition.cjs +1 -2
- package/_cjs/data/RenderParam/definition.cjs.map +1 -1
- package/_cjs/data/RenderParam.cjs +8 -8
- package/_cjs/data/RenderParam.cjs.map +1 -1
- package/_cjs/data/Summary.cjs.map +1 -1
- package/_cjs/data/TestAnnotation/api.cjs +15 -27
- package/_cjs/data/TestAnnotation/api.cjs.map +1 -1
- package/_cjs/data/TestAnnotation/definition.cjs +4 -6
- package/_cjs/data/TestAnnotation/definition.cjs.map +1 -1
- package/_cjs/data/TestAnnotation.cjs +8 -8
- package/_cjs/data/TestAnnotation.cjs.map +1 -1
- package/_cjs/data/TestAnnotationMap.cjs +2 -2
- package/_cjs/data/TestAnnotationMap.cjs.map +1 -1
- package/_cjs/data/TestArgs.cjs.map +1 -1
- package/_cjs/data/TestConfig.cjs +7 -12
- package/_cjs/data/TestConfig.cjs.map +1 -1
- package/_cjs/data/TestFailure.cjs +3 -4
- package/_cjs/data/TestFailure.cjs.map +1 -1
- package/_cjs/data/TestSuccess.cjs +2 -4
- package/_cjs/data/TestSuccess.cjs.map +1 -1
- package/_cjs/demo.cjs +2 -2
- package/_cjs/demo.cjs.map +1 -1
- package/_cjs/util/math.cjs +7 -14
- package/_cjs/util/math.cjs.map +1 -1
- package/_cjs/vitest.cjs +37 -29
- package/_cjs/vitest.cjs.map +1 -1
- package/_mjs/api.mjs +14 -2
- package/_mjs/api.mjs.map +1 -1
- package/_mjs/control/AbstractRunnableSpec.mjs +4 -1
- package/_mjs/control/AbstractRunnableSpec.mjs.map +1 -1
- package/_mjs/control/Annotations/live.mjs +4 -1
- package/_mjs/control/Annotations/live.mjs.map +1 -1
- package/_mjs/control/Annotations.mjs +3 -2
- package/_mjs/control/Annotations.mjs.map +1 -1
- package/_mjs/control/Assertion/api.mjs +15 -3
- package/_mjs/control/Assertion/api.mjs.map +1 -1
- package/_mjs/control/Assertion/definition.mjs +1 -1
- package/_mjs/control/Assertion/definition.mjs.map +1 -1
- package/_mjs/control/Assertion.mjs +2 -1
- package/_mjs/control/Assertion.mjs.map +1 -1
- package/_mjs/control/AssertionIO/definition.mjs.map +1 -1
- package/_mjs/control/AssertionIO.mjs +2 -1
- package/_mjs/control/AssertionIO.mjs.map +1 -1
- package/_mjs/control/DefaultTestReporter/render.mjs +27 -21
- package/_mjs/control/DefaultTestReporter/render.mjs.map +1 -1
- package/_mjs/control/DefaultTestReporter.mjs +2 -1
- package/_mjs/control/DefaultTestReporter.mjs.map +1 -1
- package/_mjs/control/FreeBooleanAlgebraIO.mjs +2 -1
- package/_mjs/control/FreeBooleanAlgebraIO.mjs.map +1 -1
- package/_mjs/control/Gen/api.mjs +0 -2
- package/_mjs/control/Gen/api.mjs.map +1 -1
- package/_mjs/control/Gen.mjs +3 -2
- package/_mjs/control/Gen.mjs.map +1 -1
- package/_mjs/control/Live/definition.mjs +1 -2
- package/_mjs/control/Live/definition.mjs.map +1 -1
- package/_mjs/control/Live.mjs +1 -0
- package/_mjs/control/Live.mjs.map +1 -1
- package/_mjs/control/Sample/api.mjs +10 -1
- package/_mjs/control/Sample/api.mjs.map +1 -1
- package/_mjs/control/Sample/definition.mjs.map +1 -1
- package/_mjs/control/Sample.mjs +2 -1
- package/_mjs/control/Sample.mjs.map +1 -1
- package/_mjs/control/Sized/live.mjs.map +1 -1
- package/_mjs/control/Sized.mjs +3 -2
- package/_mjs/control/Sized.mjs.map +1 -1
- package/_mjs/control/Spec/api.mjs.map +1 -1
- package/_mjs/control/Spec/definition.mjs.map +1 -1
- package/_mjs/control/Spec.mjs +2 -1
- package/_mjs/control/Spec.mjs.map +1 -1
- package/_mjs/control/SummaryBuilder.mjs +8 -2
- package/_mjs/control/SummaryBuilder.mjs.map +1 -1
- package/_mjs/control/TestAnnotationRenderer/api.mjs.map +1 -1
- package/_mjs/control/TestAnnotationRenderer/definition.mjs +0 -2
- package/_mjs/control/TestAnnotationRenderer/definition.mjs.map +1 -1
- package/_mjs/control/TestAnnotationRenderer.mjs +2 -1
- package/_mjs/control/TestAnnotationRenderer.mjs.map +1 -1
- package/_mjs/control/TestAspect.mjs +2 -1
- package/_mjs/control/TestAspect.mjs.map +1 -1
- package/_mjs/control/TestClock/definition.mjs +31 -28
- package/_mjs/control/TestClock/definition.mjs.map +1 -1
- package/_mjs/control/TestClock.mjs +2 -1
- package/_mjs/control/TestClock.mjs.map +1 -1
- package/_mjs/control/TestConsole/definition.mjs +11 -11
- package/_mjs/control/TestConsole/definition.mjs.map +1 -1
- package/_mjs/control/TestConsole.mjs +2 -1
- package/_mjs/control/TestConsole.mjs.map +1 -1
- package/_mjs/control/TestLogger.mjs.map +1 -1
- package/_mjs/control/TestRandom/definition.mjs +33 -36
- package/_mjs/control/TestRandom/definition.mjs.map +1 -1
- package/_mjs/control/TestRandom.mjs +2 -1
- package/_mjs/control/TestRandom.mjs.map +1 -1
- package/_mjs/control/TestRenderer/ConsoleRenderer.mjs +1 -1
- package/_mjs/control/TestRenderer/ConsoleRenderer.mjs.map +1 -1
- package/_mjs/data/AssertionData.mjs.map +1 -1
- package/_mjs/data/AssertionValue.mjs +2 -1
- package/_mjs/data/AssertionValue.mjs.map +1 -1
- package/_mjs/data/ExecutedSpec/definition.mjs +0 -2
- package/_mjs/data/ExecutedSpec/definition.mjs.map +1 -1
- package/_mjs/data/ExecutedSpec.mjs +2 -1
- package/_mjs/data/ExecutedSpec.mjs.map +1 -1
- package/_mjs/data/ExecutionResult.mjs.map +1 -1
- package/_mjs/data/FailureDetails.mjs.map +1 -1
- package/_mjs/data/FreeBooleanAlgebra/api.mjs +6 -3
- package/_mjs/data/FreeBooleanAlgebra/api.mjs.map +1 -1
- package/_mjs/data/FreeBooleanAlgebra/definition.mjs +0 -4
- package/_mjs/data/FreeBooleanAlgebra/definition.mjs.map +1 -1
- package/_mjs/data/FreeBooleanAlgebra.mjs +2 -1
- package/_mjs/data/FreeBooleanAlgebra.mjs.map +1 -1
- package/_mjs/data/GenFailureDetails.mjs.map +1 -1
- package/_mjs/data/LogLine/Fragment.mjs.map +1 -1
- package/_mjs/data/LogLine/Line.mjs.map +1 -1
- package/_mjs/data/LogLine/Message.mjs.map +1 -1
- package/_mjs/data/Render/definition.mjs +0 -2
- package/_mjs/data/Render/definition.mjs.map +1 -1
- package/_mjs/data/Render.mjs +2 -1
- package/_mjs/data/Render.mjs.map +1 -1
- package/_mjs/data/RenderParam/api.mjs.map +1 -1
- package/_mjs/data/RenderParam/definition.mjs +0 -2
- package/_mjs/data/RenderParam/definition.mjs.map +1 -1
- package/_mjs/data/RenderParam.mjs +2 -1
- package/_mjs/data/RenderParam.mjs.map +1 -1
- package/_mjs/data/Summary.mjs.map +1 -1
- package/_mjs/data/TestAnnotation/api.mjs +1 -1
- package/_mjs/data/TestAnnotation/api.mjs.map +1 -1
- package/_mjs/data/TestAnnotation.mjs +2 -1
- package/_mjs/data/TestAnnotation.mjs.map +1 -1
- package/_mjs/data/TestAnnotationMap.mjs +1 -2
- package/_mjs/data/TestAnnotationMap.mjs.map +1 -1
- package/_mjs/data/TestArgs.mjs +1 -0
- package/_mjs/data/TestArgs.mjs.map +1 -1
- package/_mjs/data/TestConfig.mjs.map +1 -1
- package/_mjs/data/TestFailure.mjs +0 -2
- package/_mjs/data/TestFailure.mjs.map +1 -1
- package/_mjs/data/TestSuccess.mjs +0 -2
- package/_mjs/data/TestSuccess.mjs.map +1 -1
- package/_mjs/util/math.mjs +0 -2
- package/_mjs/util/math.mjs.map +1 -1
- package/_mjs/vitest.mjs +21 -11
- package/_mjs/vitest.mjs.map +1 -1
- package/_src/api.ts +16 -16
- package/_src/control/AbstractRunnableSpec.ts +4 -4
- package/_src/control/Annotations/live.ts +4 -4
- package/_src/control/Annotations.ts +3 -2
- package/_src/control/Assertion/api.ts +16 -8
- package/_src/control/Assertion/definition.ts +4 -1
- package/_src/control/Assertion.ts +2 -1
- package/_src/control/AssertionIO/definition.ts +4 -1
- package/_src/control/AssertionIO.ts +2 -1
- package/_src/control/DefaultTestReporter/render.ts +10 -11
- package/_src/control/DefaultTestReporter.ts +2 -1
- package/_src/control/FreeBooleanAlgebraIO.ts +2 -1
- package/_src/control/Gen/api.ts +4 -4
- package/_src/control/Gen.ts +3 -2
- package/_src/control/Live.ts +1 -0
- package/_src/control/Sample/api.ts +12 -12
- package/_src/control/Sample/definition.ts +4 -1
- package/_src/control/Sample.ts +2 -1
- package/_src/control/Sized.ts +3 -2
- package/_src/control/Spec/definition.ts +12 -3
- package/_src/control/Spec.ts +2 -1
- package/_src/control/SummaryBuilder.ts +8 -8
- package/_src/control/TestAnnotationRenderer.ts +2 -1
- package/_src/control/TestAspect.ts +2 -1
- package/_src/control/TestClock/definition.ts +13 -6
- package/_src/control/TestClock.ts +2 -1
- package/_src/control/TestConsole/definition.ts +5 -1
- package/_src/control/TestConsole.ts +2 -1
- package/_src/control/TestRandom/definition.ts +4 -1
- package/_src/control/TestRandom.ts +2 -1
- package/_src/control/TestRenderer/ConsoleRenderer.ts +1 -1
- package/_src/control.ts +21 -23
- package/_src/data/AssertionData.ts +4 -1
- package/_src/data/AssertionValue.ts +2 -1
- package/_src/data/ExecutedSpec/definition.ts +8 -2
- package/_src/data/ExecutedSpec.ts +2 -1
- package/_src/data/FailureDetails.ts +4 -1
- package/_src/data/FreeBooleanAlgebra/api.ts +5 -5
- package/_src/data/FreeBooleanAlgebra/definition.ts +8 -2
- package/_src/data/FreeBooleanAlgebra.ts +2 -1
- package/_src/data/GenFailureDetails.ts +5 -1
- package/_src/data/LogLine/Fragment.ts +4 -1
- package/_src/data/LogLine/Line.ts +4 -1
- package/_src/data/Render/definition.ts +9 -2
- package/_src/data/Render.ts +2 -1
- package/_src/data/RenderParam.ts +2 -1
- package/_src/data/Summary.ts +6 -1
- package/_src/data/TestAnnotation/api.ts +6 -6
- package/_src/data/TestAnnotation.ts +2 -1
- package/_src/data/TestArgs.ts +1 -0
- package/_src/data.ts +19 -18
- package/_src/index.ts +7 -6
- package/_src/util.ts +1 -0
- package/_src/vitest.ts +26 -15
- package/api.d.ts +5 -5
- package/control/AbstractRunnableSpec.d.ts +1 -1
- package/control/Annotations/definition.d.ts +1 -1
- package/control/Annotations.d.ts +2 -2
- package/control/Assertion/api.d.ts +2 -0
- package/control/Assertion.d.ts +1 -1
- package/control/AssertionIO.d.ts +1 -1
- package/control/DefaultTestReporter.d.ts +1 -1
- package/control/FreeBooleanAlgebraIO/api.d.ts +2 -2
- package/control/FreeBooleanAlgebraIO.d.ts +1 -1
- package/control/Gen/api.d.ts +13 -13
- package/control/Gen.d.ts +2 -2
- package/control/Live/definition.d.ts +2 -2
- package/control/Sample/api.d.ts +6 -6
- package/control/Sample.d.ts +1 -1
- package/control/Sized/api.d.ts +1 -1
- package/control/Sized/definition.d.ts +1 -1
- package/control/Sized.d.ts +2 -2
- package/control/Spec/api.d.ts +9 -9
- package/control/Spec.d.ts +1 -1
- package/control/TestAnnotationRenderer.d.ts +1 -1
- package/control/TestAspect.d.ts +1 -1
- package/control/TestClock/definition.d.ts +1 -1
- package/control/TestClock.d.ts +1 -1
- package/control/TestConsole/definition.d.ts +1 -1
- package/control/TestConsole.d.ts +1 -1
- package/control/TestLogger.d.ts +1 -1
- package/control/TestRandom/api.d.ts +1 -1
- package/control/TestRandom/definition.d.ts +1 -1
- package/control/TestRandom.d.ts +1 -1
- package/control.d.ts +20 -23
- package/data/AssertionValue.d.ts +1 -1
- package/data/ExecutedSpec.d.ts +1 -1
- package/data/FreeBooleanAlgebra.d.ts +1 -1
- package/data/Render.d.ts +1 -1
- package/data/RenderParam.d.ts +1 -1
- package/data/TestAnnotation/api.d.ts +6 -6
- package/data/TestAnnotation.d.ts +1 -1
- package/data/TestConfig.d.ts +1 -1
- package/data.d.ts +18 -18
- package/index.d.ts +5 -5
- package/package.json +4 -4
- package/vitest.d.ts +11 -5
|
@@ -8,11 +8,18 @@ import { FiberStatusTag } from "@fncts/io/FiberStatus";
|
|
|
8
8
|
import { TestAnnotation } from "@fncts/test/data/TestAnnotation";
|
|
9
9
|
|
|
10
10
|
export class Data {
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(
|
|
12
|
+
readonly duration: number,
|
|
13
|
+
readonly sleeps: List<readonly [number, Future<never, void>]>,
|
|
14
|
+
) {}
|
|
12
15
|
}
|
|
13
16
|
|
|
14
17
|
export class Sleep {
|
|
15
|
-
constructor(
|
|
18
|
+
constructor(
|
|
19
|
+
readonly duration: number,
|
|
20
|
+
readonly promise: Future<never, void>,
|
|
21
|
+
readonly fiberId: FiberId,
|
|
22
|
+
) {}
|
|
16
23
|
}
|
|
17
24
|
|
|
18
25
|
interface Start {
|
|
@@ -98,13 +105,13 @@ export class TestClock extends Clock {
|
|
|
98
105
|
get supervizedFibers(): UIO<HashSet<Fiber.Runtime<any, any>>> {
|
|
99
106
|
return IO.fiberId.flatMap((fiberId) =>
|
|
100
107
|
this.annotations.get(TestAnnotation.Fibers).flatMap((_) =>
|
|
101
|
-
_.match(
|
|
102
|
-
(_) => IO.succeed(HashSet.empty()),
|
|
103
|
-
(fibers) =>
|
|
108
|
+
_.match({
|
|
109
|
+
Left: (_) => IO.succeed(HashSet.empty()),
|
|
110
|
+
Right: (fibers) =>
|
|
104
111
|
IO.foreach(fibers, (ref) => ref.get)
|
|
105
112
|
.map((_) => _.foldLeft(HashSet.empty<Fiber.Runtime<any, any>>(), (s0, s1) => s0.union(s1)))
|
|
106
113
|
.map((set) => set.filter((f) => !Equatable.strictEquals(f.id, fiberId))),
|
|
107
|
-
),
|
|
114
|
+
}),
|
|
108
115
|
),
|
|
109
116
|
);
|
|
110
117
|
}
|
|
@@ -15,7 +15,11 @@ export class ConsoleData extends CaseClass<{
|
|
|
15
15
|
* @tsplus companion fncts.test.TestConsoleOps
|
|
16
16
|
*/
|
|
17
17
|
export class TestConsole implements Console {
|
|
18
|
-
constructor(
|
|
18
|
+
constructor(
|
|
19
|
+
readonly consoleState: Ref<ConsoleData>,
|
|
20
|
+
readonly live: Live,
|
|
21
|
+
readonly debugState: FiberRef<boolean>,
|
|
22
|
+
) {}
|
|
19
23
|
show(...input: ReadonlyArray<unknown>): UIO<void> {
|
|
20
24
|
return this.consoleState.update((data) =>
|
|
21
25
|
data.copy({
|
|
@@ -12,7 +12,10 @@ export const TestRandomTag = Tag<TestRandom>("fncts.test.TestRandom");
|
|
|
12
12
|
* @tsplus companion fncts.test.TestRandomOps
|
|
13
13
|
*/
|
|
14
14
|
export class TestRandom implements Random {
|
|
15
|
-
constructor(
|
|
15
|
+
constructor(
|
|
16
|
+
readonly randomState: Ref<Data>,
|
|
17
|
+
readonly bufferState: Ref<Buffer>,
|
|
18
|
+
) {}
|
|
16
19
|
clearBooleans: UIO<void> = this.bufferState.update((buff) => buff.copy({ booleans: Vector.empty() }));
|
|
17
20
|
clearBytes: UIO<void> = this.bufferState.update((buff) => buff.copy({ bytes: Vector.empty() }));
|
|
18
21
|
clearChars: UIO<void> = this.bufferState.update((buff) => buff.copy({ chars: Vector.empty() }));
|
|
@@ -50,7 +50,7 @@ export function renderSingle(result: ExecutionResult, testAnnotationRenderer: Te
|
|
|
50
50
|
Other: () => new Message(Vector.from(result.lines)),
|
|
51
51
|
});
|
|
52
52
|
const renderedAnnotations = renderAnnotations(result.annotations, testAnnotationRenderer);
|
|
53
|
-
return renderToStringLines(output + renderedAnnotations).join("");
|
|
53
|
+
return renderToStringLines(output + renderedAnnotations).join("\n");
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
function renderSuite(status: Status, offset: number, message: Message) {
|
package/_src/control.ts
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
|
+
/* eslint-disable simple-import-sort/exports */
|
|
1
2
|
// codegen:start { preset: type-barrel, include: ./control/*.ts }
|
|
2
|
-
export type {} from "./control/AbstractRunnableSpec.js";
|
|
3
|
-
export type {} from "./control/Annotations.js";
|
|
4
|
-
export type {} from "./control/Assertion.js";
|
|
5
|
-
export type {} from "./control/AssertionIO.js";
|
|
6
|
-
export type {} from "./control/DefaultRunnableSpec.js";
|
|
7
|
-
export type {} from "./control/DefaultTestReporter.js";
|
|
8
|
-
export type {} from "./control/FreeBooleanAlgebraIO.js";
|
|
9
|
-
export type {} from "./control/Gen.js";
|
|
10
|
-
export type {} from "./control/Live.js";
|
|
11
|
-
export type {} from "./control/RunnableSpec.js";
|
|
12
|
-
export type {} from "./control/Sample.js";
|
|
13
|
-
export type {} from "./control/Sized.js";
|
|
14
|
-
export type {} from "./control/Spec.js";
|
|
15
|
-
export type {} from "./control/SummaryBuilder.js";
|
|
16
|
-
export type {} from "./control/Test.js";
|
|
17
|
-
export type {} from "./control/TestAnnotationRenderer.js";
|
|
18
|
-
export type {} from "./control/TestAspect.js";
|
|
19
|
-
export type {} from "./control/TestClock.js";
|
|
20
|
-
export type {} from "./control/TestConsole.js";
|
|
21
|
-
export type {} from "./control/TestEnvironment.js";
|
|
22
|
-
export type {} from "./control/TestExecutor.js";
|
|
23
|
-
export type {} from "./control/TestLogger.js";
|
|
24
3
|
export type {} from "./control/TestRandom.js";
|
|
25
|
-
export type {} from "./control/
|
|
4
|
+
export type {} from "./control/TestLogger.js";
|
|
5
|
+
export type {} from "./control/TestEnvironment.js";
|
|
6
|
+
export type {} from "./control/TestConsole.js";
|
|
7
|
+
export type {} from "./control/TestClock.js";
|
|
8
|
+
export type {} from "./control/TestAspect.js";
|
|
9
|
+
export type {} from "./control/TestAnnotationRenderer.js";
|
|
10
|
+
export type {} from "./control/Test.js";
|
|
11
|
+
export type {} from "./control/SummaryBuilder.js";
|
|
12
|
+
export type {} from "./control/Spec.js";
|
|
13
|
+
export type {} from "./control/Sized.js";
|
|
14
|
+
export type {} from "./control/Sample.js";
|
|
15
|
+
export type {} from "./control/Live.js";
|
|
16
|
+
export type {} from "./control/Gen.js";
|
|
17
|
+
export type {} from "./control/FreeBooleanAlgebraIO.js";
|
|
18
|
+
export type {} from "./control/DefaultTestReporter.js";
|
|
19
|
+
export type {} from "./control/DefaultRunnableSpec.js";
|
|
20
|
+
export type {} from "./control/AssertionIO.js";
|
|
21
|
+
export type {} from "./control/Assertion.js";
|
|
22
|
+
export type {} from "./control/Annotations.js";
|
|
23
|
+
export type {} from "./control/AbstractRunnableSpec.js";
|
|
26
24
|
// codegen:end
|
|
@@ -11,7 +11,10 @@ export type AssertionDataTypeId = typeof AssertionDataTypeId;
|
|
|
11
11
|
*/
|
|
12
12
|
export class AssertionData<A> {
|
|
13
13
|
readonly [AssertionDataTypeId]: AssertionDataTypeId = AssertionDataTypeId;
|
|
14
|
-
constructor(
|
|
14
|
+
constructor(
|
|
15
|
+
readonly value: A,
|
|
16
|
+
readonly assertion: Assertion<A>,
|
|
17
|
+
) {}
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
/* eslint-disable simple-import-sort/exports */
|
|
1
2
|
// codegen:start { preset: barrel, include: ./AssertionValue/*.ts }
|
|
2
|
-
export * from "./AssertionValue/api.js";
|
|
3
3
|
export * from "./AssertionValue/definition.js";
|
|
4
|
+
export * from "./AssertionValue/api.js";
|
|
4
5
|
// codegen:end
|
|
@@ -18,12 +18,18 @@ export class ExecutedSpec<E> {
|
|
|
18
18
|
|
|
19
19
|
export class TestCase<E> {
|
|
20
20
|
readonly _tag = ExecutedSpecCaseTag.Test;
|
|
21
|
-
constructor(
|
|
21
|
+
constructor(
|
|
22
|
+
readonly test: Either<TestFailure<E>, TestSuccess>,
|
|
23
|
+
readonly annotations: TestAnnotationMap,
|
|
24
|
+
) {}
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
export class LabeledCase<A> {
|
|
25
28
|
readonly _tag = ExecutedSpecCaseTag.Labeled;
|
|
26
|
-
constructor(
|
|
29
|
+
constructor(
|
|
30
|
+
readonly label: string,
|
|
31
|
+
readonly spec: A,
|
|
32
|
+
) {}
|
|
27
33
|
}
|
|
28
34
|
|
|
29
35
|
export class MultipleCase<A> {
|
|
@@ -9,5 +9,8 @@ import type { GenFailureDetails } from "./GenFailureDetails.js";
|
|
|
9
9
|
export type TestResult = FreeBooleanAlgebra<FailureDetailsResult>;
|
|
10
10
|
|
|
11
11
|
export class FailureDetails {
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(
|
|
13
|
+
readonly assertion: Cons<AssertionValue<any>>,
|
|
14
|
+
readonly gen: Maybe<GenFailureDetails<any>>,
|
|
15
|
+
) {}
|
|
13
16
|
}
|
|
@@ -55,8 +55,8 @@ export function failures<A>(self: FreeBooleanAlgebra<A>): Maybe<FreeBooleanAlgeb
|
|
|
55
55
|
? Either.right(l.right && r.right)
|
|
56
56
|
: r
|
|
57
57
|
: r.isRight()
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
? l
|
|
59
|
+
: Either.left(l.left && r.left);
|
|
60
60
|
},
|
|
61
61
|
Or: (l, r) => {
|
|
62
62
|
Either.concrete(l);
|
|
@@ -66,12 +66,12 @@ export function failures<A>(self: FreeBooleanAlgebra<A>): Maybe<FreeBooleanAlgeb
|
|
|
66
66
|
? Either.right(l.right || r.right)
|
|
67
67
|
: l
|
|
68
68
|
: r.isRight()
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
? r
|
|
70
|
+
: Either.left(l.left || r.left);
|
|
71
71
|
},
|
|
72
72
|
Not: (v) => v.swap,
|
|
73
73
|
})
|
|
74
|
-
.match(Maybe.just, () => Nothing());
|
|
74
|
+
.match({ Left: Maybe.just, Right: () => Nothing() });
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
/**
|
|
@@ -12,12 +12,18 @@ export class Value<A> {
|
|
|
12
12
|
|
|
13
13
|
export class And<A> {
|
|
14
14
|
readonly _tag = FreeBooleanAlgebraTag.And;
|
|
15
|
-
constructor(
|
|
15
|
+
constructor(
|
|
16
|
+
readonly left: FreeBooleanAlgebra<A>,
|
|
17
|
+
readonly right: FreeBooleanAlgebra<A>,
|
|
18
|
+
) {}
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
export class Or<A> {
|
|
19
22
|
readonly _tag = FreeBooleanAlgebraTag.Or;
|
|
20
|
-
constructor(
|
|
23
|
+
constructor(
|
|
24
|
+
readonly left: FreeBooleanAlgebra<A>,
|
|
25
|
+
readonly right: FreeBooleanAlgebra<A>,
|
|
26
|
+
) {}
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
export class Not<A> {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
/* eslint-disable simple-import-sort/exports */
|
|
1
2
|
// codegen:start { preset: barrel, include: ./FreeBooleanAlgebra/*.ts }
|
|
2
|
-
export * from "./FreeBooleanAlgebra/api.js";
|
|
3
3
|
export * from "./FreeBooleanAlgebra/definition.js";
|
|
4
|
+
export * from "./FreeBooleanAlgebra/api.js";
|
|
4
5
|
// codegen:end
|
|
@@ -6,7 +6,10 @@ import { Style } from "./Style.js";
|
|
|
6
6
|
* @tsplus companion fncts.test.data.FragmentOps
|
|
7
7
|
*/
|
|
8
8
|
export class Fragment {
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(
|
|
10
|
+
readonly text: string,
|
|
11
|
+
readonly style: Style = Style.Default,
|
|
12
|
+
) {}
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
/**
|
|
@@ -6,7 +6,10 @@ import { Message } from "./Message.js";
|
|
|
6
6
|
* @tsplus companion fncts.test.data.LineOps
|
|
7
7
|
*/
|
|
8
8
|
export class Line {
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(
|
|
10
|
+
readonly fragments: Vector<Fragment> = Vector.empty(),
|
|
11
|
+
readonly offset = 0,
|
|
12
|
+
) {}
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
/**
|
|
@@ -7,7 +7,10 @@ export const enum RenderTag {
|
|
|
7
7
|
|
|
8
8
|
export class RenderFunction {
|
|
9
9
|
readonly _tag = RenderTag.Function;
|
|
10
|
-
constructor(
|
|
10
|
+
constructor(
|
|
11
|
+
readonly name: string,
|
|
12
|
+
readonly paramLists: Conc<Conc<RenderParam>>,
|
|
13
|
+
) {}
|
|
11
14
|
get rendered(): string {
|
|
12
15
|
return `${this.name}(${this.paramLists.map((ps) => ps.map((p) => p.rendered).join(", ")).join("")})`;
|
|
13
16
|
}
|
|
@@ -15,7 +18,11 @@ export class RenderFunction {
|
|
|
15
18
|
|
|
16
19
|
export class RenderInfix {
|
|
17
20
|
readonly _tag = RenderTag.Infix;
|
|
18
|
-
constructor(
|
|
21
|
+
constructor(
|
|
22
|
+
readonly left: RenderParam,
|
|
23
|
+
readonly op: string,
|
|
24
|
+
readonly right: RenderParam,
|
|
25
|
+
) {}
|
|
19
26
|
get rendered(): string {
|
|
20
27
|
return `(${this.left.rendered} ${this.op} ${this.right.rendered})`;
|
|
21
28
|
}
|
package/_src/data/Render.ts
CHANGED
package/_src/data/RenderParam.ts
CHANGED
package/_src/data/Summary.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export class Summary {
|
|
2
|
-
constructor(
|
|
2
|
+
constructor(
|
|
3
|
+
readonly success: number,
|
|
4
|
+
readonly fail: number,
|
|
5
|
+
readonly ignore: number,
|
|
6
|
+
readonly summary: string,
|
|
7
|
+
) {}
|
|
3
8
|
total = this.success + this.fail + this.ignore;
|
|
4
9
|
}
|
|
@@ -42,10 +42,10 @@ export const Fibers = new TestAnnotation(FibersTag, "fibers", Either.left(0), (l
|
|
|
42
42
|
? Either.left(left.left + right.left)
|
|
43
43
|
: right
|
|
44
44
|
: left.isRight()
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
? right.isRight()
|
|
46
|
+
? Either.right(left.right.concat(right.right))
|
|
47
|
+
: right
|
|
48
|
+
: (() => {
|
|
49
|
+
throw new Error("absurd");
|
|
50
|
+
})();
|
|
51
51
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
/* eslint-disable simple-import-sort/exports */
|
|
1
2
|
// codegen:start { preset: barrel, include: ./TestAnnotation/*.ts }
|
|
2
|
-
export * from "./TestAnnotation/api.js";
|
|
3
3
|
export * from "./TestAnnotation/definition.js";
|
|
4
|
+
export * from "./TestAnnotation/api.js";
|
|
4
5
|
// codegen:end
|
package/_src/data/TestArgs.ts
CHANGED
package/_src/data.ts
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
+
/* eslint-disable simple-import-sort/exports */
|
|
1
2
|
// codegen:start { preset: type-barrel, include: ./data/*.ts }
|
|
2
|
-
export type {} from "./data/AssertionData.js";
|
|
3
|
-
export type {} from "./data/AssertionResult.js";
|
|
4
|
-
export type {} from "./data/AssertionValue.js";
|
|
5
|
-
export type {} from "./data/ExecutedSpec.js";
|
|
6
|
-
export type {} from "./data/ExecutionResult.js";
|
|
7
|
-
export type {} from "./data/FailureDetails.js";
|
|
8
|
-
export type {} from "./data/FreeBooleanAlgebra.js";
|
|
9
|
-
export type {} from "./data/GenFailureDetails.js";
|
|
10
|
-
export type {} from "./data/LogLine.js";
|
|
11
|
-
export type {} from "./data/Render.js";
|
|
12
|
-
export type {} from "./data/RenderParam.js";
|
|
13
|
-
export type {} from "./data/Summary.js";
|
|
14
|
-
export type {} from "./data/TestAnnotation.js";
|
|
15
|
-
export type {} from "./data/TestAnnotationMap.js";
|
|
16
|
-
export type {} from "./data/TestArgs.js";
|
|
17
|
-
export type {} from "./data/TestConfig.js";
|
|
18
|
-
export type {} from "./data/TestFailure.js";
|
|
19
|
-
export type {} from "./data/TestSuccess.js";
|
|
20
3
|
export type {} from "./data/TestTimeoutException.js";
|
|
4
|
+
export type {} from "./data/TestSuccess.js";
|
|
5
|
+
export type {} from "./data/TestFailure.js";
|
|
6
|
+
export type {} from "./data/TestConfig.js";
|
|
7
|
+
export type {} from "./data/TestArgs.js";
|
|
8
|
+
export type {} from "./data/TestAnnotationMap.js";
|
|
9
|
+
export type {} from "./data/TestAnnotation.js";
|
|
10
|
+
export type {} from "./data/Summary.js";
|
|
11
|
+
export type {} from "./data/RenderParam.js";
|
|
12
|
+
export type {} from "./data/Render.js";
|
|
13
|
+
export type {} from "./data/LogLine.js";
|
|
14
|
+
export type {} from "./data/GenFailureDetails.js";
|
|
15
|
+
export type {} from "./data/FreeBooleanAlgebra.js";
|
|
16
|
+
export type {} from "./data/FailureDetails.js";
|
|
17
|
+
export type {} from "./data/ExecutionResult.js";
|
|
18
|
+
export type {} from "./data/ExecutedSpec.js";
|
|
19
|
+
export type {} from "./data/AssertionValue.js";
|
|
20
|
+
export type {} from "./data/AssertionResult.js";
|
|
21
|
+
export type {} from "./data/AssertionData.js";
|
|
21
22
|
// codegen:end
|
package/_src/index.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export type {} from "./control.js";
|
|
4
|
-
export type {} from "./data.js";
|
|
5
|
-
export type {} from "./demo.js";
|
|
6
|
-
export type {} from "./global.js";
|
|
1
|
+
/* eslint-disable simple-import-sort/exports */
|
|
2
|
+
// codegen:start { preset: type-barrel, include: ./*.ts, exclude: vitest.ts }
|
|
7
3
|
export type {} from "./util.js";
|
|
4
|
+
export type {} from "./global.js";
|
|
5
|
+
export type {} from "./demo.js";
|
|
6
|
+
export type {} from "./data.js";
|
|
7
|
+
export type {} from "./control.js";
|
|
8
|
+
export type {} from "./api.js";
|
|
8
9
|
// codegen:end
|
package/_src/util.ts
CHANGED
package/_src/vitest.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import type { AssertionValue } from "@fncts/test/data/AssertionValue";
|
|
2
2
|
import type { TestResult } from "@fncts/test/data/FailureDetails";
|
|
3
3
|
|
|
4
|
-
import { identity } from "@fncts/base/data/function";
|
|
5
4
|
import { check, checkAllConcurrently, checkAllIOConcurrently, checkIO } from "@fncts/test/api";
|
|
5
|
+
import { Assertion } from "@fncts/test/control/Assertion";
|
|
6
6
|
import { renderFragment } from "@fncts/test/control/DefaultTestReporter";
|
|
7
|
-
import { Gen } from "@fncts/test/control/Gen";
|
|
8
7
|
import { TestAnnotationRenderer } from "@fncts/test/control/TestAnnotationRenderer";
|
|
9
8
|
import { TestEnvironment } from "@fncts/test/control/TestEnvironment";
|
|
10
9
|
import { ConsoleRenderer } from "@fncts/test/control/TestRenderer/ConsoleRenderer";
|
|
11
10
|
import { Failed, Passed, rendered, Test } from "@fncts/test/data/ExecutionResult";
|
|
12
|
-
import {
|
|
11
|
+
import { RenderParam } from "@fncts/test/data/RenderParam";
|
|
13
12
|
import * as V from "vitest";
|
|
14
|
-
import { GenerateStackTrace } from "@fncts/io/IO";
|
|
15
13
|
|
|
16
14
|
export const describe = V.describe;
|
|
17
15
|
|
|
@@ -26,15 +24,21 @@ export const it = (() => {
|
|
|
26
24
|
if (result.isFailure) {
|
|
27
25
|
const lines = (assertionValues: Cons<AssertionValue<any>>) =>
|
|
28
26
|
assertionValues.flatMap((value) => List.from(renderFragment(value, 0).lines));
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
|
|
28
|
+
const renderedResult = result.failures
|
|
29
|
+
.map((failures) =>
|
|
30
|
+
ConsoleRenderer.renderSingle(
|
|
31
|
+
failures.fold({
|
|
32
|
+
Value: (details) => rendered(Test, "", Failed, 0, lines(details.failureDetails.assertion)),
|
|
33
|
+
And: (l, r) => l && r,
|
|
34
|
+
Or: (l, r) => l || r,
|
|
35
|
+
Not: (v) => v.invert,
|
|
36
|
+
}),
|
|
37
|
+
TestAnnotationRenderer.Default,
|
|
38
|
+
),
|
|
39
|
+
)
|
|
40
|
+
.getOrElse("Unknown Test Failure");
|
|
41
|
+
|
|
38
42
|
const error = new Error(renderedResult);
|
|
39
43
|
error.stack = undefined;
|
|
40
44
|
throw error;
|
|
@@ -53,7 +57,7 @@ export const it = (() => {
|
|
|
53
57
|
if (result.isFailure) {
|
|
54
58
|
const lines = (assertionValues: Cons<AssertionValue<any>>) => {
|
|
55
59
|
return assertionValues.flatMap((value) => List.from(renderFragment(value, 0).lines));
|
|
56
|
-
}
|
|
60
|
+
};
|
|
57
61
|
const renderedResult = ConsoleRenderer.renderSingle(
|
|
58
62
|
result.fold({
|
|
59
63
|
Value: (details) => rendered(Test, "", Passed, 0, lines(details.failureDetails.assertion)),
|
|
@@ -92,7 +96,7 @@ export const it = (() => {
|
|
|
92
96
|
checkAllIO: checkAllIOConcurrently,
|
|
93
97
|
io: Object.assign(itIO, {
|
|
94
98
|
scoped: <E>(name: string, io: Lazy<IO<TestEnvironment | Scope, E, TestResult>>, timeout = 5_000) => {
|
|
95
|
-
return itIO(name, io().scoped, timeout)
|
|
99
|
+
return itIO(name, io().scoped, timeout);
|
|
96
100
|
},
|
|
97
101
|
skip: <E>(name: string, io: Lazy<IO<TestEnvironment, E, TestResult>>, timeout = 5_000) => {
|
|
98
102
|
return V.it.skip(name, () => runTestIO(io), timeout);
|
|
@@ -105,3 +109,10 @@ export const it = (() => {
|
|
|
105
109
|
})();
|
|
106
110
|
|
|
107
111
|
export const test = it;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* @tsplus static fncts.test.AssertionOps calledTimes
|
|
115
|
+
*/
|
|
116
|
+
export function calledTimes(times: number): Assertion<V.Mock> {
|
|
117
|
+
return Assertion.make("calledTimes", [RenderParam(times)], (mock) => mock.mock.calls.length === times);
|
|
118
|
+
}
|
package/api.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare function assert<A>(assertion: Assertion<A>): (value: A) => TestRe
|
|
|
20
20
|
* @tsplus pipeable fncts.io.IO assertIO
|
|
21
21
|
* @tsplus location "@fncts/test/api"
|
|
22
22
|
*/
|
|
23
|
-
export declare function assertIO<A>(assertion: AssertionIO<A>): <R, E>(io:
|
|
23
|
+
export declare function assertIO<A>(assertion: AssertionIO<A>): <R, E>(io: IO<R, E, A>) => IO<R, E, TestResult>;
|
|
24
24
|
export declare function suite<Specs extends ReadonlyArray<Spec<any, any>>>(label: string, ...specs: Specs): Spec<_R<Specs[number]>, _E<Specs[number]>>;
|
|
25
25
|
export declare function testIO<R, E>(label: string, assertion: Lazy<IO<R, E, TestResult>>): Spec<R, E>;
|
|
26
26
|
export declare function test(label: string, assertion: Lazy<TestResult>): Spec<never, never>;
|
|
@@ -28,19 +28,19 @@ export declare function test(label: string, assertion: Lazy<TestResult>): Spec<n
|
|
|
28
28
|
* @tsplus pipeable fncts.test.Gen check
|
|
29
29
|
* @tsplus location "@fncts/test/api"
|
|
30
30
|
*/
|
|
31
|
-
export declare function check<A>(test: (a: A) => TestResult): <R>(rv: Gen<R, A>) =>
|
|
31
|
+
export declare function check<A>(test: (a: A) => TestResult): <R>(rv: Gen<R, A>) => IO<R | TestConfig, never, TestResult>;
|
|
32
32
|
/**
|
|
33
33
|
* @tsplus pipeable fncts.test.Gen check
|
|
34
34
|
* @tsplus location "@fncts/test/api"
|
|
35
35
|
*/
|
|
36
|
-
export declare function checkIO<A, R1, E>(test: (a: A) => IO<R1, E, TestResult>): <R>(rv: Gen<R, A>) =>
|
|
36
|
+
export declare function checkIO<A, R1, E>(test: (a: A) => IO<R1, E, TestResult>): <R>(rv: Gen<R, A>) => IO<R | R1 | TestConfig, E, TestResult>;
|
|
37
37
|
/**
|
|
38
38
|
* @tsplus pipeable fncts.test.Gen checkAllConcurrently
|
|
39
39
|
* @tsplus location "@fncts/test/api"
|
|
40
40
|
*/
|
|
41
|
-
export declare function checkAllConcurrently<A>(concurrency: number, test: (a: A) => TestResult): <R>(rv: Gen<R, A>) =>
|
|
41
|
+
export declare function checkAllConcurrently<A>(concurrency: number, test: (a: A) => TestResult): <R>(rv: Gen<R, A>) => IO<R | TestConfig, never, TestResult>;
|
|
42
42
|
/**
|
|
43
43
|
* @tsplus pipeable fncts.test.Gen checkAllConcurrently
|
|
44
44
|
* @tsplus location "@fncts/test/api"
|
|
45
45
|
*/
|
|
46
|
-
export declare function checkAllIOConcurrently<A, R1, E>(concurrency: number, test: (a: A) => IO<R1, E, TestResult>): <R>(rv: Gen<R, A>) =>
|
|
46
|
+
export declare function checkAllIOConcurrently<A, R1, E>(concurrency: number, test: (a: A) => IO<R1, E, TestResult>): <R>(rv: Gen<R, A>) => IO<R | R1 | TestConfig, E, TestResult>;
|
|
@@ -23,4 +23,4 @@ export declare abstract class AbstractRunnableSpec<R, E> {
|
|
|
23
23
|
* @tsplus pipeable-operator fncts.test.AbstractRunnableSpec +
|
|
24
24
|
* @tsplus location "@fncts/test/control/AbstractRunnableSpec"
|
|
25
25
|
*/
|
|
26
|
-
export declare function combine<R1, E1>(that: AbstractRunnableSpec<R1, E1>): <R, E>(self: AbstractRunnableSpec<R, E>) => AbstractRunnableSpec<
|
|
26
|
+
export declare function combine<R1, E1>(that: AbstractRunnableSpec<R1, E1>): <R, E>(self: AbstractRunnableSpec<R, E>) => AbstractRunnableSpec<R | R1, E | E1>;
|
|
@@ -21,4 +21,4 @@ export declare abstract class Annotations {
|
|
|
21
21
|
* @tsplus static fncts.test.AnnotationsOps Tag
|
|
22
22
|
* @tsplus location "@fncts/test/control/Annotations/definition"
|
|
23
23
|
*/
|
|
24
|
-
export declare const AnnotationsTag: import("@fncts/base/data/Tag.js").Tag<Annotations>;
|
|
24
|
+
export declare const AnnotationsTag: import("@fncts/base/data/Tag.js").Tag<Annotations, Annotations>;
|
package/control/Annotations.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ export declare const isTrue: Assertion<boolean>;
|
|
|
65
65
|
export declare const isEmpty: Assertion<Iterable<any>>;
|
|
66
66
|
export declare const isUnit: Assertion<void>;
|
|
67
67
|
export declare function isLessThanOrEqualTo(n: number): Assertion<number>;
|
|
68
|
+
export declare function isGreaterThanOrEqualTo(n: number): Assertion<number>;
|
|
68
69
|
/**
|
|
69
70
|
* @tsplus pipeable fncts.test.Assertion label
|
|
70
71
|
* @tsplus location "@fncts/test/control/Assertion/api"
|
|
@@ -92,3 +93,4 @@ export declare function succeeds<A>(assertion: Assertion<A>): Assertion<Exit<any
|
|
|
92
93
|
*/
|
|
93
94
|
export declare function test<A>(actual: A): (self: Assertion<A>) => boolean;
|
|
94
95
|
export declare const completes: Assertion<unknown>;
|
|
96
|
+
export declare function hasSize<A>(assertion: Assertion<number>): Assertion<Iterable<A>>;
|
package/control/Assertion.d.ts
CHANGED
package/control/AssertionIO.d.ts
CHANGED