@jterrazz/test 16.1.0 → 17.0.0
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 +45 -171
- package/dist/browser/index.js +2 -2867
- package/dist/browser/services.js +2 -0
- package/dist/browser/stubs.js +2 -0
- package/dist/checker.d.ts +6 -1
- package/dist/checker.js +4551 -2612
- package/dist/config.d.ts +40 -0
- package/dist/config.js +309 -0
- package/dist/in-place.global-setup.d.ts +11 -0
- package/dist/in-place.global-setup.js +21 -0
- package/dist/index.d.ts +1653 -3002
- package/dist/index.js +5226 -3845
- package/dist/mobile-session.global-setup.d.ts +14 -0
- package/dist/mobile-session.global-setup.js +31 -0
- package/dist/oxlint.cjs +6073 -5616
- package/dist/oxlint.d.cts +43 -7212
- package/dist/oxlint.d.ts +43 -7212
- package/dist/oxlint.js +6065 -5609
- package/dist/route-coverage.global-setup.d.ts +42 -0
- package/dist/route-coverage.global-setup.js +2 -0
- package/dist/services.d.ts +3 -0
- package/dist/services.global-setup.d.ts +43 -0
- package/dist/services.global-setup.js +2 -0
- package/dist/services.js +597 -0
- package/dist/shared-appium.adapter.js +428 -0
- package/dist/shared-artifacts.js +32 -0
- package/dist/shared-chapter.js +7 -0
- package/dist/shared-container.port.d.ts +31 -0
- package/dist/shared-derived-projects.js +58 -0
- package/dist/shared-device.port.d.ts +189 -0
- package/dist/shared-exchange.js +447 -0
- package/dist/shared-in-place.js +172 -0
- package/dist/shared-index.browser.js +3191 -0
- package/dist/shared-index.services.d.ts +346 -0
- package/dist/shared-index.stubs.d.ts +287 -0
- package/dist/shared-json-shape.js +17 -0
- package/dist/shared-landmarks.js +71 -0
- package/dist/shared-ledger.js +68 -0
- package/dist/shared-literate-plugin.js +183 -0
- package/dist/shared-manifest.js +1321 -0
- package/dist/shared-pause.js +11 -0
- package/dist/shared-peer.js +88 -0
- package/dist/shared-playwright.adapter.js +330 -0
- package/dist/shared-process.adapter.js +74 -0
- package/dist/shared-refusal.js +35 -0
- package/dist/shared-resolve.js +24 -0
- package/dist/shared-route-coverage.global-setup.js +187 -0
- package/dist/shared-scenario-failure.js +198 -0
- package/dist/shared-serve.js +365 -0
- package/dist/shared-service-images.js +10 -0
- package/dist/shared-services.global-setup.js +179 -0
- package/dist/shared-session-ledger.js +301 -0
- package/dist/shared-setup-entry.js +12 -0
- package/dist/shared-source-scan.js +133 -0
- package/dist/shared-spec-document.js +365 -0
- package/dist/shared-specifications.js +26 -0
- package/dist/shared-stream-body.js +130 -0
- package/dist/shared-stub-server.js +190 -0
- package/dist/shared-temp-root.global-setup.js +80 -0
- package/dist/shared-test-baseline.js +26 -0
- package/dist/shared-test-section.js +58 -0
- package/dist/shared-testcontainers.adapter.js +203 -0
- package/dist/shared-tokens.js +55 -0
- package/dist/shared-yaml-document.js +119 -0
- package/dist/stubs.d.ts +2 -0
- package/dist/stubs.js +657 -0
- package/dist/temp-root.global-setup.d.ts +7 -0
- package/dist/temp-root.global-setup.js +2 -0
- package/dist/vitest.d.ts +97 -163
- package/dist/vitest.js +374 -507
- package/docs/README.md +82 -36
- package/docs/concepts/architecture.md +118 -0
- package/docs/concepts/conventions.md +333 -0
- package/docs/guides/api-specs.md +374 -0
- package/docs/guides/cli-specs.md +564 -0
- package/docs/guides/component-specs.md +252 -0
- package/docs/guides/develop.md +94 -0
- package/docs/guides/integration-specs.md +181 -0
- package/docs/guides/job-specs.md +180 -0
- package/docs/guides/lint-specs.md +174 -0
- package/docs/guides/mobile-specs.md +319 -0
- package/docs/guides/module-tests.md +149 -0
- package/docs/guides/release.md +43 -0
- package/docs/guides/spec-documents.md +189 -0
- package/docs/guides/website-specs.md +413 -0
- package/docs/reference/assertions.md +345 -0
- package/docs/reference/glossary.md +20 -0
- package/docs/reference/linting.md +483 -0
- package/docs/reference/services.md +236 -0
- package/docs/reference/stubs.md +498 -0
- package/docs/reference/time-and-doubles.md +137 -0
- package/docs/reference/tokens.md +258 -0
- package/docs/reference/visitor.md +221 -0
- package/docs/start/getting-started.md +187 -0
- package/docs/start/set-up-a-project.md +214 -0
- package/package.json +50 -30
- package/schema/spec.schema.json +43 -17
- package/dist/appium.adapter.js +0 -489
- package/dist/artifacts.js +0 -32
- package/dist/fixtures.js +0 -110
- package/dist/literate.js +0 -1747
- package/dist/match.js +0 -804
- package/dist/playwright.adapter.js +0 -349
- package/dist/server.js +0 -160
- package/dist/stream.js +0 -321
- package/dist/substring-warning.js +0 -244
- package/docs/01-architecture.md +0 -95
- package/docs/02-developing.md +0 -351
- package/docs/03-testing.md +0 -495
- package/docs/04-operating.md +0 -101
- package/docs/05-module-tests.md +0 -152
- package/docs/06-integration.md +0 -180
- package/docs/07-component.md +0 -246
- package/docs/08-website.md +0 -404
- package/docs/09-mobile.md +0 -270
- package/docs/10-api.md +0 -264
- package/docs/11-jobs.md +0 -157
- package/docs/12-cli.md +0 -677
- package/docs/13-elements.md +0 -242
- package/docs/14-assertions.md +0 -314
- package/docs/15-tokens.md +0 -253
- package/docs/16-contracts.md +0 -438
- package/docs/17-services.md +0 -188
- package/docs/18-conventions.md +0 -305
- package/docs/19-linting.md +0 -510
- package/docs/decisions/001-v9-conventions-on-three-channels.md +0 -50
- package/docs/decisions/002-the-statique-channel-holds-only-what-upstream-does-not.md +0 -49
- package/docs/decisions/003-a-rendered-component-is-a-facet-on-vitest-browser-mode.md +0 -84
- package/docs/decisions/004-a-module-against-real-services-or-a-golden-is-the-integration-facet.md +0 -81
- package/docs/decisions/005-the-doubles-ladder-is-closed.md +0 -86
- package/docs/decisions/006-the-catalogue-reaches-a-file-by-its-role.md +0 -245
- package/docs/decisions/007-compose-mode-leaves-the-package.md +0 -53
- package/docs/decisions/008-vitest-5-node-24-and-the-native-seams-as-optional-peers.md +0 -75
- package/docs/decisions/_template.md +0 -22
- package/docs/reference/classes/Matcher.md +0 -120
- package/docs/reference/classes/ProcessHandle.md +0 -368
- package/docs/reference/functions/defineContract.md +0 -39
- package/docs/reference/functions/defineContracts.md +0 -36
- package/docs/reference/functions/disabled.md +0 -28
- package/docs/reference/functions/enabled.md +0 -20
- package/docs/reference/functions/focused.md +0 -26
- package/docs/reference/functions/mockOf.md +0 -79
- package/docs/reference/functions/postgres.md +0 -31
- package/docs/reference/functions/process.md +0 -33
- package/docs/reference/functions/redis.md +0 -28
- package/docs/reference/functions/required.md +0 -41
- package/docs/reference/functions/selected.md +0 -26
- package/docs/reference/functions/sqlite.md +0 -33
- package/docs/reference/functions/testId.md +0 -20
- package/docs/reference/functions/text.md +0 -40
- package/docs/reference/functions/valued.md +0 -28
- package/docs/reference/functions/waitUntil.md +0 -46
- package/docs/reference/functions/within.md +0 -29
- package/docs/reference/index.md +0 -196
- package/docs/reference/interfaces/BaseResult.md +0 -87
- package/docs/reference/interfaces/CallResult.md +0 -160
- package/docs/reference/interfaces/CaptureScope.md +0 -82
- package/docs/reference/interfaces/CliResult.md +0 -253
- package/docs/reference/interfaces/ContainerAccessor.md +0 -166
- package/docs/reference/interfaces/DirectoryAccessor.md +0 -33
- package/docs/reference/interfaces/FetchResult.md +0 -180
- package/docs/reference/interfaces/FilesystemAccessor.md +0 -46
- package/docs/reference/interfaces/HttpResult.md +0 -126
- package/docs/reference/interfaces/JsonAccessor.md +0 -46
- package/docs/reference/interfaces/PageResult.md +0 -356
- package/docs/reference/interfaces/RenderResult.md +0 -72
- package/docs/reference/interfaces/RenderedText.md +0 -110
- package/docs/reference/interfaces/ResponseAccessor.md +0 -47
- package/docs/reference/interfaces/ScreenResult.md +0 -128
- package/docs/reference/interfaces/TableAccessor.md +0 -26
- package/docs/reference/interfaces/TextAccessor.md +0 -96
- package/docs/reference/type-aliases/ApiHandle.md +0 -68
- package/docs/reference/type-aliases/ApiSpecification.md +0 -213
- package/docs/reference/type-aliases/ApiSpecificationOptions.md +0 -68
- package/docs/reference/type-aliases/BrowserConsoleMessage.md +0 -30
- package/docs/reference/type-aliases/BrowserLinkElement.md +0 -50
- package/docs/reference/type-aliases/BrowserMetaElement.md +0 -40
- package/docs/reference/type-aliases/BrowserOpenOptions.md +0 -87
- package/docs/reference/type-aliases/BrowserPage.md +0 -132
- package/docs/reference/type-aliases/BrowserPort.md +0 -51
- package/docs/reference/type-aliases/CliEnv.md +0 -11
- package/docs/reference/type-aliases/CliHandle.md +0 -80
- package/docs/reference/type-aliases/CliInput.md +0 -36
- package/docs/reference/type-aliases/CliOutput.md +0 -46
- package/docs/reference/type-aliases/CliPort.md +0 -58
- package/docs/reference/type-aliases/CliSpecification.md +0 -144
- package/docs/reference/type-aliases/CliSpecificationOptions.md +0 -134
- package/docs/reference/type-aliases/ComponentChain.md +0 -156
- package/docs/reference/type-aliases/ComponentScenario.md +0 -20
- package/docs/reference/type-aliases/ComponentUi.md +0 -47
- package/docs/reference/type-aliases/ComponentVisitor.md +0 -10
- package/docs/reference/type-aliases/ContainerPort.md +0 -113
- package/docs/reference/type-aliases/Contract.md +0 -68
- package/docs/reference/type-aliases/ContractInput.md +0 -13
- package/docs/reference/type-aliases/ContractRequest.md +0 -95
- package/docs/reference/type-aliases/ContractResponder.md +0 -23
- package/docs/reference/type-aliases/ContractResponse.md +0 -78
- package/docs/reference/type-aliases/ContractResponseValue.md +0 -13
- package/docs/reference/type-aliases/Contracts.md +0 -48
- package/docs/reference/type-aliases/DatabaseKeys.md +0 -16
- package/docs/reference/type-aliases/DatabasePort.md +0 -72
- package/docs/reference/type-aliases/DeviceOpenOptions.md +0 -46
- package/docs/reference/type-aliases/DevicePort.md +0 -51
- package/docs/reference/type-aliases/DeviceScreen.md +0 -32
- package/docs/reference/type-aliases/DeviceTimeouts.md +0 -39
- package/docs/reference/type-aliases/DockerSpecConfig.md +0 -43
- package/docs/reference/type-aliases/DomMount.md +0 -21
- package/docs/reference/type-aliases/ElementKind.md +0 -27
- package/docs/reference/type-aliases/ElementMatch.md +0 -74
- package/docs/reference/type-aliases/ElementOptions.md +0 -29
- package/docs/reference/type-aliases/ElementRef.md +0 -128
- package/docs/reference/type-aliases/ExecOptions.md +0 -37
- package/docs/reference/type-aliases/FileAccessor.md +0 -54
- package/docs/reference/type-aliases/HonoApp.md +0 -31
- package/docs/reference/type-aliases/HttpContractFilter.md +0 -49
- package/docs/reference/type-aliases/HttpResponseInit.md +0 -46
- package/docs/reference/type-aliases/HttpStreamInit.md +0 -58
- package/docs/reference/type-aliases/IntegrationHandle.md +0 -46
- package/docs/reference/type-aliases/IntegrationSpecification.md +0 -111
- package/docs/reference/type-aliases/IntegrationSpecificationOptions.md +0 -42
- package/docs/reference/type-aliases/Intercept.md +0 -19
- package/docs/reference/type-aliases/InterceptOptions.md +0 -28
- package/docs/reference/type-aliases/InterceptScope.md +0 -11
- package/docs/reference/type-aliases/IsolationStrategy.md +0 -75
- package/docs/reference/type-aliases/JobHandle.md +0 -34
- package/docs/reference/type-aliases/JobsHandle.md +0 -57
- package/docs/reference/type-aliases/JobsResult.md +0 -16
- package/docs/reference/type-aliases/JobsSpecification.md +0 -94
- package/docs/reference/type-aliases/JobsSpecificationOptions.md +0 -56
- package/docs/reference/type-aliases/LandmarkKind.md +0 -20
- package/docs/reference/type-aliases/LiterateRunFlags.md +0 -27
- package/docs/reference/type-aliases/LiterateServeRegistration.md +0 -70
- package/docs/reference/type-aliases/MatchFixtureOptions.md +0 -27
- package/docs/reference/type-aliases/MatchableRequest.md +0 -61
- package/docs/reference/type-aliases/MatcherKind.md +0 -34
- package/docs/reference/type-aliases/MobileBackendOptions.md +0 -28
- package/docs/reference/type-aliases/MobileElementKind.md +0 -14
- package/docs/reference/type-aliases/MobileElementMatch.md +0 -60
- package/docs/reference/type-aliases/MobileElementRef.md +0 -20
- package/docs/reference/type-aliases/MobileHandle.md +0 -65
- package/docs/reference/type-aliases/MobileScenario.md +0 -20
- package/docs/reference/type-aliases/MobileSpecification.md +0 -51
- package/docs/reference/type-aliases/MobileSpecificationOptions.md +0 -126
- package/docs/reference/type-aliases/MobileVisitor.md +0 -81
- package/docs/reference/type-aliases/MockOfOptions.md +0 -26
- package/docs/reference/type-aliases/MockPort.md +0 -10
- package/docs/reference/type-aliases/PinnedClock.md +0 -10
- package/docs/reference/type-aliases/PostgresOptions.md +0 -32
- package/docs/reference/type-aliases/ProcessOptions.md +0 -112
- package/docs/reference/type-aliases/RedisOptions.md +0 -20
- package/docs/reference/type-aliases/RenderSubject.md +0 -12
- package/docs/reference/type-aliases/ScreenNode.md +0 -67
- package/docs/reference/type-aliases/ServerPort.md +0 -36
- package/docs/reference/type-aliases/ServerResponse.md +0 -46
- package/docs/reference/type-aliases/ServerSpec.md +0 -21
- package/docs/reference/type-aliases/ServiceHandle.md +0 -216
- package/docs/reference/type-aliases/ServiceRecord.md +0 -12
- package/docs/reference/type-aliases/SpecDocument.md +0 -84
- package/docs/reference/type-aliases/SpecEnvToken.md +0 -21
- package/docs/reference/type-aliases/SpecFileAssertion.md +0 -27
- package/docs/reference/type-aliases/SpecFixture.md +0 -30
- package/docs/reference/type-aliases/SpecKind.md +0 -8
- package/docs/reference/type-aliases/SpecRun.md +0 -108
- package/docs/reference/type-aliases/SpecServeEntry.md +0 -40
- package/docs/reference/type-aliases/SpecStream.md +0 -32
- package/docs/reference/type-aliases/SpecificationConfig.md +0 -290
- package/docs/reference/type-aliases/SqliteOptions.md +0 -36
- package/docs/reference/type-aliases/SseEvent.md +0 -58
- package/docs/reference/type-aliases/StreamBody.md +0 -61
- package/docs/reference/type-aliases/TextFilter.md +0 -22
- package/docs/reference/type-aliases/VisitScenario.md +0 -20
- package/docs/reference/type-aliases/Visitor.md +0 -215
- package/docs/reference/type-aliases/WaitUntilOptions.md +0 -46
- package/docs/reference/type-aliases/WebsiteBackendOptions.md +0 -37
- package/docs/reference/type-aliases/WebsiteHandle.md +0 -51
- package/docs/reference/type-aliases/WebsiteSpecification.md +0 -118
- package/docs/reference/type-aliases/WebsiteSpecificationOptions.md +0 -40
- package/docs/reference/variables/anthropic.md +0 -19
- package/docs/reference/variables/banner.md +0 -10
- package/docs/reference/variables/button.md +0 -10
- package/docs/reference/variables/clock.md +0 -16
- package/docs/reference/variables/complementary.md +0 -10
- package/docs/reference/variables/component.md +0 -10
- package/docs/reference/variables/content.md +0 -10
- package/docs/reference/variables/contentinfo.md +0 -10
- package/docs/reference/variables/dialog.md +0 -10
- package/docs/reference/variables/field.md +0 -10
- package/docs/reference/variables/form.md +0 -10
- package/docs/reference/variables/heading.md +0 -10
- package/docs/reference/variables/http.md +0 -40
- package/docs/reference/variables/intercept.md +0 -11
- package/docs/reference/variables/link.md +0 -10
- package/docs/reference/variables/listitem.md +0 -10
- package/docs/reference/variables/main.md +0 -10
- package/docs/reference/variables/match.md +0 -8
- package/docs/reference/variables/navigation.md +0 -10
- package/docs/reference/variables/openai.md +0 -21
- package/docs/reference/variables/option.md +0 -17
- package/docs/reference/variables/region.md +0 -10
- package/docs/reference/variables/row.md +0 -10
- package/docs/reference/variables/search.md +0 -10
- package/docs/reference/variables/specification.md +0 -8
- package/docs/reference/variables/status.md +0 -10
- package/docs/reference/variables/table.md +0 -10
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: defineContracts()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function defineContracts(...items): Contracts;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/contracts/contract.ts:137](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/contract.ts#L137)
|
|
9
|
-
|
|
10
|
-
Compose contracts into the artifact a test imports — it's contracts all the
|
|
11
|
-
way down: a composite may extend contracts, lists, and other composites,
|
|
12
|
-
recursively, order preserved.
|
|
13
|
-
|
|
14
|
-
`.with(...)` derives a scenario: contracts whose route the overrides claim
|
|
15
|
-
are removed from the base, and the overrides are prepended. Under
|
|
16
|
-
first-match selection a more specific override (`/articles/gone-1`) also
|
|
17
|
-
wins over a generic base route (`/articles/{{uuid}}`) it does not replace.
|
|
18
|
-
|
|
19
|
-
## Parameters
|
|
20
|
-
|
|
21
|
-
| Parameter | Type |
|
|
22
|
-
| ------ | ------ |
|
|
23
|
-
| ...`items` | [`ContractInput`](../type-aliases/ContractInput.md)[] |
|
|
24
|
-
|
|
25
|
-
## Returns
|
|
26
|
-
|
|
27
|
-
[`Contracts`](../type-aliases/Contracts.md)
|
|
28
|
-
|
|
29
|
-
## Example
|
|
30
|
-
|
|
31
|
-
```ts
|
|
32
|
-
// contracts/newsroom.contracts.ts
|
|
33
|
-
export default defineContracts(events, articleById);
|
|
34
|
-
export const withArticleGone = (id: string) =>
|
|
35
|
-
newsroom.with(articleGone(id));
|
|
36
|
-
```
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: disabled()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function disabled(element): ElementRef;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/elements/elements.ts:175](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L175)
|
|
9
|
-
|
|
10
|
-
Whether the element accepts input: `see(disabled(button('Delete')))` asserts
|
|
11
|
-
it refuses, `see(enabled(button('Delete')))` that it takes it.
|
|
12
|
-
|
|
13
|
-
Modifiers rather than descriptors, for the same reason as `focused`: being
|
|
14
|
-
disabled is a state of an element the vocabulary already names. Unlike focus,
|
|
15
|
-
the ARIA tree carries it, so a golden pins a whole outline's enablement and
|
|
16
|
-
these name the ONE control a test is about. They also buy the direction a
|
|
17
|
-
behavioural substitute cannot reach — clicking a disabled control is a
|
|
18
|
-
timeout, never an assertion.
|
|
19
|
-
|
|
20
|
-
## Parameters
|
|
21
|
-
|
|
22
|
-
| Parameter | Type |
|
|
23
|
-
| ------ | ------ |
|
|
24
|
-
| `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
|
|
25
|
-
|
|
26
|
-
## Returns
|
|
27
|
-
|
|
28
|
-
[`ElementRef`](../type-aliases/ElementRef.md)
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: enabled()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function enabled(element): ElementRef;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/elements/elements.ts:178](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L178)
|
|
9
|
-
|
|
10
|
-
The other direction of [disabled](disabled.md) — the element takes input.
|
|
11
|
-
|
|
12
|
-
## Parameters
|
|
13
|
-
|
|
14
|
-
| Parameter | Type |
|
|
15
|
-
| ------ | ------ |
|
|
16
|
-
| `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
|
|
17
|
-
|
|
18
|
-
## Returns
|
|
19
|
-
|
|
20
|
-
[`ElementRef`](../type-aliases/ElementRef.md)
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: focused()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function focused(element): ElementRef;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/elements/elements.ts:162](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L162)
|
|
9
|
-
|
|
10
|
-
Where the keyboard is: `see(focused(button('Open')))` asserts the element has
|
|
11
|
-
focus, `gone(focused(x))` that it does not.
|
|
12
|
-
|
|
13
|
-
A modifier rather than a descriptor of its own, because focus is a STATE of
|
|
14
|
-
an element the vocabulary can already name. It is a verb's business and never
|
|
15
|
-
a golden's: the accessibility tree carries no focus, so a tree snapshot of a
|
|
16
|
-
dialog that took the keyboard and one that did not are byte-identical.
|
|
17
|
-
|
|
18
|
-
## Parameters
|
|
19
|
-
|
|
20
|
-
| Parameter | Type |
|
|
21
|
-
| ------ | ------ |
|
|
22
|
-
| `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
|
|
23
|
-
|
|
24
|
-
## Returns
|
|
25
|
-
|
|
26
|
-
[`ElementRef`](../type-aliases/ElementRef.md)
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: mockOf()
|
|
3
|
-
|
|
4
|
-
## Call Signature
|
|
5
|
-
|
|
6
|
-
```ts
|
|
7
|
-
function mockOf<T>(options): MockProxy<T>;
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
Defined in: [src/model/doubles/mock-of.ts:28](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L28)
|
|
11
|
-
|
|
12
|
-
A typed double for an injected port — the fourth rung of the doubles ladder
|
|
13
|
-
(docs/18-conventions.md), and the only one a module test may build itself.
|
|
14
|
-
|
|
15
|
-
The type argument is the port: `T` is constrained to `object` and has no
|
|
16
|
-
default, so a double is always asked for something. A call with no argument
|
|
17
|
-
answers for `object`, which satisfies no port and fails where it is used.
|
|
18
|
-
|
|
19
|
-
### Type Parameters
|
|
20
|
-
|
|
21
|
-
| Type Parameter |
|
|
22
|
-
| ------ |
|
|
23
|
-
| `T` *extends* `object` |
|
|
24
|
-
|
|
25
|
-
### Parameters
|
|
26
|
-
|
|
27
|
-
| Parameter | Type |
|
|
28
|
-
| ------ | ------ |
|
|
29
|
-
| `options` | \{ `deep`: `false`; \} |
|
|
30
|
-
| `options.deep` | `false` |
|
|
31
|
-
|
|
32
|
-
### Returns
|
|
33
|
-
|
|
34
|
-
`MockProxy`\<`T`\>
|
|
35
|
-
|
|
36
|
-
### Example
|
|
37
|
-
|
|
38
|
-
```ts
|
|
39
|
-
const gateway = mockOf<PaymentGateway>(); // deep
|
|
40
|
-
const clock = mockOf<ClockPort>({ deep: false }); // flat
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Call Signature
|
|
44
|
-
|
|
45
|
-
```ts
|
|
46
|
-
function mockOf<T>(options?): DeepMockProxy<T>;
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Defined in: [src/model/doubles/mock-of.ts:29](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L29)
|
|
50
|
-
|
|
51
|
-
A typed double for an injected port — the fourth rung of the doubles ladder
|
|
52
|
-
(docs/18-conventions.md), and the only one a module test may build itself.
|
|
53
|
-
|
|
54
|
-
The type argument is the port: `T` is constrained to `object` and has no
|
|
55
|
-
default, so a double is always asked for something. A call with no argument
|
|
56
|
-
answers for `object`, which satisfies no port and fails where it is used.
|
|
57
|
-
|
|
58
|
-
### Type Parameters
|
|
59
|
-
|
|
60
|
-
| Type Parameter |
|
|
61
|
-
| ------ |
|
|
62
|
-
| `T` *extends* `object` |
|
|
63
|
-
|
|
64
|
-
### Parameters
|
|
65
|
-
|
|
66
|
-
| Parameter | Type |
|
|
67
|
-
| ------ | ------ |
|
|
68
|
-
| `options?` | [`MockOfOptions`](../type-aliases/MockOfOptions.md) |
|
|
69
|
-
|
|
70
|
-
### Returns
|
|
71
|
-
|
|
72
|
-
`DeepMockProxy`\<`T`\>
|
|
73
|
-
|
|
74
|
-
### Example
|
|
75
|
-
|
|
76
|
-
```ts
|
|
77
|
-
const gateway = mockOf<PaymentGateway>(); // deep
|
|
78
|
-
const clock = mockOf<ClockPort>({ deep: false }); // flat
|
|
79
|
-
```
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: postgres()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function postgres(options?): PostgresHandle;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/seams/postgres/postgres.ts:216](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L216)
|
|
9
|
-
|
|
10
|
-
Create a PostgreSQL service handle.
|
|
11
|
-
|
|
12
|
-
## Parameters
|
|
13
|
-
|
|
14
|
-
| Parameter | Type |
|
|
15
|
-
| ------ | ------ |
|
|
16
|
-
| `options` | [`PostgresOptions`](../type-aliases/PostgresOptions.md) |
|
|
17
|
-
|
|
18
|
-
## Returns
|
|
19
|
-
|
|
20
|
-
`PostgresHandle`
|
|
21
|
-
|
|
22
|
-
## Example
|
|
23
|
-
|
|
24
|
-
```ts
|
|
25
|
-
// The record key is the name: it is the spec's `database` vocabulary, and
|
|
26
|
-
// Kebab-cased it is the folder the init script is read from.
|
|
27
|
-
// { db: postgres() } → docker/db/init.sql, then docker/postgres/init.sql
|
|
28
|
-
// { analyticsDb: postgres() } → docker/analytics-db/init.sql
|
|
29
|
-
const events = postgres();
|
|
30
|
-
// After start: events.connectionString is populated
|
|
31
|
-
```
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: process()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function process(options): ProcessHandle;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/chain/process.ts:151](https://github.com/jterrazz/package-test/blob/main/src/model/chain/process.ts#L151)
|
|
9
|
-
|
|
10
|
-
Declare an external process the framework owns for the life of the
|
|
11
|
-
specification.
|
|
12
|
-
|
|
13
|
-
## Parameters
|
|
14
|
-
|
|
15
|
-
| Parameter | Type |
|
|
16
|
-
| ------ | ------ |
|
|
17
|
-
| `options` | [`ProcessOptions`](../type-aliases/ProcessOptions.md) |
|
|
18
|
-
|
|
19
|
-
## Returns
|
|
20
|
-
|
|
21
|
-
[`ProcessHandle`](../classes/ProcessHandle.md)
|
|
22
|
-
|
|
23
|
-
## Example
|
|
24
|
-
|
|
25
|
-
```ts
|
|
26
|
-
const { website, cleanup } = await specification.website({
|
|
27
|
-
services: { api: process({ command: 'bin/server web', ready: '/health' }) },
|
|
28
|
-
server: ({ api }) => process({
|
|
29
|
-
command: 'next dev',
|
|
30
|
-
env: { NEXT_PUBLIC_API_URL: api.connectionString },
|
|
31
|
-
}),
|
|
32
|
-
});
|
|
33
|
-
```
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: redis()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function redis(options?): RedisHandle;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/seams/redis/redis.ts:107](https://github.com/jterrazz/package-test/blob/main/src/seams/redis/redis.ts#L107)
|
|
9
|
-
|
|
10
|
-
Create a Redis service handle.
|
|
11
|
-
|
|
12
|
-
## Parameters
|
|
13
|
-
|
|
14
|
-
| Parameter | Type |
|
|
15
|
-
| ------ | ------ |
|
|
16
|
-
| `options` | [`RedisOptions`](../type-aliases/RedisOptions.md) |
|
|
17
|
-
|
|
18
|
-
## Returns
|
|
19
|
-
|
|
20
|
-
`RedisHandle`
|
|
21
|
-
|
|
22
|
-
## Example
|
|
23
|
-
|
|
24
|
-
```ts
|
|
25
|
-
// The record key is the name it reports under: { cache: redis() } → "cache".
|
|
26
|
-
const cache = redis();
|
|
27
|
-
// After start: cache.connectionString is populated
|
|
28
|
-
```
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: required()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function required<T>(value, why): T;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/assertions/required.ts:15](https://github.com/jterrazz/package-test/blob/main/src/model/assertions/required.ts#L15)
|
|
9
|
-
|
|
10
|
-
The value, or a failure that says what was missing and why it mattered.
|
|
11
|
-
|
|
12
|
-
A test reaching into a captured structure — a row, a header, the third
|
|
13
|
-
element of a list — meets `T | undefined` and has to do something about it.
|
|
14
|
-
The two things it usually does are both wrong: `!` erases the question, and
|
|
15
|
-
an `if (!x) throw new Error('missing')` re-states the same three lines in
|
|
16
|
-
every repository (the estate had two hand-written copies of exactly this).
|
|
17
|
-
`required` is that gesture with the reason attached, so the failure reads as
|
|
18
|
-
a sentence rather than as a `TypeError` two frames further down.
|
|
19
|
-
|
|
20
|
-
## Type Parameters
|
|
21
|
-
|
|
22
|
-
| Type Parameter |
|
|
23
|
-
| ------ |
|
|
24
|
-
| `T` |
|
|
25
|
-
|
|
26
|
-
## Parameters
|
|
27
|
-
|
|
28
|
-
| Parameter | Type |
|
|
29
|
-
| ------ | ------ |
|
|
30
|
-
| `value` | `T` \| `null` \| `undefined` |
|
|
31
|
-
| `why` | `string` |
|
|
32
|
-
|
|
33
|
-
## Returns
|
|
34
|
-
|
|
35
|
-
`T`
|
|
36
|
-
|
|
37
|
-
## Example
|
|
38
|
-
|
|
39
|
-
```ts
|
|
40
|
-
const id = required(result.response.body.id, 'the creation reply carries the new id');
|
|
41
|
-
```
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: selected()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function selected(element): ElementRef;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/elements/elements.ts:189](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L189)
|
|
9
|
-
|
|
10
|
-
Which option the field is on: `see(selected(option('LinkedIn')))`, and
|
|
11
|
-
`gone(selected(option('X')))` for the one it left.
|
|
12
|
-
|
|
13
|
-
A modifier for the same reason as [disabled](disabled.md): being chosen is a state
|
|
14
|
-
of an element the vocabulary already names. No matcher answers for it — a
|
|
15
|
-
`<option>` is not a checkbox — so both adapters read the `:checked` the CSS
|
|
16
|
-
spec gives a selected option.
|
|
17
|
-
|
|
18
|
-
## Parameters
|
|
19
|
-
|
|
20
|
-
| Parameter | Type |
|
|
21
|
-
| ------ | ------ |
|
|
22
|
-
| `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
|
|
23
|
-
|
|
24
|
-
## Returns
|
|
25
|
-
|
|
26
|
-
[`ElementRef`](../type-aliases/ElementRef.md)
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: sqlite()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function sqlite(options?): SqliteHandle;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/seams/sqlite/sqlite.ts:502](https://github.com/jterrazz/package-test/blob/main/src/seams/sqlite/sqlite.ts#L502)
|
|
9
|
-
|
|
10
|
-
Create a SQLite service handle. Uses file-copy isolation for parallel tests.
|
|
11
|
-
|
|
12
|
-
## Parameters
|
|
13
|
-
|
|
14
|
-
| Parameter | Type |
|
|
15
|
-
| ------ | ------ |
|
|
16
|
-
| `options` | [`SqliteOptions`](../type-aliases/SqliteOptions.md) |
|
|
17
|
-
|
|
18
|
-
## Returns
|
|
19
|
-
|
|
20
|
-
`SqliteHandle`
|
|
21
|
-
|
|
22
|
-
## Example
|
|
23
|
-
|
|
24
|
-
```ts
|
|
25
|
-
// With Prisma schema
|
|
26
|
-
const db = sqlite({ prismaSchema: './prisma/schema' });
|
|
27
|
-
|
|
28
|
-
// With raw SQL init
|
|
29
|
-
const db = sqlite({ init: './schema.sql' });
|
|
30
|
-
|
|
31
|
-
// Empty database
|
|
32
|
-
const db = sqlite();
|
|
33
|
-
```
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: testId()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function testId(id): ElementRef;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/elements/elements.ts:60](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L60)
|
|
9
|
-
|
|
10
|
-
The escape hatch: an element by `data-testid`. Prefer user-facing elements.
|
|
11
|
-
|
|
12
|
-
## Parameters
|
|
13
|
-
|
|
14
|
-
| Parameter | Type |
|
|
15
|
-
| ------ | ------ |
|
|
16
|
-
| `id` | `string` |
|
|
17
|
-
|
|
18
|
-
## Returns
|
|
19
|
-
|
|
20
|
-
[`ElementRef`](../type-aliases/ElementRef.md)
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: text()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function text(value): TextAccessor;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/result/text-subject.ts:27](https://github.com/jterrazz/package-test/blob/main/src/model/result/text-subject.ts#L27)
|
|
9
|
-
|
|
10
|
-
Wrap an arbitrary string into a [TextAccessor](../interfaces/TextAccessor.md) anchored on the calling
|
|
11
|
-
test's directory — the same caller-detection the builders use.
|
|
12
|
-
|
|
13
|
-
The product surface of a test framework is its own error messages, checker
|
|
14
|
-
output, and reports; those deserve the same goldening as any other output.
|
|
15
|
-
`text()` makes an ad-hoc string a first-class snapshot subject:
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
const message = await catchMessage(() => expect(result.response).toMatch('wrong-body.http'));
|
|
19
|
-
expect(text(message)).toMatch('wrong-body-error.txt'); // resolves to _expected/
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
ANSI is stripped before every comparison (the raw form stays on `.text`),
|
|
23
|
-
the `{{token}}` grammar applies to the fixture, and `.grep()` composition
|
|
24
|
-
works exactly as on any stream accessor.
|
|
25
|
-
|
|
26
|
-
The ANCHOR is why this sits apart from the accessor it builds: reading the
|
|
27
|
-
caller's frame means reading a stack and a real path, which is node's alone.
|
|
28
|
-
[TextAccessor](../interfaces/TextAccessor.md) itself is a pure projection over a captured string, so
|
|
29
|
-
it loads in a page — and the browser entry builds its own `text()`, where
|
|
30
|
-
the golden commands resolve `_expected/` from the test's path server-side.
|
|
31
|
-
|
|
32
|
-
## Parameters
|
|
33
|
-
|
|
34
|
-
| Parameter | Type |
|
|
35
|
-
| ------ | ------ |
|
|
36
|
-
| `value` | `string` |
|
|
37
|
-
|
|
38
|
-
## Returns
|
|
39
|
-
|
|
40
|
-
[`TextAccessor`](../interfaces/TextAccessor.md)
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: valued()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function valued(element, value): ElementRef;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/elements/elements.ts:201](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L201)
|
|
9
|
-
|
|
10
|
-
What the field holds: `see(valued(field('Title'), 'Launch teaser'))`, and
|
|
11
|
-
`gone(valued(field('Title'), '…'))` for a value it no longer holds.
|
|
12
|
-
|
|
13
|
-
A modifier for the same reason as [disabled](disabled.md): what a field holds is a
|
|
14
|
-
state of an element the vocabulary already names, and this is how the ONE
|
|
15
|
-
field a test is about is waited for — a golden pins a whole outline instead.
|
|
16
|
-
Read from the node's live value, never from the `value` ATTRIBUTE, which a
|
|
17
|
-
controlled input never moves.
|
|
18
|
-
|
|
19
|
-
## Parameters
|
|
20
|
-
|
|
21
|
-
| Parameter | Type |
|
|
22
|
-
| ------ | ------ |
|
|
23
|
-
| `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
|
|
24
|
-
| `value` | `string` |
|
|
25
|
-
|
|
26
|
-
## Returns
|
|
27
|
-
|
|
28
|
-
[`ElementRef`](../type-aliases/ElementRef.md)
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: waitUntil()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function waitUntil(predicate, options?): Promise<void>;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/assertions/wait-until.ts:41](https://github.com/jterrazz/package-test/blob/main/src/model/assertions/wait-until.ts#L41)
|
|
9
|
-
|
|
10
|
-
Wait until a condition holds — the sanctioned answer to "the thing I am
|
|
11
|
-
specifying is not ready yet".
|
|
12
|
-
|
|
13
|
-
A spec that sleeps for a guessed duration is a spec that is slow on a fast
|
|
14
|
-
machine and flaky on a slow one, which is why J2 refuses `setTimeout` under
|
|
15
|
-
`specs/`. Every facet that drives something already waits on a CONDITION —
|
|
16
|
-
a served page, a banner on stdout, an element the visitor can see — and this
|
|
17
|
-
is that primitive where no facet owns the waiting: a background write to
|
|
18
|
-
land, a queue to drain, a file to appear.
|
|
19
|
-
|
|
20
|
-
The failure names the condition and how long it was given, so a timeout is a
|
|
21
|
-
sentence rather than "expected true, got false".
|
|
22
|
-
|
|
23
|
-
The budget is measured on `performance.now()`, not on `Date` — `clock.at()`
|
|
24
|
-
freezes the calendar, and a deadline read off a frozen calendar never
|
|
25
|
-
arrives: the poll would run until vitest killed the test with a sentence
|
|
26
|
-
about the file rather than about the condition.
|
|
27
|
-
|
|
28
|
-
Not for a subject under `clock.run()`: there the scheduler is the test's, and
|
|
29
|
-
`clock.advance(ms)` is what makes time pass.
|
|
30
|
-
|
|
31
|
-
## Parameters
|
|
32
|
-
|
|
33
|
-
| Parameter | Type |
|
|
34
|
-
| ------ | ------ |
|
|
35
|
-
| `predicate` | () => `boolean` \| `Promise`\<`boolean`\> |
|
|
36
|
-
| `options` | [`WaitUntilOptions`](../type-aliases/WaitUntilOptions.md) |
|
|
37
|
-
|
|
38
|
-
## Returns
|
|
39
|
-
|
|
40
|
-
`Promise`\<`void`\>
|
|
41
|
-
|
|
42
|
-
## Example
|
|
43
|
-
|
|
44
|
-
```ts
|
|
45
|
-
await waitUntil(() => outbox.length === 1, { why: 'the job wrote its one message' });
|
|
46
|
-
```
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
-
# Function: within()
|
|
3
|
-
|
|
4
|
-
```ts
|
|
5
|
-
function within(scope, target): ElementRef;
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
Defined in: [src/model/elements/elements.ts:114](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L114)
|
|
9
|
-
|
|
10
|
-
Restrict a descriptor to the inside of another — the answer to ambiguity,
|
|
11
|
-
and the one the framework prefers over a test id.
|
|
12
|
-
|
|
13
|
-
click(within(navigation(), link('Articles')))
|
|
14
|
-
|
|
15
|
-
Composes outside-in: the scope may itself be scoped, so a deeply nested
|
|
16
|
-
target reads `within(main(), within(region('Series'), link('Part 2')))`.
|
|
17
|
-
Any descriptor works as a scope, including `testId()` when a container has
|
|
18
|
-
no landmark role to stand on.
|
|
19
|
-
|
|
20
|
-
## Parameters
|
|
21
|
-
|
|
22
|
-
| Parameter | Type |
|
|
23
|
-
| ------ | ------ |
|
|
24
|
-
| `scope` | [`ElementRef`](../type-aliases/ElementRef.md) |
|
|
25
|
-
| `target` | [`ElementRef`](../type-aliases/ElementRef.md) |
|
|
26
|
-
|
|
27
|
-
## Returns
|
|
28
|
-
|
|
29
|
-
[`ElementRef`](../type-aliases/ElementRef.md)
|