@ddd-ts-kit/testing 0.0.0-stage → 0.1.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 +549 -2
- package/dist/builders/buildable.d.ts +7 -0
- package/dist/builders/buildable.d.ts.map +1 -0
- package/dist/builders/buildable.js +2 -0
- package/dist/builders/buildable.js.map +1 -0
- package/dist/builders/builder.d.ts +33 -0
- package/dist/builders/builder.d.ts.map +1 -0
- package/dist/builders/builder.js +66 -0
- package/dist/builders/builder.js.map +1 -0
- package/dist/builders/defaults.d.ts +6 -0
- package/dist/builders/defaults.d.ts.map +1 -0
- package/dist/builders/defaults.js +2 -0
- package/dist/builders/defaults.js.map +1 -0
- package/dist/builders/define-builder.d.ts +14 -0
- package/dist/builders/define-builder.d.ts.map +1 -0
- package/dist/builders/define-builder.js +10 -0
- package/dist/builders/define-builder.js.map +1 -0
- package/dist/builders/generic-builder.d.ts +16 -0
- package/dist/builders/generic-builder.d.ts.map +1 -0
- package/dist/builders/generic-builder.js +23 -0
- package/dist/builders/generic-builder.js.map +1 -0
- package/dist/builders/is-resolvable.d.ts +3 -0
- package/dist/builders/is-resolvable.d.ts.map +1 -0
- package/dist/builders/is-resolvable.js +5 -0
- package/dist/builders/is-resolvable.js.map +1 -0
- package/dist/builders/lazy.d.ts +4 -0
- package/dist/builders/lazy.d.ts.map +1 -0
- package/dist/builders/lazy.js +15 -0
- package/dist/builders/lazy.js.map +1 -0
- package/dist/builders/resolvable.d.ts +6 -0
- package/dist/builders/resolvable.d.ts.map +1 -0
- package/dist/builders/resolvable.js +2 -0
- package/dist/builders/resolvable.js.map +1 -0
- package/dist/builders/resolve.d.ts +4 -0
- package/dist/builders/resolve.d.ts.map +1 -0
- package/dist/builders/resolve.js +7 -0
- package/dist/builders/resolve.js.map +1 -0
- package/dist/builders/sequence.d.ts +10 -0
- package/dist/builders/sequence.d.ts.map +1 -0
- package/dist/builders/sequence.js +14 -0
- package/dist/builders/sequence.js.map +1 -0
- package/dist/contracts/awaitable.d.ts +2 -0
- package/dist/contracts/awaitable.d.ts.map +1 -0
- package/dist/contracts/awaitable.js +2 -0
- package/dist/contracts/awaitable.js.map +1 -0
- package/dist/contracts/cache-contract.d.ts +13 -0
- package/dist/contracts/cache-contract.d.ts.map +1 -0
- package/dist/contracts/cache-contract.js +81 -0
- package/dist/contracts/cache-contract.js.map +1 -0
- package/dist/contracts/contract-runner.d.ts +16 -0
- package/dist/contracts/contract-runner.d.ts.map +1 -0
- package/dist/contracts/contract-runner.js +2 -0
- package/dist/contracts/contract-runner.js.map +1 -0
- package/dist/contracts/contract-suite.d.ts +23 -0
- package/dist/contracts/contract-suite.d.ts.map +1 -0
- package/dist/contracts/contract-suite.js +39 -0
- package/dist/contracts/contract-suite.js.map +1 -0
- package/dist/contracts/criteria/criteria-case.d.ts +11 -0
- package/dist/contracts/criteria/criteria-case.d.ts.map +1 -0
- package/dist/contracts/criteria/criteria-case.js +2 -0
- package/dist/contracts/criteria/criteria-case.js.map +1 -0
- package/dist/contracts/criteria/criteria-contract-definition.d.ts +5 -0
- package/dist/contracts/criteria/criteria-contract-definition.d.ts.map +1 -0
- package/dist/contracts/criteria/criteria-contract-definition.js +20 -0
- package/dist/contracts/criteria/criteria-contract-definition.js.map +1 -0
- package/dist/contracts/criteria/criteria-contract-row.d.ts +15 -0
- package/dist/contracts/criteria/criteria-contract-row.d.ts.map +1 -0
- package/dist/contracts/criteria/criteria-contract-row.js +2 -0
- package/dist/contracts/criteria/criteria-contract-row.js.map +1 -0
- package/dist/contracts/criteria/criteria-contract-rows.d.ts +9 -0
- package/dist/contracts/criteria/criteria-contract-rows.d.ts.map +1 -0
- package/dist/contracts/criteria/criteria-contract-rows.js +55 -0
- package/dist/contracts/criteria/criteria-contract-rows.js.map +1 -0
- package/dist/contracts/criteria/group-cases.d.ts +4 -0
- package/dist/contracts/criteria/group-cases.d.ts.map +1 -0
- package/dist/contracts/criteria/group-cases.js +96 -0
- package/dist/contracts/criteria/group-cases.js.map +1 -0
- package/dist/contracts/criteria/operator-cases.d.ts +4 -0
- package/dist/contracts/criteria/operator-cases.d.ts.map +1 -0
- package/dist/contracts/criteria/operator-cases.js +122 -0
- package/dist/contracts/criteria/operator-cases.js.map +1 -0
- package/dist/contracts/criteria/scope-cases.d.ts +4 -0
- package/dist/contracts/criteria/scope-cases.d.ts.map +1 -0
- package/dist/contracts/criteria/scope-cases.js +73 -0
- package/dist/contracts/criteria/scope-cases.js.map +1 -0
- package/dist/contracts/criteria/sort-cases.d.ts +4 -0
- package/dist/contracts/criteria/sort-cases.d.ts.map +1 -0
- package/dist/contracts/criteria/sort-cases.js +54 -0
- package/dist/contracts/criteria/sort-cases.js.map +1 -0
- package/dist/contracts/criteria-contract.d.ts +20 -0
- package/dist/contracts/criteria-contract.d.ts.map +1 -0
- package/dist/contracts/criteria-contract.js +94 -0
- package/dist/contracts/criteria-contract.js.map +1 -0
- package/dist/contracts/event-bus-contract.d.ts +23 -0
- package/dist/contracts/event-bus-contract.d.ts.map +1 -0
- package/dist/contracts/event-bus-contract.js +122 -0
- package/dist/contracts/event-bus-contract.js.map +1 -0
- package/dist/contracts/failure-of.d.ts +3 -0
- package/dist/contracts/failure-of.d.ts.map +1 -0
- package/dist/contracts/failure-of.js +12 -0
- package/dist/contracts/failure-of.js.map +1 -0
- package/dist/contracts/full-envelope.d.ts +4 -0
- package/dist/contracts/full-envelope.d.ts.map +1 -0
- package/dist/contracts/full-envelope.js +12 -0
- package/dist/contracts/full-envelope.js.map +1 -0
- package/dist/contracts/job-scheduler-contract.d.ts +21 -0
- package/dist/contracts/job-scheduler-contract.d.ts.map +1 -0
- package/dist/contracts/job-scheduler-contract.js +181 -0
- package/dist/contracts/job-scheduler-contract.js.map +1 -0
- package/dist/contracts/lock-contract.d.ts +13 -0
- package/dist/contracts/lock-contract.d.ts.map +1 -0
- package/dist/contracts/lock-contract.js +90 -0
- package/dist/contracts/lock-contract.js.map +1 -0
- package/dist/contracts/logger/create-logger.d.ts +6 -0
- package/dist/contracts/logger/create-logger.d.ts.map +1 -0
- package/dist/contracts/logger/create-logger.js +2 -0
- package/dist/contracts/logger/create-logger.js.map +1 -0
- package/dist/contracts/logger/error-outline-of.d.ts +12 -0
- package/dist/contracts/logger/error-outline-of.d.ts.map +1 -0
- package/dist/contracts/logger/error-outline-of.js +27 -0
- package/dist/contracts/logger/error-outline-of.js.map +1 -0
- package/dist/contracts/logger/logged-line.d.ts +9 -0
- package/dist/contracts/logger/logged-line.d.ts.map +1 -0
- package/dist/contracts/logger/logged-line.js +2 -0
- package/dist/contracts/logger/logged-line.js.map +1 -0
- package/dist/contracts/logger/logger-contract-setup.d.ts +11 -0
- package/dist/contracts/logger/logger-contract-setup.d.ts.map +1 -0
- package/dist/contracts/logger/logger-contract-setup.js +2 -0
- package/dist/contracts/logger/logger-contract-setup.js.map +1 -0
- package/dist/contracts/logger/logger-entries-suite.d.ts +19 -0
- package/dist/contracts/logger/logger-entries-suite.d.ts.map +1 -0
- package/dist/contracts/logger/logger-entries-suite.js +177 -0
- package/dist/contracts/logger/logger-entries-suite.js.map +1 -0
- package/dist/contracts/logger/logger-shutdown-suite.d.ts +15 -0
- package/dist/contracts/logger/logger-shutdown-suite.d.ts.map +1 -0
- package/dist/contracts/logger/logger-shutdown-suite.js +98 -0
- package/dist/contracts/logger/logger-shutdown-suite.js.map +1 -0
- package/dist/contracts/logger/logger-under-contract.d.ts +9 -0
- package/dist/contracts/logger/logger-under-contract.d.ts.map +1 -0
- package/dist/contracts/logger/logger-under-contract.js +2 -0
- package/dist/contracts/logger/logger-under-contract.js.map +1 -0
- package/dist/contracts/logger/unreadable-total.d.ts +5 -0
- package/dist/contracts/logger/unreadable-total.d.ts.map +1 -0
- package/dist/contracts/logger/unreadable-total.js +9 -0
- package/dist/contracts/logger/unreadable-total.js.map +1 -0
- package/dist/contracts/logger-contract.d.ts +14 -0
- package/dist/contracts/logger-contract.d.ts.map +1 -0
- package/dist/contracts/logger-contract.js +12 -0
- package/dist/contracts/logger-contract.js.map +1 -0
- package/dist/contracts/outbox-store-contract.d.ts +36 -0
- package/dist/contracts/outbox-store-contract.d.ts.map +1 -0
- package/dist/contracts/outbox-store-contract.js +148 -0
- package/dist/contracts/outbox-store-contract.js.map +1 -0
- package/dist/contracts/processed-event-store-contract.d.ts +11 -0
- package/dist/contracts/processed-event-store-contract.d.ts.map +1 -0
- package/dist/contracts/processed-event-store-contract.js +40 -0
- package/dist/contracts/processed-event-store-contract.js.map +1 -0
- package/dist/contracts/rate-limiter-contract.d.ts +13 -0
- package/dist/contracts/rate-limiter-contract.d.ts.map +1 -0
- package/dist/contracts/rate-limiter-contract.js +86 -0
- package/dist/contracts/rate-limiter-contract.js.map +1 -0
- package/dist/contracts/read-model/everything.d.ts +5 -0
- package/dist/contracts/read-model/everything.d.ts.map +1 -0
- package/dist/contracts/read-model/everything.js +3 -0
- package/dist/contracts/read-model/everything.js.map +1 -0
- package/dist/contracts/read-model/read-model-store-suite.d.ts +14 -0
- package/dist/contracts/read-model/read-model-store-suite.d.ts.map +1 -0
- package/dist/contracts/read-model/read-model-store-suite.js +23 -0
- package/dist/contracts/read-model/read-model-store-suite.js.map +1 -0
- package/dist/contracts/read-model/read-model-store-under-contract.d.ts +11 -0
- package/dist/contracts/read-model/read-model-store-under-contract.d.ts.map +1 -0
- package/dist/contracts/read-model/read-model-store-under-contract.js +2 -0
- package/dist/contracts/read-model/read-model-store-under-contract.js.map +1 -0
- package/dist/contracts/read-model/rebuild-suite.d.ts +14 -0
- package/dist/contracts/read-model/rebuild-suite.d.ts.map +1 -0
- package/dist/contracts/read-model/rebuild-suite.js +116 -0
- package/dist/contracts/read-model/rebuild-suite.js.map +1 -0
- package/dist/contracts/read-model/row-of.d.ts +4 -0
- package/dist/contracts/read-model/row-of.d.ts.map +1 -0
- package/dist/contracts/read-model/row-of.js +10 -0
- package/dist/contracts/read-model/row-of.js.map +1 -0
- package/dist/contracts/read-model/rows-suite.d.ts +11 -0
- package/dist/contracts/read-model/rows-suite.d.ts.map +1 -0
- package/dist/contracts/read-model/rows-suite.js +122 -0
- package/dist/contracts/read-model/rows-suite.js.map +1 -0
- package/dist/contracts/read-model/source-of-truth.d.ts +17 -0
- package/dist/contracts/read-model/source-of-truth.d.ts.map +1 -0
- package/dist/contracts/read-model/source-of-truth.js +36 -0
- package/dist/contracts/read-model/source-of-truth.js.map +1 -0
- package/dist/contracts/read-model/stamped-at.d.ts +4 -0
- package/dist/contracts/read-model/stamped-at.d.ts.map +1 -0
- package/dist/contracts/read-model/stamped-at.js +5 -0
- package/dist/contracts/read-model/stamped-at.js.map +1 -0
- package/dist/contracts/read-model-store-contract.d.ts +15 -0
- package/dist/contracts/read-model-store-contract.d.ts.map +1 -0
- package/dist/contracts/read-model-store-contract.js +13 -0
- package/dist/contracts/read-model-store-contract.js.map +1 -0
- package/dist/contracts/repository-contract.d.ts +18 -0
- package/dist/contracts/repository-contract.d.ts.map +1 -0
- package/dist/contracts/repository-contract.js +103 -0
- package/dist/contracts/repository-contract.js.map +1 -0
- package/dist/contracts/unit-of-work/after-commit-suite.d.ts +12 -0
- package/dist/contracts/unit-of-work/after-commit-suite.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/after-commit-suite.js +79 -0
- package/dist/contracts/unit-of-work/after-commit-suite.js.map +1 -0
- package/dist/contracts/unit-of-work/dispatch-suite.d.ts +14 -0
- package/dist/contracts/unit-of-work/dispatch-suite.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/dispatch-suite.js +171 -0
- package/dist/contracts/unit-of-work/dispatch-suite.js.map +1 -0
- package/dist/contracts/unit-of-work/failure-suite.d.ts +17 -0
- package/dist/contracts/unit-of-work/failure-suite.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/failure-suite.js +114 -0
- package/dist/contracts/unit-of-work/failure-suite.js.map +1 -0
- package/dist/contracts/unit-of-work/parcel.d.ts +11 -0
- package/dist/contracts/unit-of-work/parcel.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/parcel.js +22 -0
- package/dist/contracts/unit-of-work/parcel.js.map +1 -0
- package/dist/contracts/unit-of-work/parcels.d.ts +10 -0
- package/dist/contracts/unit-of-work/parcels.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/parcels.js +14 -0
- package/dist/contracts/unit-of-work/parcels.js.map +1 -0
- package/dist/contracts/unit-of-work/shipping-bench.d.ts +25 -0
- package/dist/contracts/unit-of-work/shipping-bench.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/shipping-bench.js +58 -0
- package/dist/contracts/unit-of-work/shipping-bench.js.map +1 -0
- package/dist/contracts/unit-of-work/unit-of-work-under-contract.d.ts +22 -0
- package/dist/contracts/unit-of-work/unit-of-work-under-contract.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/unit-of-work-under-contract.js +2 -0
- package/dist/contracts/unit-of-work/unit-of-work-under-contract.js.map +1 -0
- package/dist/contracts/unit-of-work-contract.d.ts +19 -0
- package/dist/contracts/unit-of-work-contract.d.ts.map +1 -0
- package/dist/contracts/unit-of-work-contract.js +19 -0
- package/dist/contracts/unit-of-work-contract.js.map +1 -0
- package/dist/contracts.d.ts +27 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +17 -0
- package/dist/contracts.js.map +1 -0
- package/dist/coverage/affected-contexts.d.ts +7 -0
- package/dist/coverage/affected-contexts.d.ts.map +1 -0
- package/dist/coverage/affected-contexts.js +15 -0
- package/dist/coverage/affected-contexts.js.map +1 -0
- package/dist/coverage/contexts-in.d.ts +3 -0
- package/dist/coverage/contexts-in.d.ts.map +1 -0
- package/dist/coverage/contexts-in.js +13 -0
- package/dist/coverage/contexts-in.js.map +1 -0
- package/dist/coverage/coverage-layer.d.ts +4 -0
- package/dist/coverage/coverage-layer.d.ts.map +1 -0
- package/dist/coverage/coverage-layer.js +2 -0
- package/dist/coverage/coverage-layer.js.map +1 -0
- package/dist/coverage/coverage-rates.d.ts +8 -0
- package/dist/coverage/coverage-rates.d.ts.map +1 -0
- package/dist/coverage/coverage-rates.js +2 -0
- package/dist/coverage/coverage-rates.js.map +1 -0
- package/dist/coverage/governed-coverage.d.ts +23 -0
- package/dist/coverage/governed-coverage.d.ts.map +1 -0
- package/dist/coverage/governed-coverage.js +27 -0
- package/dist/coverage/governed-coverage.js.map +1 -0
- package/dist/coverage/governed-jest-coverage.d.ts +18 -0
- package/dist/coverage/governed-jest-coverage.d.ts.map +1 -0
- package/dist/coverage/governed-jest-coverage.js +23 -0
- package/dist/coverage/governed-jest-coverage.js.map +1 -0
- package/dist/coverage/governed-settings.d.ts +13 -0
- package/dist/coverage/governed-settings.d.ts.map +1 -0
- package/dist/coverage/governed-settings.js +49 -0
- package/dist/coverage/governed-settings.js.map +1 -0
- package/dist/coverage/held-layers.d.ts +17 -0
- package/dist/coverage/held-layers.d.ts.map +1 -0
- package/dist/coverage/held-layers.js +30 -0
- package/dist/coverage/held-layers.js.map +1 -0
- package/dist/coverage/measured-files.d.ts +4 -0
- package/dist/coverage/measured-files.d.ts.map +1 -0
- package/dist/coverage/measured-files.js +7 -0
- package/dist/coverage/measured-files.js.map +1 -0
- package/dist/coverage/measured-layers.d.ts +8 -0
- package/dist/coverage/measured-layers.d.ts.map +1 -0
- package/dist/coverage/measured-layers.js +14 -0
- package/dist/coverage/measured-layers.js.map +1 -0
- package/dist/coverage/reference-coverage.d.ts +33 -0
- package/dist/coverage/reference-coverage.d.ts.map +1 -0
- package/dist/coverage/reference-coverage.js +13 -0
- package/dist/coverage/reference-coverage.js.map +1 -0
- package/dist/coverage/unaffected-contexts.d.ts +10 -0
- package/dist/coverage/unaffected-contexts.d.ts.map +1 -0
- package/dist/coverage/unaffected-contexts.js +23 -0
- package/dist/coverage/unaffected-contexts.js.map +1 -0
- package/dist/coverage.d.ts +7 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +5 -0
- package/dist/coverage.js.map +1 -0
- package/dist/e2e/collect-events.d.ts +9 -0
- package/dist/e2e/collect-events.d.ts.map +1 -0
- package/dist/e2e/collect-events.js +9 -0
- package/dist/e2e/collect-events.js.map +1 -0
- package/dist/e2e/create-http-client.d.ts +4 -0
- package/dist/e2e/create-http-client.d.ts.map +1 -0
- package/dist/e2e/create-http-client.js +7 -0
- package/dist/e2e/create-http-client.js.map +1 -0
- package/dist/e2e/database-reset.d.ts +8 -0
- package/dist/e2e/database-reset.d.ts.map +1 -0
- package/dist/e2e/database-reset.js +2 -0
- package/dist/e2e/database-reset.js.map +1 -0
- package/dist/e2e/event-recorder.d.ts +12 -0
- package/dist/e2e/event-recorder.d.ts.map +1 -0
- package/dist/e2e/event-recorder.js +2 -0
- package/dist/e2e/event-recorder.js.map +1 -0
- package/dist/e2e/event-type.d.ts +5 -0
- package/dist/e2e/event-type.d.ts.map +1 -0
- package/dist/e2e/event-type.js +2 -0
- package/dist/e2e/event-type.js.map +1 -0
- package/dist/e2e/eventually.d.ts +13 -0
- package/dist/e2e/eventually.d.ts.map +1 -0
- package/dist/e2e/eventually.js +27 -0
- package/dist/e2e/eventually.js.map +1 -0
- package/dist/e2e/expect-problem.d.ts +13 -0
- package/dist/e2e/expect-problem.d.ts.map +1 -0
- package/dist/e2e/expect-problem.js +27 -0
- package/dist/e2e/expect-problem.js.map +1 -0
- package/dist/e2e/expect-status.d.ts +7 -0
- package/dist/e2e/expect-status.d.ts.map +1 -0
- package/dist/e2e/expect-status.js +18 -0
- package/dist/e2e/expect-status.js.map +1 -0
- package/dist/e2e/fetch-client.d.ts +18 -0
- package/dist/e2e/fetch-client.d.ts.map +1 -0
- package/dist/e2e/fetch-client.js +56 -0
- package/dist/e2e/fetch-client.js.map +1 -0
- package/dist/e2e/http-client.d.ts +17 -0
- package/dist/e2e/http-client.d.ts.map +1 -0
- package/dist/e2e/http-client.js +2 -0
- package/dist/e2e/http-client.js.map +1 -0
- package/dist/e2e/http-headers.d.ts +2 -0
- package/dist/e2e/http-headers.d.ts.map +1 -0
- package/dist/e2e/http-headers.js +2 -0
- package/dist/e2e/http-headers.js.map +1 -0
- package/dist/e2e/http-response.d.ts +9 -0
- package/dist/e2e/http-response.d.ts.map +1 -0
- package/dist/e2e/http-response.js +2 -0
- package/dist/e2e/http-response.js.map +1 -0
- package/dist/e2e/listen-on-random-port.d.ts +13 -0
- package/dist/e2e/listen-on-random-port.d.ts.map +1 -0
- package/dist/e2e/listen-on-random-port.js +21 -0
- package/dist/e2e/listen-on-random-port.js.map +1 -0
- package/dist/e2e/lower-cased.d.ts +3 -0
- package/dist/e2e/lower-cased.d.ts.map +1 -0
- package/dist/e2e/lower-cased.js +6 -0
- package/dist/e2e/lower-cased.js.map +1 -0
- package/dist/e2e/request-options.d.ts +6 -0
- package/dist/e2e/request-options.d.ts.map +1 -0
- package/dist/e2e/request-options.js +2 -0
- package/dist/e2e/request-options.js.map +1 -0
- package/dist/e2e/running-server.d.ts +6 -0
- package/dist/e2e/running-server.d.ts.map +1 -0
- package/dist/e2e/running-server.js +2 -0
- package/dist/e2e/running-server.js.map +1 -0
- package/dist/e2e/start-test-server.d.ts +18 -0
- package/dist/e2e/start-test-server.d.ts.map +1 -0
- package/dist/e2e/start-test-server.js +14 -0
- package/dist/e2e/start-test-server.js.map +1 -0
- package/dist/e2e/subscribed-recorder.d.ts +17 -0
- package/dist/e2e/subscribed-recorder.d.ts.map +1 -0
- package/dist/e2e/subscribed-recorder.js +45 -0
- package/dist/e2e/subscribed-recorder.js.map +1 -0
- package/dist/e2e/without-trailing-slashes.d.ts +3 -0
- package/dist/e2e/without-trailing-slashes.d.ts.map +1 -0
- package/dist/e2e/without-trailing-slashes.js +9 -0
- package/dist/e2e/without-trailing-slashes.js.map +1 -0
- package/dist/e2e.d.ts +16 -0
- package/dist/e2e.d.ts.map +1 -0
- package/dist/e2e.js +8 -0
- package/dist/e2e.js.map +1 -0
- package/dist/execution/a-session.d.ts +4 -0
- package/dist/execution/a-session.d.ts.map +1 -0
- package/dist/execution/a-session.js +7 -0
- package/dist/execution/a-session.js.map +1 -0
- package/dist/execution/a-test-user.d.ts +4 -0
- package/dist/execution/a-test-user.d.ts.map +1 -0
- package/dist/execution/a-test-user.js +9 -0
- package/dist/execution/a-test-user.js.map +1 -0
- package/dist/execution/an-execution-context.d.ts +4 -0
- package/dist/execution/an-execution-context.d.ts.map +1 -0
- package/dist/execution/an-execution-context.js +7 -0
- package/dist/execution/an-execution-context.js.map +1 -0
- package/dist/execution/execution-context-builder.d.ts +37 -0
- package/dist/execution/execution-context-builder.d.ts.map +1 -0
- package/dist/execution/execution-context-builder.js +67 -0
- package/dist/execution/execution-context-builder.js.map +1 -0
- package/dist/execution/scoped.d.ts +8 -0
- package/dist/execution/scoped.d.ts.map +1 -0
- package/dist/execution/scoped.js +9 -0
- package/dist/execution/scoped.js.map +1 -0
- package/dist/execution/session-builder.d.ts +37 -0
- package/dist/execution/session-builder.d.ts.map +1 -0
- package/dist/execution/session-builder.js +71 -0
- package/dist/execution/session-builder.js.map +1 -0
- package/dist/faker/create-data-generator.d.ts +15 -0
- package/dist/faker/create-data-generator.d.ts.map +1 -0
- package/dist/faker/create-data-generator.js +24 -0
- package/dist/faker/create-data-generator.js.map +1 -0
- package/dist/faker/current-data-generator.d.ts +9 -0
- package/dist/faker/current-data-generator.d.ts.map +1 -0
- package/dist/faker/current-data-generator.js +16 -0
- package/dist/faker/current-data-generator.js.map +1 -0
- package/dist/faker/data-generator.d.ts +9 -0
- package/dist/faker/data-generator.d.ts.map +1 -0
- package/dist/faker/data-generator.js +2 -0
- package/dist/faker/data-generator.js.map +1 -0
- package/dist/faker/generated.d.ts +8 -0
- package/dist/faker/generated.d.ts.map +1 -0
- package/dist/faker/generated.js +10 -0
- package/dist/faker/generated.js.map +1 -0
- package/dist/faker/replay-hint.d.ts +2 -0
- package/dist/faker/replay-hint.d.ts.map +1 -0
- package/dist/faker/replay-hint.js +4 -0
- package/dist/faker/replay-hint.js.map +1 -0
- package/dist/faker/report-seed-on-failure.d.ts +11 -0
- package/dist/faker/report-seed-on-failure.d.ts.map +1 -0
- package/dist/faker/report-seed-on-failure.js +12 -0
- package/dist/faker/report-seed-on-failure.js.map +1 -0
- package/dist/faker.d.ts +7 -0
- package/dist/faker.d.ts.map +1 -0
- package/dist/faker.js +6 -0
- package/dist/faker.js.map +1 -0
- package/dist/harness/create-test-buses.d.ts +49 -0
- package/dist/harness/create-test-buses.d.ts.map +1 -0
- package/dist/harness/create-test-buses.js +35 -0
- package/dist/harness/create-test-buses.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/in-memory-repository.d.ts +30 -0
- package/dist/repositories/in-memory-repository.d.ts.map +1 -0
- package/dist/repositories/in-memory-repository.js +58 -0
- package/dist/repositories/in-memory-repository.js.map +1 -0
- package/dist/repositories/snapshot-codec.d.ts +6 -0
- package/dist/repositories/snapshot-codec.d.ts.map +1 -0
- package/dist/repositories/snapshot-codec.js +2 -0
- package/dist/repositories/snapshot-codec.js.map +1 -0
- package/dist/repositories/snapshots.d.ts +5 -0
- package/dist/repositories/snapshots.d.ts.map +1 -0
- package/dist/repositories/snapshots.js +9 -0
- package/dist/repositories/snapshots.js.map +1 -0
- package/dist/scenarios/act.d.ts +5 -0
- package/dist/scenarios/act.d.ts.map +1 -0
- package/dist/scenarios/act.js +21 -0
- package/dist/scenarios/act.js.map +1 -0
- package/dist/scenarios/async-outcome.d.ts +5 -0
- package/dist/scenarios/async-outcome.d.ts.map +1 -0
- package/dist/scenarios/async-outcome.js +2 -0
- package/dist/scenarios/async-outcome.js.map +1 -0
- package/dist/scenarios/async-scenario.d.ts +5 -0
- package/dist/scenarios/async-scenario.d.ts.map +1 -0
- package/dist/scenarios/async-scenario.js +2 -0
- package/dist/scenarios/async-scenario.js.map +1 -0
- package/dist/scenarios/deferred-outcome.d.ts +18 -0
- package/dist/scenarios/deferred-outcome.d.ts.map +1 -0
- package/dist/scenarios/deferred-outcome.js +34 -0
- package/dist/scenarios/deferred-outcome.js.map +1 -0
- package/dist/scenarios/describe-event.d.ts +3 -0
- package/dist/scenarios/describe-event.d.ts.map +1 -0
- package/dist/scenarios/describe-event.js +6 -0
- package/dist/scenarios/describe-event.js.map +1 -0
- package/dist/scenarios/error-class.d.ts +2 -0
- package/dist/scenarios/error-class.d.ts.map +1 -0
- package/dist/scenarios/error-class.js +2 -0
- package/dist/scenarios/error-class.js.map +1 -0
- package/dist/scenarios/event-matcher.d.ts +11 -0
- package/dist/scenarios/event-matcher.d.ts.map +1 -0
- package/dist/scenarios/event-matcher.js +2 -0
- package/dist/scenarios/event-matcher.js.map +1 -0
- package/dist/scenarios/event-mismatches.d.ts +5 -0
- package/dist/scenarios/event-mismatches.d.ts.map +1 -0
- package/dist/scenarios/event-mismatches.js +33 -0
- package/dist/scenarios/event-mismatches.js.map +1 -0
- package/dist/scenarios/event-source.d.ts +6 -0
- package/dist/scenarios/event-source.d.ts.map +1 -0
- package/dist/scenarios/event-source.js +2 -0
- package/dist/scenarios/event-source.js.map +1 -0
- package/dist/scenarios/given.d.ts +9 -0
- package/dist/scenarios/given.d.ts.map +1 -0
- package/dist/scenarios/given.js +10 -0
- package/dist/scenarios/given.js.map +1 -0
- package/dist/scenarios/immediate-outcome.d.ts +18 -0
- package/dist/scenarios/immediate-outcome.d.ts.map +1 -0
- package/dist/scenarios/immediate-outcome.js +147 -0
- package/dist/scenarios/immediate-outcome.js.map +1 -0
- package/dist/scenarios/is-promise-like.d.ts +2 -0
- package/dist/scenarios/is-promise-like.d.ts.map +1 -0
- package/dist/scenarios/is-promise-like.js +4 -0
- package/dist/scenarios/is-promise-like.js.map +1 -0
- package/dist/scenarios/outcome.d.ts +17 -0
- package/dist/scenarios/outcome.d.ts.map +1 -0
- package/dist/scenarios/outcome.js +2 -0
- package/dist/scenarios/outcome.js.map +1 -0
- package/dist/scenarios/recorded.d.ts +10 -0
- package/dist/scenarios/recorded.d.ts.map +1 -0
- package/dist/scenarios/recorded.js +2 -0
- package/dist/scenarios/recorded.js.map +1 -0
- package/dist/scenarios/scenario.d.ts +18 -0
- package/dist/scenarios/scenario.d.ts.map +1 -0
- package/dist/scenarios/scenario.js +17 -0
- package/dist/scenarios/scenario.js.map +1 -0
- package/dist/scenarios/show.d.ts +3 -0
- package/dist/scenarios/show.d.ts.map +1 -0
- package/dist/scenarios/show.js +6 -0
- package/dist/scenarios/show.js.map +1 -0
- package/dist/secrecy/expect-no-secret.d.ts +9 -0
- package/dist/secrecy/expect-no-secret.d.ts.map +1 -0
- package/dist/secrecy/expect-no-secret.js +55 -0
- package/dist/secrecy/expect-no-secret.js.map +1 -0
- package/dist/vitest/compiler-script.d.ts +3 -0
- package/dist/vitest/compiler-script.d.ts.map +1 -0
- package/dist/vitest/compiler-script.js +18 -0
- package/dist/vitest/compiler-script.js.map +1 -0
- package/dist/vitest/decorator-compiler.d.ts +21 -0
- package/dist/vitest/decorator-compiler.d.ts.map +1 -0
- package/dist/vitest/decorator-compiler.js +112 -0
- package/dist/vitest/decorator-compiler.js.map +1 -0
- package/dist/vitest/decorator-coverage.d.ts +27 -0
- package/dist/vitest/decorator-coverage.d.ts.map +1 -0
- package/dist/vitest/decorator-coverage.js +41 -0
- package/dist/vitest/decorator-coverage.js.map +1 -0
- package/dist/vitest/decorators.d.ts +41 -0
- package/dist/vitest/decorators.d.ts.map +1 -0
- package/dist/vitest/decorators.js +49 -0
- package/dist/vitest/decorators.js.map +1 -0
- package/dist/vitest/is-record.d.ts +2 -0
- package/dist/vitest/is-record.d.ts.map +1 -0
- package/dist/vitest/is-record.js +4 -0
- package/dist/vitest/is-record.js.map +1 -0
- package/dist/vitest/project-options.d.ts +3 -0
- package/dist/vitest/project-options.d.ts.map +1 -0
- package/dist/vitest/project-options.js +2 -0
- package/dist/vitest/project-options.js.map +1 -0
- package/dist/vitest/single-file-project.d.ts +3 -0
- package/dist/vitest/single-file-project.d.ts.map +1 -0
- package/dist/vitest/single-file-project.js +26 -0
- package/dist/vitest/single-file-project.js.map +1 -0
- package/dist/vitest/source-map-of.d.ts +3 -0
- package/dist/vitest/source-map-of.d.ts.map +1 -0
- package/dist/vitest/source-map-of.js +14 -0
- package/dist/vitest/source-map-of.js.map +1 -0
- package/dist/vitest.d.ts +3 -0
- package/dist/vitest.d.ts.map +1 -0
- package/dist/vitest.js +3 -0
- package/dist/vitest.js.map +1 -0
- package/package.json +62 -4
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DomainEvent } from '@ddd-ts-kit/kernel';
|
|
2
|
+
type EventClass = abstract new (...args: never[]) => DomainEvent;
|
|
3
|
+
/**
|
|
4
|
+
* How an expected event is described: its name, its class, or the properties that matter
|
|
5
|
+
* (a subset: properties left out are not compared).
|
|
6
|
+
*/
|
|
7
|
+
export type EventMatcher = string | EventClass | {
|
|
8
|
+
readonly [property: string]: unknown;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=event-matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-matcher.d.ts","sourceRoot":"","sources":["../../src/scenarios/event-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,KAAK,UAAU,GAAG,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,WAAW,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG;IAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-matcher.js","sourceRoot":"","sources":["../../src/scenarios/event-matcher.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DomainEvent } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { EventMatcher } from './event-matcher.js';
|
|
3
|
+
/** Why the event is not the one the matcher describes, one line per difference; none when it is. */
|
|
4
|
+
export declare function eventMismatches(event: DomainEvent, matcher: EventMatcher, where: string): string[];
|
|
5
|
+
//# sourceMappingURL=event-mismatches.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-mismatches.d.ts","sourceRoot":"","sources":["../../src/scenarios/event-mismatches.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,oGAAoG;AACpG,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAYlG"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
2
|
+
import { describeEvent } from './describe-event.js';
|
|
3
|
+
import { show } from './show.js';
|
|
4
|
+
/** Why the event is not the one the matcher describes, one line per difference; none when it is. */
|
|
5
|
+
export function eventMismatches(event, matcher, where) {
|
|
6
|
+
if (typeof matcher === 'string') {
|
|
7
|
+
return matcher === event.name ? [] : [`${where}: expected name ${show(matcher)}, recorded ${show(event.name)}`];
|
|
8
|
+
}
|
|
9
|
+
if (typeof matcher === 'function') {
|
|
10
|
+
return event instanceof matcher
|
|
11
|
+
? []
|
|
12
|
+
: [`${where}: expected an instance of ${matcher.name}, recorded ${describeEvent(event)}`];
|
|
13
|
+
}
|
|
14
|
+
return subsetDifferences(event, matcher, where);
|
|
15
|
+
}
|
|
16
|
+
function subsetDifferences(actual, expected, path) {
|
|
17
|
+
if (isPlainObject(expected) && typeof actual === 'object' && actual !== null) {
|
|
18
|
+
return Object.entries(expected).flatMap(([key, value]) => {
|
|
19
|
+
// Reflect.get rather than a spread: an event class may expose a property through a getter.
|
|
20
|
+
const recorded = Reflect.get(actual, key);
|
|
21
|
+
return subsetDifferences(recorded, value, `${path}.${key}`);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return isDeepStrictEqual(actual, expected) ? [] : [`${path}: expected ${show(expected)}, recorded ${show(actual)}`];
|
|
25
|
+
}
|
|
26
|
+
function isPlainObject(value) {
|
|
27
|
+
if (typeof value !== 'object' || value === null) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const prototype = Object.getPrototypeOf(value);
|
|
31
|
+
return prototype === Object.prototype || prototype === null;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=event-mismatches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-mismatches.js","sourceRoot":"","sources":["../../src/scenarios/event-mismatches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,oGAAoG;AACpG,MAAM,UAAU,eAAe,CAAC,KAAkB,EAAE,OAAqB,EAAE,KAAa;IACtF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,mBAAmB,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClH,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,KAAK,YAAY,OAAO;YAC7B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,GAAG,KAAK,6BAA6B,OAAO,CAAC,IAAI,cAAc,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAe,EAAE,QAAiB,EAAE,IAAY;IACzE,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC7E,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACvD,2FAA2F;YAC3F,MAAM,QAAQ,GAAY,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAEnD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAY,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAExD,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-source.d.ts","sourceRoot":"","sources":["../../src/scenarios/event-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B,UAAU,IAAI,WAAW,EAAE,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-source.js","sourceRoot":"","sources":["../../src/scenarios/event-source.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Resolvable } from '../builders/resolvable.js';
|
|
2
|
+
import type { EventSource } from './event-source.js';
|
|
3
|
+
import { type Scenario } from './scenario.js';
|
|
4
|
+
/**
|
|
5
|
+
* Starts a scenario from an aggregate (or its builder) in its "given" state. The events
|
|
6
|
+
* recorded while arranging are discarded, so only the events of `when` are asserted.
|
|
7
|
+
*/
|
|
8
|
+
export declare function given<A extends EventSource>(aggregate: A | Resolvable<A>): Scenario<A>;
|
|
9
|
+
//# sourceMappingURL=given.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"given.d.ts","sourceRoot":"","sources":["../../src/scenarios/given.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEtF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { resolve } from '../builders/resolve.js';
|
|
2
|
+
import { scenario } from './scenario.js';
|
|
3
|
+
/**
|
|
4
|
+
* Starts a scenario from an aggregate (or its builder) in its "given" state. The events
|
|
5
|
+
* recorded while arranging are discarded, so only the events of `when` are asserted.
|
|
6
|
+
*/
|
|
7
|
+
export function given(aggregate) {
|
|
8
|
+
return scenario(() => resolve(aggregate));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=given.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"given.js","sourceRoot":"","sources":["../../src/scenarios/given.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAwB,SAA4B;IACvE,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ErrorClass } from './error-class.js';
|
|
2
|
+
import type { EventMatcher } from './event-matcher.js';
|
|
3
|
+
import type { Outcome } from './outcome.js';
|
|
4
|
+
import type { Recorded } from './recorded.js';
|
|
5
|
+
/** The assertions about an action that already ran: each one throws at once. */
|
|
6
|
+
export declare class ImmediateOutcome<A> implements Outcome<A> {
|
|
7
|
+
private readonly recorded;
|
|
8
|
+
private errorAsserted;
|
|
9
|
+
constructor(recorded: Recorded<A>);
|
|
10
|
+
thenEvents(expected: readonly EventMatcher[]): this;
|
|
11
|
+
thenEventNames(expected: readonly string[]): this;
|
|
12
|
+
thenNoEvent(): this;
|
|
13
|
+
thenError(typeOrCode: ErrorClass | string, code?: string): this;
|
|
14
|
+
thenState(inspectState: (aggregate: A) => void): this;
|
|
15
|
+
private thrownInsteadOf;
|
|
16
|
+
private assertDidNotThrow;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=immediate-outcome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"immediate-outcome.d.ts","sourceRoot":"","sources":["../../src/scenarios/immediate-outcome.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,gFAAgF;AAChF,qBAAa,gBAAgB,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAIxC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,aAAa,CAAS;IAE9B,YAA6B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAI;IAEtD,UAAU,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CA6BlD;IAED,cAAc,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAkBhD;IAED,WAAW,IAAI,IAAI,CAclB;IAED,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAwB9D;IAED,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAQpD;IAED,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,iBAAiB;CAY1B"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { AssertionError } from 'node:assert';
|
|
2
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
3
|
+
import { describeEvent } from './describe-event.js';
|
|
4
|
+
import { eventMismatches } from './event-mismatches.js';
|
|
5
|
+
import { show } from './show.js';
|
|
6
|
+
/** The assertions about an action that already ran: each one throws at once. */
|
|
7
|
+
export class ImmediateOutcome {
|
|
8
|
+
recorded;
|
|
9
|
+
// An error nobody looked at must not let a state assertion pass by accident.
|
|
10
|
+
errorAsserted = false;
|
|
11
|
+
constructor(recorded) {
|
|
12
|
+
this.recorded = recorded;
|
|
13
|
+
}
|
|
14
|
+
thenEvents(expected) {
|
|
15
|
+
this.assertDidNotThrow('events');
|
|
16
|
+
const { events } = this.recorded;
|
|
17
|
+
const differences = expected.flatMap((matcher, index) => {
|
|
18
|
+
const event = events[index];
|
|
19
|
+
return event === undefined ? [] : eventMismatches(event, matcher, `event ${index + 1}`);
|
|
20
|
+
});
|
|
21
|
+
if (events.length !== expected.length) {
|
|
22
|
+
differences.unshift(`expected ${count(expected.length)}, recorded ${count(events.length)}`);
|
|
23
|
+
}
|
|
24
|
+
if (differences.length > 0) {
|
|
25
|
+
throw new AssertionError({
|
|
26
|
+
message: [
|
|
27
|
+
'The recorded events are not the expected ones.',
|
|
28
|
+
...section('Expected', expected.map(describeMatcher)),
|
|
29
|
+
...section('Recorded', events.map(describeEvent)),
|
|
30
|
+
...section('Difference', differences),
|
|
31
|
+
].join('\n'),
|
|
32
|
+
actual: events.map(describeEvent),
|
|
33
|
+
expected: expected.map(describeMatcher),
|
|
34
|
+
operator: 'thenEvents',
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
thenEventNames(expected) {
|
|
40
|
+
this.assertDidNotThrow('events');
|
|
41
|
+
const actual = this.recorded.events.map((event) => event.name);
|
|
42
|
+
if (!isDeepStrictEqual(actual, [...expected])) {
|
|
43
|
+
throw new AssertionError({
|
|
44
|
+
message: [
|
|
45
|
+
'The recorded event names are not the expected ones.',
|
|
46
|
+
...section('Expected', [...expected]),
|
|
47
|
+
...section('Recorded', actual),
|
|
48
|
+
].join('\n'),
|
|
49
|
+
actual,
|
|
50
|
+
expected,
|
|
51
|
+
operator: 'thenEventNames',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
thenNoEvent() {
|
|
57
|
+
this.assertDidNotThrow('no event');
|
|
58
|
+
const { events } = this.recorded;
|
|
59
|
+
if (events.length > 0) {
|
|
60
|
+
throw new AssertionError({
|
|
61
|
+
message: ['Expected no event.', ...section('Recorded', events.map(describeEvent))].join('\n'),
|
|
62
|
+
actual: events.map(describeEvent),
|
|
63
|
+
expected: [],
|
|
64
|
+
operator: 'thenNoEvent',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
thenError(typeOrCode, code) {
|
|
70
|
+
const type = typeof typeOrCode === 'string' ? undefined : typeOrCode;
|
|
71
|
+
const expectedCode = typeof typeOrCode === 'string' ? typeOrCode : code;
|
|
72
|
+
const expected = [type?.name, expectedCode === undefined ? undefined : `code ${expectedCode}`]
|
|
73
|
+
.filter((part) => part !== undefined)
|
|
74
|
+
.join(' with ');
|
|
75
|
+
const error = this.thrownInsteadOf(expected);
|
|
76
|
+
const wrongType = type !== undefined && !(error instanceof type);
|
|
77
|
+
const wrongCode = expectedCode !== undefined && codeOf(error) !== expectedCode;
|
|
78
|
+
if (wrongType || wrongCode) {
|
|
79
|
+
throw new AssertionError({
|
|
80
|
+
message: `Expected the action to fail with ${expected}, but it failed with ${describeError(error)}.`,
|
|
81
|
+
actual: describeError(error),
|
|
82
|
+
expected,
|
|
83
|
+
operator: 'thenError',
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
this.errorAsserted = true;
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
thenState(inspectState) {
|
|
90
|
+
if (!this.errorAsserted) {
|
|
91
|
+
this.assertDidNotThrow('a state');
|
|
92
|
+
}
|
|
93
|
+
inspectState(this.recorded.aggregate);
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
thrownInsteadOf(expected) {
|
|
97
|
+
const { thrown, events } = this.recorded;
|
|
98
|
+
if (thrown === undefined) {
|
|
99
|
+
throw new AssertionError({
|
|
100
|
+
message: [
|
|
101
|
+
`Expected the action to fail with ${expected}, but it succeeded.`,
|
|
102
|
+
...section('Recorded', events.map(describeEvent)),
|
|
103
|
+
].join('\n'),
|
|
104
|
+
actual: undefined,
|
|
105
|
+
expected,
|
|
106
|
+
operator: 'thenError',
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return thrown.error;
|
|
110
|
+
}
|
|
111
|
+
assertDidNotThrow(expectation) {
|
|
112
|
+
const { thrown } = this.recorded;
|
|
113
|
+
if (thrown !== undefined) {
|
|
114
|
+
throw new AssertionError({
|
|
115
|
+
message: `Expected ${expectation}, but the action failed with ${describeError(thrown.error)}.`,
|
|
116
|
+
actual: thrown.error,
|
|
117
|
+
expected: undefined,
|
|
118
|
+
operator: 'when',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function count(n) {
|
|
124
|
+
return `${n} event${n === 1 ? '' : 's'}`;
|
|
125
|
+
}
|
|
126
|
+
function section(title, lines) {
|
|
127
|
+
return [`${title}:`, ...(lines.length === 0 ? [' (none)'] : lines.map((line, index) => ` ${index + 1}. ${line}`))];
|
|
128
|
+
}
|
|
129
|
+
function describeMatcher(matcher) {
|
|
130
|
+
if (typeof matcher === 'string') {
|
|
131
|
+
return matcher;
|
|
132
|
+
}
|
|
133
|
+
return typeof matcher === 'function' ? `instance of ${matcher.name}` : show(matcher);
|
|
134
|
+
}
|
|
135
|
+
function codeOf(error) {
|
|
136
|
+
return typeof error === 'object' && error !== null && 'code' in error && typeof error.code === 'string'
|
|
137
|
+
? error.code
|
|
138
|
+
: undefined;
|
|
139
|
+
}
|
|
140
|
+
function describeError(error) {
|
|
141
|
+
if (!(error instanceof Error)) {
|
|
142
|
+
return show(error);
|
|
143
|
+
}
|
|
144
|
+
const code = codeOf(error);
|
|
145
|
+
return `${error.constructor.name}${code === undefined ? '' : ` (code ${code})`}: ${error.message}`;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=immediate-outcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"immediate-outcome.js","sourceRoot":"","sources":["../../src/scenarios/immediate-outcome.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-promise-like.d.ts","sourceRoot":"","sources":["../../src/scenarios/is-promise-like.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAE3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-promise-like.js","sourceRoot":"","sources":["../../src/scenarios/is-promise-like.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AAC5G,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ErrorClass } from './error-class.js';
|
|
2
|
+
import type { EventMatcher } from './event-matcher.js';
|
|
3
|
+
/** The assertions available once `when` ran. Each returns the outcome, so they chain. */
|
|
4
|
+
export interface Outcome<A> {
|
|
5
|
+
/** Exactly these events, in this order. */
|
|
6
|
+
thenEvents(expected: readonly EventMatcher[]): this;
|
|
7
|
+
/** Exactly these event names, in this order. */
|
|
8
|
+
thenEventNames(expected: readonly string[]): this;
|
|
9
|
+
thenNoEvent(): this;
|
|
10
|
+
/** The action threw an instance of `type` (and, when given, with this `code`). */
|
|
11
|
+
thenError(type: ErrorClass, code?: string): this;
|
|
12
|
+
/** The action threw an error carrying this `code`, whatever its class. */
|
|
13
|
+
thenError(code: string): this;
|
|
14
|
+
/** Inspects the aggregate after the action; `inspect` asserts with the runner's own tools. */
|
|
15
|
+
thenState(inspect: (aggregate: A) => void): this;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=outcome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../../src/scenarios/outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,yFAAyF;AACzF,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,2CAA2C;IAC3C,UAAU,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAAC;IACpD,gDAAgD;IAChD,cAAc,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,WAAW,IAAI,IAAI,CAAC;IACpB,kFAAkF;IAClF,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,0EAA0E;IAC1E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8FAA8F;IAC9F,SAAS,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../src/scenarios/outcome.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DomainEvent } from '@ddd-ts-kit/kernel';
|
|
2
|
+
/** What `when` left behind: the aggregate, the events of the action, what it threw. */
|
|
3
|
+
export interface Recorded<A> {
|
|
4
|
+
readonly aggregate: A;
|
|
5
|
+
readonly events: readonly DomainEvent[];
|
|
6
|
+
readonly thrown: {
|
|
7
|
+
readonly error: unknown;
|
|
8
|
+
} | undefined;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=recorded.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recorded.d.ts","sourceRoot":"","sources":["../../src/scenarios/recorded.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,uFAAuF;AACvF,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CAC1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recorded.js","sourceRoot":"","sources":["../../src/scenarios/recorded.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AsyncOutcome } from './async-outcome.js';
|
|
2
|
+
import type { AsyncScenario } from './async-scenario.js';
|
|
3
|
+
import type { EventSource } from './event-source.js';
|
|
4
|
+
import type { Outcome } from './outcome.js';
|
|
5
|
+
export interface Scenario<A> {
|
|
6
|
+
/**
|
|
7
|
+
* The one intention under test. Synchronous actions give assertions that throw at once;
|
|
8
|
+
* an action returning a promise gives an outcome that must be awaited.
|
|
9
|
+
*/
|
|
10
|
+
when<R>(action: (aggregate: A) => R): R extends PromiseLike<unknown> ? AsyncOutcome<A> : Outcome<A>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Same as `given`, with the arrangement written as a function: it runs when `when` is called,
|
|
14
|
+
* so one scenario can be declared once and replayed from a fresh aggregate in several tests.
|
|
15
|
+
*/
|
|
16
|
+
export declare function scenario<A extends EventSource>(arrange: () => Promise<A>): AsyncScenario<A>;
|
|
17
|
+
export declare function scenario<A extends EventSource>(arrange: () => A): Scenario<A>;
|
|
18
|
+
//# sourceMappingURL=scenario.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../src/scenarios/scenario.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB;;;OAGG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrG;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC7F,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { act } from './act.js';
|
|
2
|
+
import { DeferredOutcome } from './deferred-outcome.js';
|
|
3
|
+
import { ImmediateOutcome } from './immediate-outcome.js';
|
|
4
|
+
import { isPromiseLike } from './is-promise-like.js';
|
|
5
|
+
export function scenario(arrange) {
|
|
6
|
+
const when = (action) => {
|
|
7
|
+
const arranged = arrange();
|
|
8
|
+
if (isPromiseLike(arranged)) {
|
|
9
|
+
return DeferredOutcome.of(Promise.resolve(arranged).then((aggregate) => act(aggregate, action)));
|
|
10
|
+
}
|
|
11
|
+
const recorded = act(arranged, action);
|
|
12
|
+
return recorded instanceof Promise ? DeferredOutcome.of(recorded) : new ImmediateOutcome(recorded);
|
|
13
|
+
};
|
|
14
|
+
// eslint-disable-next-line ddd-ts-kit/clean-no-escape-hatch -- the conditional return type of Scenario.when depends on the caller's action; the runtime check above follows the same rule, which the compiler cannot verify
|
|
15
|
+
return { when };
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=scenario.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../src/scenarios/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkBrD,MAAM,UAAU,QAAQ,CAAwB,OAA6B;IAC3E,MAAM,IAAI,GAAG,CAAC,MAAiC,EAAc,EAAE;QAC7D,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;QAE3B,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvC,OAAO,QAAQ,YAAY,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACrG,CAAC,CAAC;IAEF,4NAA4N;IAC5N,OAAO,EAAE,IAAI,EAAoC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/scenarios/show.ts"],"names":[],"mappings":"AAEA,wFAAwF;AACxF,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3C"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { inspect } from 'node:util';
|
|
2
|
+
/** A value on one line, keys sorted, as the failure messages of a scenario quote it. */
|
|
3
|
+
export function show(value) {
|
|
4
|
+
return inspect(value, { depth: 4, breakLength: Infinity, sorted: true });
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/scenarios/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wFAAwF;AACxF,MAAM,UAAU,IAAI,CAAC,KAAc;IACjC,OAAO,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asserts that an object the application holds (an adapter, a provider) shows none of the
|
|
3
|
+
* secrets it was built with: not when it is serialised with `JSON.stringify`, not when it is
|
|
4
|
+
* spread, not through the values `Object.keys` leads to, not when it is logged with
|
|
5
|
+
* `util.inspect`, at any depth. Give the values as they were given to the adapter: a password,
|
|
6
|
+
* a key, a connection URL.
|
|
7
|
+
*/
|
|
8
|
+
export declare function expectNoSecret(subject: object, secrets: readonly string[]): void;
|
|
9
|
+
//# sourceMappingURL=expect-no-secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expect-no-secret.d.ts","sourceRoot":"","sources":["../../src/secrecy/expect-no-secret.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAchF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { AssertionError } from 'node:assert';
|
|
2
|
+
import { inspect } from 'node:util';
|
|
3
|
+
const EVERYTHING = {
|
|
4
|
+
depth: Infinity,
|
|
5
|
+
showHidden: true,
|
|
6
|
+
maxArrayLength: Infinity,
|
|
7
|
+
maxStringLength: Infinity,
|
|
8
|
+
breakLength: Infinity,
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Asserts that an object the application holds (an adapter, a provider) shows none of the
|
|
12
|
+
* secrets it was built with: not when it is serialised with `JSON.stringify`, not when it is
|
|
13
|
+
* spread, not through the values `Object.keys` leads to, not when it is logged with
|
|
14
|
+
* `util.inspect`, at any depth. Give the values as they were given to the adapter: a password,
|
|
15
|
+
* a key, a connection URL.
|
|
16
|
+
*/
|
|
17
|
+
export function expectNoSecret(subject, secrets) {
|
|
18
|
+
for (const [view, shown] of Object.entries(viewsOf(subject))) {
|
|
19
|
+
const leaked = secrets.findIndex((secret) => shown.includes(secret));
|
|
20
|
+
if (leaked === -1) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
// The secret itself is kept out of the failure: a test report is read by many.
|
|
24
|
+
throw new AssertionError({
|
|
25
|
+
message: `${nameOf(subject)} shows secret #${leaked + 1} of ${secrets.length} through ${view}`,
|
|
26
|
+
operator: 'expectNoSecret',
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function viewsOf(subject) {
|
|
31
|
+
const spread = { ...subject };
|
|
32
|
+
return {
|
|
33
|
+
'JSON.stringify': serialised(subject),
|
|
34
|
+
'an object spread': `${serialised(spread)}\n${inspect(spread, EVERYTHING)}`,
|
|
35
|
+
'the values under Object.keys': Object.keys(subject)
|
|
36
|
+
.map((key) => inspect(Reflect.get(subject, key), EVERYTHING))
|
|
37
|
+
.join('\n'),
|
|
38
|
+
'util.inspect': `${inspect(subject)}\n${inspect(subject, EVERYTHING)}`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** What cannot be serialised (a cycle, a BigInt) or serialises to nothing shows nothing this way. */
|
|
42
|
+
function serialised(value) {
|
|
43
|
+
try {
|
|
44
|
+
const text = JSON.stringify(value);
|
|
45
|
+
return typeof text === 'string' ? text : '';
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return '';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function nameOf(subject) {
|
|
52
|
+
const constructor = Reflect.get(subject, 'constructor');
|
|
53
|
+
return typeof constructor === 'function' && constructor.name !== '' ? constructor.name : 'The object';
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=expect-no-secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expect-no-secret.js","sourceRoot":"","sources":["../../src/secrecy/expect-no-secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,QAAQ;IACxB,eAAe,EAAE,QAAQ;IACzB,WAAW,EAAE,QAAQ;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,OAA0B;IACxE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAErE,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,+EAA+E;QAC/E,MAAM,IAAI,cAAc,CAAC;YACvB,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,YAAY,IAAI,EAAE;YAC9F,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAE9B,OAAO;QACL,gBAAgB,EAAE,UAAU,CAAC,OAAO,CAAC;QACrC,kBAAkB,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;QAC3E,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACjD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;aAC5D,IAAI,CAAC,IAAI,CAAC;QACb,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;KACvE,CAAC;AACJ,CAAC;AAED,qGAAqG;AACrG,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,CAAC;QACH,MAAM,IAAI,GAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE5C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,OAAe;IAC7B,MAAM,WAAW,GAAY,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAEjE,OAAO,OAAO,WAAW,KAAK,UAAU,IAAI,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;AACxG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler-script.d.ts","sourceRoot":"","sources":["../../src/vitest/compiler-script.ts"],"names":[],"mappings":"AAKA,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAcrE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { isRecord } from './is-record.js';
|
|
5
|
+
/** The path of the `tsc` script of a compiler named as a package of the project, or as a path. */
|
|
6
|
+
export function compilerScript(compiler, root) {
|
|
7
|
+
if (path.isAbsolute(compiler) || compiler.startsWith('.')) {
|
|
8
|
+
return path.resolve(root, compiler);
|
|
9
|
+
}
|
|
10
|
+
const manifestPath = createRequire(path.join(root, 'package.json')).resolve(`${compiler}/package.json`);
|
|
11
|
+
const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
12
|
+
const bin = isRecord(manifest) && isRecord(manifest.bin) ? manifest.bin.tsc : undefined;
|
|
13
|
+
if (typeof bin !== 'string') {
|
|
14
|
+
throw new Error(`The package "${compiler}" ships no tsc: name the compiler to use.`);
|
|
15
|
+
}
|
|
16
|
+
return path.join(path.dirname(manifestPath), bin);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=compiler-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler-script.js","sourceRoot":"","sources":["../../src/vitest/compiler-script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,kGAAkG;AAClG,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,IAAY;IAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,eAAe,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAExF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,2CAA2C,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface CompilerSetup {
|
|
2
|
+
readonly script: string;
|
|
3
|
+
readonly cacheDir: string;
|
|
4
|
+
readonly tsconfig?: string;
|
|
5
|
+
}
|
|
6
|
+
/** Compiles one file holding standard decorators with the `tsc` of the project, once per content. */
|
|
7
|
+
export declare class DecoratorCompiler {
|
|
8
|
+
private readonly setup;
|
|
9
|
+
private readonly projects;
|
|
10
|
+
constructor(setup: CompilerSetup);
|
|
11
|
+
compile(file: string, code: string): {
|
|
12
|
+
code: string;
|
|
13
|
+
map: string;
|
|
14
|
+
} | undefined;
|
|
15
|
+
private projectOf;
|
|
16
|
+
private entryOf;
|
|
17
|
+
/** Emitted next to the cache, then moved into it in one step: a reader never sees half a file. */
|
|
18
|
+
private emit;
|
|
19
|
+
private run;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=decorator-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorator-compiler.d.ts","sourceRoot":"","sources":["../../src/vitest/decorator-compiler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAoBD,qGAAqG;AACrG,qBAAa,iBAAiB;IAGhB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAE9D,YAA6B,KAAK,EAAE,aAAa,EAAI;IAErD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAiB7E;IAED,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,OAAO;IAgBf,kGAAkG;IAClG,OAAO,CAAC,IAAI;IAkBZ,OAAO,CAAC,GAAG;CAUZ"}
|