@jterrazz/test 15.3.0 → 16.1.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 +120 -427
- package/dist/appium.adapter.js +71 -15
- package/dist/artifacts.js +25 -1735
- package/dist/browser/index.js +304 -233
- package/dist/checker.d.ts +1 -1
- package/dist/checker.js +1103 -97
- package/dist/fixtures.js +110 -0
- package/dist/index.d.ts +956 -971
- package/dist/index.js +2159 -2281
- package/dist/literate.js +1747 -0
- package/dist/match.js +625 -84
- package/dist/oxlint.cjs +3585 -1480
- package/dist/oxlint.d.cts +60 -48
- package/dist/oxlint.d.ts +60 -48
- package/dist/oxlint.js +3585 -1480
- package/dist/playwright.adapter.js +51 -8
- package/dist/{intercept.js → server.js} +2 -2
- package/dist/stream.js +6 -6
- package/dist/{ambiguity.js → substring-warning.js} +106 -7
- package/dist/vitest.d.ts +67 -48
- package/dist/vitest.js +229 -93
- package/docs/01-architecture.md +95 -0
- package/docs/02-developing.md +351 -0
- package/docs/03-testing.md +495 -0
- package/docs/04-operating.md +101 -0
- package/docs/05-module-tests.md +152 -0
- package/docs/06-integration.md +180 -0
- package/docs/07-component.md +246 -0
- package/docs/08-website.md +404 -0
- package/docs/09-mobile.md +270 -0
- package/docs/10-api.md +264 -0
- package/docs/11-jobs.md +157 -0
- package/docs/12-cli.md +677 -0
- package/docs/13-elements.md +242 -0
- package/docs/14-assertions.md +314 -0
- package/docs/15-tokens.md +253 -0
- package/docs/16-contracts.md +438 -0
- package/docs/17-services.md +188 -0
- package/docs/18-conventions.md +305 -0
- package/docs/19-linting.md +510 -0
- package/docs/README.md +36 -0
- package/docs/decisions/001-v9-conventions-on-three-channels.md +50 -0
- package/docs/decisions/002-the-statique-channel-holds-only-what-upstream-does-not.md +49 -0
- package/docs/decisions/003-a-rendered-component-is-a-facet-on-vitest-browser-mode.md +84 -0
- package/docs/decisions/004-a-module-against-real-services-or-a-golden-is-the-integration-facet.md +81 -0
- package/docs/decisions/005-the-doubles-ladder-is-closed.md +86 -0
- package/docs/decisions/006-the-catalogue-reaches-a-file-by-its-role.md +245 -0
- package/docs/decisions/007-compose-mode-leaves-the-package.md +53 -0
- package/docs/decisions/008-vitest-5-node-24-and-the-native-seams-as-optional-peers.md +75 -0
- package/docs/decisions/_template.md +22 -0
- package/docs/reference/classes/Matcher.md +120 -0
- package/docs/reference/classes/ProcessHandle.md +368 -0
- package/docs/reference/functions/defineContract.md +39 -0
- package/docs/reference/functions/defineContracts.md +36 -0
- package/docs/reference/functions/disabled.md +28 -0
- package/docs/reference/functions/enabled.md +20 -0
- package/docs/reference/functions/focused.md +26 -0
- package/docs/reference/functions/mockOf.md +79 -0
- package/docs/reference/functions/postgres.md +31 -0
- package/docs/reference/functions/process.md +33 -0
- package/docs/reference/functions/redis.md +28 -0
- package/docs/reference/functions/required.md +41 -0
- package/docs/reference/functions/selected.md +26 -0
- package/docs/reference/functions/sqlite.md +33 -0
- package/docs/reference/functions/testId.md +20 -0
- package/docs/reference/functions/text.md +40 -0
- package/docs/reference/functions/valued.md +28 -0
- package/docs/reference/functions/waitUntil.md +46 -0
- package/docs/reference/functions/within.md +29 -0
- package/docs/reference/index.md +196 -0
- package/docs/reference/interfaces/BaseResult.md +87 -0
- package/docs/reference/interfaces/CallResult.md +160 -0
- package/docs/reference/interfaces/CaptureScope.md +82 -0
- package/docs/reference/interfaces/CliResult.md +253 -0
- package/docs/reference/interfaces/ContainerAccessor.md +166 -0
- package/docs/reference/interfaces/DirectoryAccessor.md +33 -0
- package/docs/reference/interfaces/FetchResult.md +180 -0
- package/docs/reference/interfaces/FilesystemAccessor.md +46 -0
- package/docs/reference/interfaces/HttpResult.md +126 -0
- package/docs/reference/interfaces/JsonAccessor.md +46 -0
- package/docs/reference/interfaces/PageResult.md +356 -0
- package/docs/reference/interfaces/RenderResult.md +72 -0
- package/docs/reference/interfaces/RenderedText.md +110 -0
- package/docs/reference/interfaces/ResponseAccessor.md +47 -0
- package/docs/reference/interfaces/ScreenResult.md +128 -0
- package/docs/reference/interfaces/TableAccessor.md +26 -0
- package/docs/reference/interfaces/TextAccessor.md +96 -0
- package/docs/reference/type-aliases/ApiHandle.md +68 -0
- package/docs/reference/type-aliases/ApiSpecification.md +213 -0
- package/docs/reference/type-aliases/ApiSpecificationOptions.md +68 -0
- package/docs/reference/type-aliases/BrowserConsoleMessage.md +30 -0
- package/docs/reference/type-aliases/BrowserLinkElement.md +50 -0
- package/docs/reference/type-aliases/BrowserMetaElement.md +40 -0
- package/docs/reference/type-aliases/BrowserOpenOptions.md +87 -0
- package/docs/reference/type-aliases/BrowserPage.md +132 -0
- package/docs/reference/type-aliases/BrowserPort.md +51 -0
- package/docs/reference/type-aliases/CliEnv.md +11 -0
- package/docs/reference/type-aliases/CliHandle.md +80 -0
- package/docs/reference/type-aliases/CliInput.md +36 -0
- package/docs/reference/type-aliases/CliOutput.md +46 -0
- package/docs/reference/type-aliases/CliPort.md +58 -0
- package/docs/reference/type-aliases/CliSpecification.md +144 -0
- package/docs/reference/type-aliases/CliSpecificationOptions.md +134 -0
- package/docs/reference/type-aliases/ComponentChain.md +156 -0
- package/docs/reference/type-aliases/ComponentScenario.md +20 -0
- package/docs/reference/type-aliases/ComponentUi.md +47 -0
- package/docs/reference/type-aliases/ComponentVisitor.md +10 -0
- package/docs/reference/type-aliases/ContainerPort.md +113 -0
- package/docs/reference/type-aliases/Contract.md +68 -0
- package/docs/reference/type-aliases/ContractInput.md +13 -0
- package/docs/reference/type-aliases/ContractRequest.md +95 -0
- package/docs/reference/type-aliases/ContractResponder.md +23 -0
- package/docs/reference/type-aliases/ContractResponse.md +78 -0
- package/docs/reference/type-aliases/ContractResponseValue.md +13 -0
- package/docs/reference/type-aliases/Contracts.md +48 -0
- package/docs/reference/type-aliases/DatabaseKeys.md +16 -0
- package/docs/reference/type-aliases/DatabasePort.md +72 -0
- package/docs/reference/type-aliases/DeviceOpenOptions.md +46 -0
- package/docs/reference/type-aliases/DevicePort.md +51 -0
- package/docs/reference/type-aliases/DeviceScreen.md +32 -0
- package/docs/reference/type-aliases/DeviceTimeouts.md +39 -0
- package/docs/reference/type-aliases/DockerSpecConfig.md +43 -0
- package/docs/reference/type-aliases/DomMount.md +21 -0
- package/docs/reference/type-aliases/ElementKind.md +27 -0
- package/docs/reference/type-aliases/ElementMatch.md +74 -0
- package/docs/reference/type-aliases/ElementOptions.md +29 -0
- package/docs/reference/type-aliases/ElementRef.md +128 -0
- package/docs/reference/type-aliases/ExecOptions.md +37 -0
- package/docs/reference/type-aliases/FileAccessor.md +54 -0
- package/docs/reference/type-aliases/HonoApp.md +31 -0
- package/docs/reference/type-aliases/HttpContractFilter.md +49 -0
- package/docs/reference/type-aliases/HttpResponseInit.md +46 -0
- package/docs/reference/type-aliases/HttpStreamInit.md +58 -0
- package/docs/reference/type-aliases/IntegrationHandle.md +46 -0
- package/docs/reference/type-aliases/IntegrationSpecification.md +111 -0
- package/docs/reference/type-aliases/IntegrationSpecificationOptions.md +42 -0
- package/docs/reference/type-aliases/Intercept.md +19 -0
- package/docs/reference/type-aliases/InterceptOptions.md +28 -0
- package/docs/reference/type-aliases/InterceptScope.md +11 -0
- package/docs/reference/type-aliases/IsolationStrategy.md +75 -0
- package/docs/reference/type-aliases/JobHandle.md +34 -0
- package/docs/reference/type-aliases/JobsHandle.md +57 -0
- package/docs/reference/type-aliases/JobsResult.md +16 -0
- package/docs/reference/type-aliases/JobsSpecification.md +94 -0
- package/docs/reference/type-aliases/JobsSpecificationOptions.md +56 -0
- package/docs/reference/type-aliases/LandmarkKind.md +20 -0
- package/docs/reference/type-aliases/LiterateRunFlags.md +27 -0
- package/docs/reference/type-aliases/LiterateServeRegistration.md +70 -0
- package/docs/reference/type-aliases/MatchFixtureOptions.md +27 -0
- package/docs/reference/type-aliases/MatchableRequest.md +61 -0
- package/docs/reference/type-aliases/MatcherKind.md +34 -0
- package/docs/reference/type-aliases/MobileBackendOptions.md +28 -0
- package/docs/reference/type-aliases/MobileElementKind.md +14 -0
- package/docs/reference/type-aliases/MobileElementMatch.md +60 -0
- package/docs/reference/type-aliases/MobileElementRef.md +20 -0
- package/docs/reference/type-aliases/MobileHandle.md +65 -0
- package/docs/reference/type-aliases/MobileScenario.md +20 -0
- package/docs/reference/type-aliases/MobileSpecification.md +51 -0
- package/docs/reference/type-aliases/MobileSpecificationOptions.md +126 -0
- package/docs/reference/type-aliases/MobileVisitor.md +81 -0
- package/docs/reference/type-aliases/MockOfOptions.md +26 -0
- package/docs/reference/type-aliases/MockPort.md +10 -0
- package/docs/reference/type-aliases/PinnedClock.md +10 -0
- package/docs/reference/type-aliases/PostgresOptions.md +32 -0
- package/docs/reference/type-aliases/ProcessOptions.md +112 -0
- package/docs/reference/type-aliases/RedisOptions.md +20 -0
- package/docs/reference/type-aliases/RenderSubject.md +12 -0
- package/docs/reference/type-aliases/ScreenNode.md +67 -0
- package/docs/reference/type-aliases/ServerPort.md +36 -0
- package/docs/reference/type-aliases/ServerResponse.md +46 -0
- package/docs/reference/type-aliases/ServerSpec.md +21 -0
- package/docs/reference/type-aliases/ServiceHandle.md +216 -0
- package/docs/reference/type-aliases/ServiceRecord.md +12 -0
- package/docs/reference/type-aliases/SpecDocument.md +84 -0
- package/docs/reference/type-aliases/SpecEnvToken.md +21 -0
- package/docs/reference/type-aliases/SpecFileAssertion.md +27 -0
- package/docs/reference/type-aliases/SpecFixture.md +30 -0
- package/docs/reference/type-aliases/SpecKind.md +8 -0
- package/docs/reference/type-aliases/SpecRun.md +108 -0
- package/docs/reference/type-aliases/SpecServeEntry.md +40 -0
- package/docs/reference/type-aliases/SpecStream.md +32 -0
- package/docs/reference/type-aliases/SpecificationConfig.md +290 -0
- package/docs/reference/type-aliases/SqliteOptions.md +36 -0
- package/docs/reference/type-aliases/SseEvent.md +58 -0
- package/docs/reference/type-aliases/StreamBody.md +61 -0
- package/docs/reference/type-aliases/TextFilter.md +22 -0
- package/docs/reference/type-aliases/VisitScenario.md +20 -0
- package/docs/reference/type-aliases/Visitor.md +215 -0
- package/docs/reference/type-aliases/WaitUntilOptions.md +46 -0
- package/docs/reference/type-aliases/WebsiteBackendOptions.md +37 -0
- package/docs/reference/type-aliases/WebsiteHandle.md +51 -0
- package/docs/reference/type-aliases/WebsiteSpecification.md +118 -0
- package/docs/reference/type-aliases/WebsiteSpecificationOptions.md +40 -0
- package/docs/reference/variables/anthropic.md +19 -0
- package/docs/reference/variables/banner.md +10 -0
- package/docs/reference/variables/button.md +10 -0
- package/docs/reference/variables/clock.md +16 -0
- package/docs/reference/variables/complementary.md +10 -0
- package/docs/reference/variables/component.md +10 -0
- package/docs/reference/variables/content.md +10 -0
- package/docs/reference/variables/contentinfo.md +10 -0
- package/docs/reference/variables/dialog.md +10 -0
- package/docs/reference/variables/field.md +10 -0
- package/docs/reference/variables/form.md +10 -0
- package/docs/reference/variables/heading.md +10 -0
- package/docs/reference/variables/http.md +40 -0
- package/docs/reference/variables/intercept.md +11 -0
- package/docs/reference/variables/link.md +10 -0
- package/docs/reference/variables/listitem.md +10 -0
- package/docs/reference/variables/main.md +10 -0
- package/docs/reference/variables/match.md +8 -0
- package/docs/reference/variables/navigation.md +10 -0
- package/docs/reference/variables/openai.md +21 -0
- package/docs/reference/variables/option.md +17 -0
- package/docs/reference/variables/region.md +10 -0
- package/docs/reference/variables/row.md +10 -0
- package/docs/reference/variables/search.md +10 -0
- package/docs/reference/variables/specification.md +8 -0
- package/docs/reference/variables/status.md +10 -0
- package/docs/reference/variables/table.md +10 -0
- package/package.json +32 -11
- package/dist/spec-document.js +0 -651
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: MobileSpecificationOptions\<Services\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type MobileSpecificationOptions<Services> = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/facets/mobile/mobile.specification.ts:33](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L33)
|
|
9
|
+
|
|
10
|
+
Options for startMobile \| specification.mobile.
|
|
11
|
+
|
|
12
|
+
## Type Parameters
|
|
13
|
+
|
|
14
|
+
| Type Parameter | Default type |
|
|
15
|
+
| ------ | ------ |
|
|
16
|
+
| `Services` *extends* [`ServiceRecord`](ServiceRecord.md) | [`ServiceRecord`](ServiceRecord.md) |
|
|
17
|
+
|
|
18
|
+
## Properties
|
|
19
|
+
|
|
20
|
+
### app
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
app: object;
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Defined in: [src/facets/mobile/mobile.specification.ts:35](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L35)
|
|
27
|
+
|
|
28
|
+
The app under test — terminated and relaunched by every `.open()`.
|
|
29
|
+
|
|
30
|
+
#### bundleId
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
bundleId: string;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Bundle id of the installed app (`com.example.app`).
|
|
37
|
+
|
|
38
|
+
***
|
|
39
|
+
|
|
40
|
+
### backend?
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
optional backend?: MobileBackendOptions;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Defined in: [src/facets/mobile/mobile.specification.ts:44](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L44)
|
|
47
|
+
|
|
48
|
+
Declared stub backend: started with the runner, serving the contracts
|
|
49
|
+
each chain declares via `.intercept(...)`. The handle gains
|
|
50
|
+
`backendUrl` — inject it into your bundler env yourself.
|
|
51
|
+
|
|
52
|
+
***
|
|
53
|
+
|
|
54
|
+
### device
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
device: object;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Defined in: [src/facets/mobile/mobile.specification.ts:46](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L46)
|
|
61
|
+
|
|
62
|
+
The simulator to run on — resolved through `xcrun simctl`.
|
|
63
|
+
|
|
64
|
+
#### name
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
name: string;
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Simulator name, matched exactly (`iPhone 17`).
|
|
71
|
+
|
|
72
|
+
#### os?
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
optional os?: string;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
OS narrowing when the name exists on several runtimes — `'26.5'` or `'iOS 26.5'`.
|
|
79
|
+
|
|
80
|
+
#### udid?
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
optional udid?: string;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Explicit UDID — skips name/os resolution entirely.
|
|
87
|
+
|
|
88
|
+
***
|
|
89
|
+
|
|
90
|
+
### root?
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
optional root?: string;
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Defined in: [src/facets/mobile/mobile.specification.ts:59](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L59)
|
|
97
|
+
|
|
98
|
+
Project-root override (CONVENTIONS A9): where the appium binary is
|
|
99
|
+
resolved from (`node_modules/.bin`). Auto-discovered from the calling
|
|
100
|
+
file when absent.
|
|
101
|
+
|
|
102
|
+
***
|
|
103
|
+
|
|
104
|
+
### services?
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
optional services?: Services;
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Defined in: [src/facets/mobile/mobile.specification.ts:73](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L73)
|
|
111
|
+
|
|
112
|
+
Named services started with the runner and stopped with it — a
|
|
113
|
+
`process()` for the bundler the app loads from, a database a dev build
|
|
114
|
+
reads. Metro stops being a `beforeAll` the repository maintains: it is
|
|
115
|
+
`process({ command: 'expo start', ready: /Metro waiting on .*:(\\d+)/ })`
|
|
116
|
+
like every other external process the framework owns.
|
|
117
|
+
|
|
118
|
+
***
|
|
119
|
+
|
|
120
|
+
### timeouts?
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
optional timeouts?: DeviceTimeouts;
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Defined in: [src/facets/mobile/mobile.specification.ts:74](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L74)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: MobileVisitor
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type MobileVisitor = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/device.port.ts:50](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L50)
|
|
9
|
+
|
|
10
|
+
The visitor — the interaction vocabulary handed to a mobile scenario.
|
|
11
|
+
Every verb auto-waits by polling until a visible match exists; acting
|
|
12
|
+
verbs then enforce exactly-one (W3), while `see()` — the single
|
|
13
|
+
synchronization primitive — is satisfied by any visible match. There is
|
|
14
|
+
no sleep and no conditional helper.
|
|
15
|
+
|
|
16
|
+
## Properties
|
|
17
|
+
|
|
18
|
+
### fill
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
fill: (element, value) => Promise<void>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Defined in: [src/model/ports/device.port.ts:52](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L52)
|
|
25
|
+
|
|
26
|
+
Fill a text field with a value.
|
|
27
|
+
|
|
28
|
+
#### Parameters
|
|
29
|
+
|
|
30
|
+
| Parameter | Type |
|
|
31
|
+
| ------ | ------ |
|
|
32
|
+
| `element` | [`MobileElementRef`](MobileElementRef.md) |
|
|
33
|
+
| `value` | `string` |
|
|
34
|
+
|
|
35
|
+
#### Returns
|
|
36
|
+
|
|
37
|
+
`Promise`\<`void`\>
|
|
38
|
+
|
|
39
|
+
***
|
|
40
|
+
|
|
41
|
+
### see
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
see: (element) => Promise<void>;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Defined in: [src/model/ports/device.port.ts:54](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L54)
|
|
48
|
+
|
|
49
|
+
Wait until the element is visible — the only synchronization primitive.
|
|
50
|
+
|
|
51
|
+
#### Parameters
|
|
52
|
+
|
|
53
|
+
| Parameter | Type |
|
|
54
|
+
| ------ | ------ |
|
|
55
|
+
| `element` | [`MobileElementRef`](MobileElementRef.md) |
|
|
56
|
+
|
|
57
|
+
#### Returns
|
|
58
|
+
|
|
59
|
+
`Promise`\<`void`\>
|
|
60
|
+
|
|
61
|
+
***
|
|
62
|
+
|
|
63
|
+
### tap
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
tap: (element) => Promise<void>;
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Defined in: [src/model/ports/device.port.ts:56](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L56)
|
|
70
|
+
|
|
71
|
+
Tap the element.
|
|
72
|
+
|
|
73
|
+
#### Parameters
|
|
74
|
+
|
|
75
|
+
| Parameter | Type |
|
|
76
|
+
| ------ | ------ |
|
|
77
|
+
| `element` | [`MobileElementRef`](MobileElementRef.md) |
|
|
78
|
+
|
|
79
|
+
#### Returns
|
|
80
|
+
|
|
81
|
+
`Promise`\<`void`\>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: MockOfOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type MockOfOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/doubles/mock-of.ts:5](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L5)
|
|
9
|
+
|
|
10
|
+
How much of the port the double answers for.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### deep?
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
optional deep?: boolean;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/doubles/mock-of.ts:13](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L13)
|
|
21
|
+
|
|
22
|
+
Deep (the default): reading a member that was never stubbed hands back
|
|
23
|
+
another double, however far down the port nests. `false` gives the flat
|
|
24
|
+
proxy — every member of `T` and nothing beneath them, which is what a
|
|
25
|
+
port with a nested namespace wants when the test only ever touches the
|
|
26
|
+
first level.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: MockPort
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type MockPort = typeof mockOf;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/doubles/mock-of.ts:35](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L35)
|
|
9
|
+
|
|
10
|
+
The factory's own shape — kept as a name so a consumer can annotate with it.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: PinnedClock
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type PinnedClock = Disposable;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/clock/clock.ts:23](https://github.com/jterrazz/package-test/blob/main/src/model/clock/clock.ts#L23)
|
|
9
|
+
|
|
10
|
+
A pinned clock — released when the `using` scope that declared it ends.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: PostgresOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type PostgresOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/seams/postgres/postgres.ts:23](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L23)
|
|
9
|
+
|
|
10
|
+
## Properties
|
|
11
|
+
|
|
12
|
+
### env?
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
optional env?: Record<string, string>;
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Defined in: [src/seams/postgres/postgres.ts:27](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L27)
|
|
19
|
+
|
|
20
|
+
Override environment variables.
|
|
21
|
+
|
|
22
|
+
***
|
|
23
|
+
|
|
24
|
+
### image?
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
optional image?: string;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Defined in: [src/seams/postgres/postgres.ts:25](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L25)
|
|
31
|
+
|
|
32
|
+
Override image.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ProcessOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ProcessOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/seams/process/serve.adapter.ts:18](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L18)
|
|
9
|
+
|
|
10
|
+
The ONE shape an external process takes — the site under test, a backend a
|
|
11
|
+
page talks to, a bundler a simulator loads from. Built by `process()`
|
|
12
|
+
(chapter 17) and accepted wherever a facet starts something outside this
|
|
13
|
+
process: `website({ server })`, `services: { api: process(…) }`, and the
|
|
14
|
+
literate `serve:` registry.
|
|
15
|
+
|
|
16
|
+
## Properties
|
|
17
|
+
|
|
18
|
+
### before?
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
optional before?: string;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Defined in: [src/seams/process/serve.adapter.ts:24](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L24)
|
|
25
|
+
|
|
26
|
+
A one-shot command run ONCE per specification, before the process is
|
|
27
|
+
spawned, which must exit 0 — a build, a migration, a fixture load. Its
|
|
28
|
+
failure is the specification's, and it says so.
|
|
29
|
+
|
|
30
|
+
***
|
|
31
|
+
|
|
32
|
+
### command
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
command: string;
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Defined in: [src/seams/process/serve.adapter.ts:26](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L26)
|
|
39
|
+
|
|
40
|
+
Shell command that starts the process. Receives the chosen port as `PORT`.
|
|
41
|
+
|
|
42
|
+
***
|
|
43
|
+
|
|
44
|
+
### cwd?
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
optional cwd?: string;
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Defined in: [src/seams/process/serve.adapter.ts:28](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L28)
|
|
51
|
+
|
|
52
|
+
Working directory, relative to the project root. Default: the root itself.
|
|
53
|
+
|
|
54
|
+
***
|
|
55
|
+
|
|
56
|
+
### env?
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
optional env?:
|
|
60
|
+
| ((services) => Record<string, string>)
|
|
61
|
+
| Record<string, string>;
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Defined in: [src/seams/process/serve.adapter.ts:34](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L34)
|
|
65
|
+
|
|
66
|
+
Environment for the child, on top of the runner's own. A function
|
|
67
|
+
receives the services already started beside this one, so a process can
|
|
68
|
+
be handed a sibling's connection string.
|
|
69
|
+
|
|
70
|
+
***
|
|
71
|
+
|
|
72
|
+
### port?
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
optional port?: number;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Defined in: [src/seams/process/serve.adapter.ts:38](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L38)
|
|
79
|
+
|
|
80
|
+
Fixed port. Default: an OS-assigned free port, injected as `PORT`.
|
|
81
|
+
|
|
82
|
+
***
|
|
83
|
+
|
|
84
|
+
### ready?
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
optional ready?: RegExp | string;
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Defined in: [src/seams/process/serve.adapter.ts:50](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L50)
|
|
91
|
+
|
|
92
|
+
How readiness is observed. Two forms:
|
|
93
|
+
|
|
94
|
+
- a **path** (or nothing) — the framework picks the port, injects it as
|
|
95
|
+
`PORT`, and polls `<baseUrl><path>` until it answers any HTTP status
|
|
96
|
+
(default `/`). This is `specification.website()`'s form.
|
|
97
|
+
- a **regex over the child's output** with ONE capture group holding the
|
|
98
|
+
port the server chose itself. Nothing is injected as `PORT`: the server
|
|
99
|
+
announces its port and the framework reads it from the banner. This is
|
|
100
|
+
the form a literate `serve:` registration uses.
|
|
101
|
+
|
|
102
|
+
***
|
|
103
|
+
|
|
104
|
+
### timeout?
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
optional timeout?: number;
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Defined in: [src/seams/process/serve.adapter.ts:52](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L52)
|
|
111
|
+
|
|
112
|
+
Readiness budget in milliseconds. Default 30 000.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: RedisOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type RedisOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/seams/redis/redis.ts:6](https://github.com/jterrazz/package-test/blob/main/src/seams/redis/redis.ts#L6)
|
|
9
|
+
|
|
10
|
+
## Properties
|
|
11
|
+
|
|
12
|
+
### image?
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
optional image?: string;
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Defined in: [src/seams/redis/redis.ts:8](https://github.com/jterrazz/package-test/blob/main/src/seams/redis/redis.ts#L8)
|
|
19
|
+
|
|
20
|
+
Override image.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: RenderSubject
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type RenderSubject = ComponentUi | DomMount;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/facets/component/component.types.ts:31](https://github.com/jterrazz/package-test/blob/main/src/facets/component/component.types.ts#L31)
|
|
9
|
+
|
|
10
|
+
What `.render()` mounts. A React tree is an element (`<PostTable />`); a
|
|
11
|
+
vanilla DOM subject is the FUNCTION that fills a container, which is how a
|
|
12
|
+
DOM-only module is called in production too.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ScreenNode
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ScreenNode = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/device.port.ts:68](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L68)
|
|
9
|
+
|
|
10
|
+
One node of the projected accessibility tree — the XCUITest page source
|
|
11
|
+
with its noise collapsed: unlabeled, identifier-less, valueless wrapper
|
|
12
|
+
nodes are dropped and their children hoisted, so the projection stays
|
|
13
|
+
stable and golden-friendly. Type names lose the `XCUIElementType` prefix.
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
|
|
17
|
+
### children?
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
optional children?: ScreenNode[];
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Defined in: [src/model/ports/device.port.ts:69](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L69)
|
|
24
|
+
|
|
25
|
+
***
|
|
26
|
+
|
|
27
|
+
### identifier?
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
optional identifier?: string;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Defined in: [src/model/ports/device.port.ts:71](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L71)
|
|
34
|
+
|
|
35
|
+
The accessibility identifier, only when it differs from the label.
|
|
36
|
+
|
|
37
|
+
***
|
|
38
|
+
|
|
39
|
+
### label?
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
optional label?: string;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Defined in: [src/model/ports/device.port.ts:72](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L72)
|
|
46
|
+
|
|
47
|
+
***
|
|
48
|
+
|
|
49
|
+
### type
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
type: string;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Defined in: [src/model/ports/device.port.ts:74](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L74)
|
|
56
|
+
|
|
57
|
+
Element type without the `XCUIElementType` prefix — `Button`, `StaticText`.
|
|
58
|
+
|
|
59
|
+
***
|
|
60
|
+
|
|
61
|
+
### value?
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
optional value?: string;
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Defined in: [src/model/ports/device.port.ts:75](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L75)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ServerPort
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ServerPort = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/server.port.ts:17](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L17)
|
|
9
|
+
|
|
10
|
+
Abstract server interface for specification runners.
|
|
11
|
+
Integration mode uses an in-process Hono app; E2E mode uses real HTTP via fetch.
|
|
12
|
+
|
|
13
|
+
## Properties
|
|
14
|
+
|
|
15
|
+
### request
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
request: (method, path, body?, headers?) => Promise<ServerResponse>;
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Defined in: [src/model/ports/server.port.ts:19](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L19)
|
|
22
|
+
|
|
23
|
+
Send an HTTP request and return the parsed response.
|
|
24
|
+
|
|
25
|
+
#### Parameters
|
|
26
|
+
|
|
27
|
+
| Parameter | Type |
|
|
28
|
+
| ------ | ------ |
|
|
29
|
+
| `method` | `string` |
|
|
30
|
+
| `path` | `string` |
|
|
31
|
+
| `body?` | `unknown` |
|
|
32
|
+
| `headers?` | `Record`\<`string`, `string`\> |
|
|
33
|
+
|
|
34
|
+
#### Returns
|
|
35
|
+
|
|
36
|
+
`Promise`\<[`ServerResponse`](ServerResponse.md)\>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ServerResponse
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ServerResponse = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/server.port.ts:4](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L4)
|
|
9
|
+
|
|
10
|
+
HTTP response returned by a server port, with parsed JSON body.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### body
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
body: unknown;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/ports/server.port.ts:8](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L8)
|
|
21
|
+
|
|
22
|
+
Parsed JSON response body, or null if parsing failed.
|
|
23
|
+
|
|
24
|
+
***
|
|
25
|
+
|
|
26
|
+
### headers
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
headers: Record<string, string>;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Defined in: [src/model/ports/server.port.ts:10](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L10)
|
|
33
|
+
|
|
34
|
+
Response headers as a flat key-value map.
|
|
35
|
+
|
|
36
|
+
***
|
|
37
|
+
|
|
38
|
+
### status
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
status: number;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Defined in: [src/model/ports/server.port.ts:6](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L6)
|
|
45
|
+
|
|
46
|
+
HTTP status code.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ServerSpec\<Services\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ServerSpec<Services> =
|
|
6
|
+
| ((services) =>
|
|
7
|
+
| ProcessHandle
|
|
8
|
+
| ProcessOptions)
|
|
9
|
+
| ProcessHandle
|
|
10
|
+
| ProcessOptions;
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Defined in: [src/facets/website/website.specification.ts:32](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L32)
|
|
14
|
+
|
|
15
|
+
What `server` may be handed as, and what it resolves to.
|
|
16
|
+
|
|
17
|
+
## Type Parameters
|
|
18
|
+
|
|
19
|
+
| Type Parameter |
|
|
20
|
+
| ------ |
|
|
21
|
+
| `Services` *extends* [`ServiceRecord`](ServiceRecord.md) |
|