@jterrazz/test 16.0.0 → 16.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/dist/appium.adapter.js +59 -4
- package/dist/browser/index.js +203 -42
- package/dist/checker.js +305 -63
- package/dist/index.d.ts +35 -4
- package/dist/index.js +47 -24
- package/dist/oxlint.cjs +123 -28
- package/dist/oxlint.js +123 -28
- package/dist/playwright.adapter.js +88 -50
- package/dist/substring-warning.js +282 -0
- package/dist/vitest.js +91 -12
- 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 +248 -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 +332 -0
- package/docs/19-linting.md +512 -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 +3 -2
- package/dist/ambiguity.js +0 -146
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Interface: TableAccessor
|
|
3
|
+
|
|
4
|
+
Defined in: [src/model/result/table.ts:15](https://github.com/jterrazz/package-test/blob/main/src/model/result/table.ts#L15)
|
|
5
|
+
|
|
6
|
+
Read-only accessor for a database table after a specification run.
|
|
7
|
+
|
|
8
|
+
Assertions go through `expect()` (async — they query the database):
|
|
9
|
+
|
|
10
|
+
await expect(result.table('users', { database: 'db' })).toMatchRows({
|
|
11
|
+
columns: ['name'],
|
|
12
|
+
rows: [['Alice']],
|
|
13
|
+
});
|
|
14
|
+
await expect(result.table('users', { database: 'db' })).toBeEmpty();
|
|
15
|
+
|
|
16
|
+
## Properties
|
|
17
|
+
|
|
18
|
+
### name
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
readonly name: string;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Defined in: [src/model/result/table.ts:21](https://github.com/jterrazz/package-test/blob/main/src/model/result/table.ts#L21)
|
|
25
|
+
|
|
26
|
+
The table name this accessor reads.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Interface: TextAccessor
|
|
3
|
+
|
|
4
|
+
Defined in: [src/model/result/text.ts:35](https://github.com/jterrazz/package-test/blob/main/src/model/result/text.ts#L35)
|
|
5
|
+
|
|
6
|
+
Read-only accessor for a captured text handle — THE universal one: stdout,
|
|
7
|
+
stderr, container logs, and file text all surface as a `TextAccessor`.
|
|
8
|
+
|
|
9
|
+
Backed by a primitive string, exposed via [text](RenderedText.md#text), but also provides
|
|
10
|
+
`toString()` / `valueOf()` for string coercion, so common patterns like
|
|
11
|
+
`String(result.stdout)` and template-literal interpolation still work.
|
|
12
|
+
|
|
13
|
+
ANSI escape sequences are stripped by default before every comparison
|
|
14
|
+
(CONVENTIONS D6) — `.text` stays raw. The runner `transform` option remains
|
|
15
|
+
an escape hatch for application noise not covered by the `{{token}}`
|
|
16
|
+
grammar.
|
|
17
|
+
|
|
18
|
+
Text operations are **closed** over the type: `.grep(pattern)` returns a
|
|
19
|
+
`TextAccessor` (not a bare string), preserving the `_expected/`-resolution
|
|
20
|
+
context and the `transform`, so results are chainable
|
|
21
|
+
(`result.stdout.grep(a).grep(b)`) and snapshot-able
|
|
22
|
+
(`expect(result.stdout.grep('users.ts')).toMatch('block.txt')`).
|
|
23
|
+
|
|
24
|
+
Assertions go through `expect()` matchers: `expect(result.stdout).toContain(...)`
|
|
25
|
+
and `expect(result.stdout).toMatch('name.txt')` (resolved against
|
|
26
|
+
`_expected/<name>`, flat — with `{{token}}` support, CONVENTIONS D4).
|
|
27
|
+
|
|
28
|
+
## Extended by
|
|
29
|
+
|
|
30
|
+
- [`RenderedText`](RenderedText.md)
|
|
31
|
+
|
|
32
|
+
## Properties
|
|
33
|
+
|
|
34
|
+
### text
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
readonly text: string;
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Defined in: [src/model/result/text.ts:43](https://github.com/jterrazz/package-test/blob/main/src/model/result/text.ts#L43)
|
|
41
|
+
|
|
42
|
+
The raw captured text (never transformed, ANSI preserved).
|
|
43
|
+
|
|
44
|
+
## Methods
|
|
45
|
+
|
|
46
|
+
### grep()
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
grep(pattern): TextAccessor;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Defined in: [src/model/result/text.ts:76](https://github.com/jterrazz/package-test/blob/main/src/model/result/text.ts#L76)
|
|
53
|
+
|
|
54
|
+
Keep only the blank-line-separated blocks of the text that contain
|
|
55
|
+
`pattern` (how linter/compiler output is structured), returned as a new
|
|
56
|
+
`TextAccessor` — the same subject type, so the result is chainable and
|
|
57
|
+
snapshot-able. The scalpel for probing large tool outputs; snapshot the
|
|
58
|
+
whole surface by default, reach for `.grep()` for targeted checks.
|
|
59
|
+
|
|
60
|
+
#### Parameters
|
|
61
|
+
|
|
62
|
+
| Parameter | Type |
|
|
63
|
+
| ------ | ------ |
|
|
64
|
+
| `pattern` | `string` |
|
|
65
|
+
|
|
66
|
+
#### Returns
|
|
67
|
+
|
|
68
|
+
`TextAccessor`
|
|
69
|
+
|
|
70
|
+
***
|
|
71
|
+
|
|
72
|
+
### toString()
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
toString(): string;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Defined in: [src/model/result/text.ts:83](https://github.com/jterrazz/package-test/blob/main/src/model/result/text.ts#L83)
|
|
79
|
+
|
|
80
|
+
#### Returns
|
|
81
|
+
|
|
82
|
+
`string`
|
|
83
|
+
|
|
84
|
+
***
|
|
85
|
+
|
|
86
|
+
### valueOf()
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
valueOf(): string;
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Defined in: [src/model/result/text.ts:87](https://github.com/jterrazz/package-test/blob/main/src/model/result/text.ts#L87)
|
|
93
|
+
|
|
94
|
+
#### Returns
|
|
95
|
+
|
|
96
|
+
`string`
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ApiHandle\<DatabaseKey\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ApiHandle<DatabaseKey> = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/facets/api/api.specification.ts:52](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L52)
|
|
9
|
+
|
|
10
|
+
The record returned by startApi \| specification.api. Destructure
|
|
11
|
+
with the canonical names (CONVENTIONS A3):
|
|
12
|
+
|
|
13
|
+
const { api, cleanup, docker } = await specification.api(…);
|
|
14
|
+
|
|
15
|
+
## Type Parameters
|
|
16
|
+
|
|
17
|
+
| Type Parameter | Default type |
|
|
18
|
+
| ------ | ------ |
|
|
19
|
+
| `DatabaseKey` *extends* `string` | `string` |
|
|
20
|
+
|
|
21
|
+
## Properties
|
|
22
|
+
|
|
23
|
+
### api
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
api: ApiSpecification<DatabaseKey>;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Defined in: [src/facets/api/api.specification.ts:53](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L53)
|
|
30
|
+
|
|
31
|
+
***
|
|
32
|
+
|
|
33
|
+
### cleanup
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
cleanup: () => Promise<void>;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Defined in: [src/facets/api/api.specification.ts:55](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L55)
|
|
40
|
+
|
|
41
|
+
Stop all infrastructure started by this specification.
|
|
42
|
+
|
|
43
|
+
#### Returns
|
|
44
|
+
|
|
45
|
+
`Promise`\<`void`\>
|
|
46
|
+
|
|
47
|
+
***
|
|
48
|
+
|
|
49
|
+
### docker
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
docker: (containerId) => ContainerAccessor;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Defined in: [src/facets/api/api.specification.ts:60](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L60)
|
|
56
|
+
|
|
57
|
+
Read a running container by id — returns a [ContainerAccessor](../interfaces/ContainerAccessor.md)
|
|
58
|
+
usable with `await expect(...).toBeRunning()` and read accessors.
|
|
59
|
+
|
|
60
|
+
#### Parameters
|
|
61
|
+
|
|
62
|
+
| Parameter | Type |
|
|
63
|
+
| ------ | ------ |
|
|
64
|
+
| `containerId` | `string` |
|
|
65
|
+
|
|
66
|
+
#### Returns
|
|
67
|
+
|
|
68
|
+
[`ContainerAccessor`](../interfaces/ContainerAccessor.md)
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ApiSpecification\<DatabaseKey\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ApiSpecification<DatabaseKey> = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/chain/builder.ts:179](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L179)
|
|
9
|
+
|
|
10
|
+
The `api` facet — HTTP chain entry handed out by `specification.api()`.
|
|
11
|
+
Setup methods chain; action methods are terminal: they execute the spec
|
|
12
|
+
and resolve to the result.
|
|
13
|
+
|
|
14
|
+
The `DatabaseKey` parameter is the typed vocabulary of `.seed()`: the keys
|
|
15
|
+
of the declared services record that are databases.
|
|
16
|
+
|
|
17
|
+
## Type Parameters
|
|
18
|
+
|
|
19
|
+
| Type Parameter | Default type |
|
|
20
|
+
| ------ | ------ |
|
|
21
|
+
| `DatabaseKey` *extends* `string` | `string` |
|
|
22
|
+
|
|
23
|
+
## Properties
|
|
24
|
+
|
|
25
|
+
### clock
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
clock: (iso) => ApiSpecification<DatabaseKey>;
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Defined in: [src/model/chain/builder.ts:181](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L181)
|
|
32
|
+
|
|
33
|
+
Pin the app's `Date` at `iso` for this chain — the calendar the app reads.
|
|
34
|
+
|
|
35
|
+
#### Parameters
|
|
36
|
+
|
|
37
|
+
| Parameter | Type |
|
|
38
|
+
| ------ | ------ |
|
|
39
|
+
| `iso` | `string` |
|
|
40
|
+
|
|
41
|
+
#### Returns
|
|
42
|
+
|
|
43
|
+
`ApiSpecification`\<`DatabaseKey`\>
|
|
44
|
+
|
|
45
|
+
***
|
|
46
|
+
|
|
47
|
+
### delete
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
delete: (path) => Promise<HttpResult>;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Defined in: [src/model/chain/builder.ts:190](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L190)
|
|
54
|
+
|
|
55
|
+
Send a DELETE request and resolve with the result.
|
|
56
|
+
|
|
57
|
+
#### Parameters
|
|
58
|
+
|
|
59
|
+
| Parameter | Type |
|
|
60
|
+
| ------ | ------ |
|
|
61
|
+
| `path` | `string` |
|
|
62
|
+
|
|
63
|
+
#### Returns
|
|
64
|
+
|
|
65
|
+
`Promise`\<[`HttpResult`](../interfaces/HttpResult.md)\>
|
|
66
|
+
|
|
67
|
+
***
|
|
68
|
+
|
|
69
|
+
### get
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
get: (path) => Promise<HttpResult>;
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Defined in: [src/model/chain/builder.ts:192](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L192)
|
|
76
|
+
|
|
77
|
+
Send a GET request and resolve with the result.
|
|
78
|
+
|
|
79
|
+
#### Parameters
|
|
80
|
+
|
|
81
|
+
| Parameter | Type |
|
|
82
|
+
| ------ | ------ |
|
|
83
|
+
| `path` | `string` |
|
|
84
|
+
|
|
85
|
+
#### Returns
|
|
86
|
+
|
|
87
|
+
`Promise`\<[`HttpResult`](../interfaces/HttpResult.md)\>
|
|
88
|
+
|
|
89
|
+
***
|
|
90
|
+
|
|
91
|
+
### headers
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
headers: (headers) => ApiSpecification<DatabaseKey>;
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Defined in: [src/model/chain/builder.ts:183](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L183)
|
|
98
|
+
|
|
99
|
+
Set HTTP headers for the request. Multiple calls merge.
|
|
100
|
+
|
|
101
|
+
#### Parameters
|
|
102
|
+
|
|
103
|
+
| Parameter | Type |
|
|
104
|
+
| ------ | ------ |
|
|
105
|
+
| `headers` | `Record`\<`string`, `string`\> |
|
|
106
|
+
|
|
107
|
+
#### Returns
|
|
108
|
+
|
|
109
|
+
`ApiSpecification`\<`DatabaseKey`\>
|
|
110
|
+
|
|
111
|
+
***
|
|
112
|
+
|
|
113
|
+
### intercept
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
intercept: InterceptMethod<ApiSpecification<DatabaseKey>>;
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Defined in: [src/model/chain/builder.ts:185](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L185)
|
|
120
|
+
|
|
121
|
+
Declare outgoing calls — a contract, a list, a composite, or an inline request + response pair.
|
|
122
|
+
|
|
123
|
+
***
|
|
124
|
+
|
|
125
|
+
### post
|
|
126
|
+
|
|
127
|
+
```ts
|
|
128
|
+
post: (path, body?) => Promise<HttpResult>;
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Defined in: [src/model/chain/builder.ts:194](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L194)
|
|
132
|
+
|
|
133
|
+
Send a POST request (optional inline JSON body) and resolve with the result.
|
|
134
|
+
|
|
135
|
+
#### Parameters
|
|
136
|
+
|
|
137
|
+
| Parameter | Type |
|
|
138
|
+
| ------ | ------ |
|
|
139
|
+
| `path` | `string` |
|
|
140
|
+
| `body?` | `unknown` |
|
|
141
|
+
|
|
142
|
+
#### Returns
|
|
143
|
+
|
|
144
|
+
`Promise`\<[`HttpResult`](../interfaces/HttpResult.md)\>
|
|
145
|
+
|
|
146
|
+
***
|
|
147
|
+
|
|
148
|
+
### put
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
put: (path, body?) => Promise<HttpResult>;
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Defined in: [src/model/chain/builder.ts:196](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L196)
|
|
155
|
+
|
|
156
|
+
Send a PUT request (optional inline JSON body) and resolve with the result.
|
|
157
|
+
|
|
158
|
+
#### Parameters
|
|
159
|
+
|
|
160
|
+
| Parameter | Type |
|
|
161
|
+
| ------ | ------ |
|
|
162
|
+
| `path` | `string` |
|
|
163
|
+
| `body?` | `unknown` |
|
|
164
|
+
|
|
165
|
+
#### Returns
|
|
166
|
+
|
|
167
|
+
`Promise`\<[`HttpResult`](../interfaces/HttpResult.md)\>
|
|
168
|
+
|
|
169
|
+
***
|
|
170
|
+
|
|
171
|
+
### request
|
|
172
|
+
|
|
173
|
+
```ts
|
|
174
|
+
request: (file) => Promise<HttpResult>;
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Defined in: [src/model/chain/builder.ts:198](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L198)
|
|
178
|
+
|
|
179
|
+
Send the complete request described by `_requests/<file>` (.http format).
|
|
180
|
+
|
|
181
|
+
#### Parameters
|
|
182
|
+
|
|
183
|
+
| Parameter | Type |
|
|
184
|
+
| ------ | ------ |
|
|
185
|
+
| `file` | `string` |
|
|
186
|
+
|
|
187
|
+
#### Returns
|
|
188
|
+
|
|
189
|
+
`Promise`\<[`HttpResult`](../interfaces/HttpResult.md)\>
|
|
190
|
+
|
|
191
|
+
***
|
|
192
|
+
|
|
193
|
+
### seed
|
|
194
|
+
|
|
195
|
+
```ts
|
|
196
|
+
seed: (file, options?) => ApiSpecification<DatabaseKey>;
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Defined in: [src/model/chain/builder.ts:187](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L187)
|
|
200
|
+
|
|
201
|
+
Queue a SQL seed file from `_seeds/` to run before the action.
|
|
202
|
+
|
|
203
|
+
#### Parameters
|
|
204
|
+
|
|
205
|
+
| Parameter | Type |
|
|
206
|
+
| ------ | ------ |
|
|
207
|
+
| `file` | `string` |
|
|
208
|
+
| `options?` | \{ `database?`: `DatabaseKey`; \} |
|
|
209
|
+
| `options.database?` | `DatabaseKey` |
|
|
210
|
+
|
|
211
|
+
#### Returns
|
|
212
|
+
|
|
213
|
+
`ApiSpecification`\<`DatabaseKey`\>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ApiSpecificationOptions\<Services\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ApiSpecificationOptions<Services> = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/facets/api/api.specification.ts:25](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L25)
|
|
9
|
+
|
|
10
|
+
Options for startApi \| specification.api.
|
|
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
|
+
### root?
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
optional root?: string;
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Defined in: [src/facets/api/api.specification.ts:31](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L31)
|
|
27
|
+
|
|
28
|
+
Project root override for init scripts and artefact paths. When absent,
|
|
29
|
+
the root is auto-discovered by walking up from the calling specification
|
|
30
|
+
file to the first directory containing `package.json` (CONVENTIONS A9).
|
|
31
|
+
|
|
32
|
+
***
|
|
33
|
+
|
|
34
|
+
### server
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
server: (services) => HonoApp;
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Defined in: [src/facets/api/api.specification.ts:36](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L36)
|
|
41
|
+
|
|
42
|
+
The app factory — receives the started services record (fully typed)
|
|
43
|
+
and returns the Hono app.
|
|
44
|
+
|
|
45
|
+
#### Parameters
|
|
46
|
+
|
|
47
|
+
| Parameter | Type |
|
|
48
|
+
| ------ | ------ |
|
|
49
|
+
| `services` | `Services` |
|
|
50
|
+
|
|
51
|
+
#### Returns
|
|
52
|
+
|
|
53
|
+
[`HonoApp`](HonoApp.md)
|
|
54
|
+
|
|
55
|
+
***
|
|
56
|
+
|
|
57
|
+
### services?
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
optional services?: Services;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Defined in: [src/facets/api/api.specification.ts:43](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L43)
|
|
64
|
+
|
|
65
|
+
Named infrastructure record. Keys become the `database` vocabulary of
|
|
66
|
+
`.seed()` / `.table()`, and, kebab-cased, the folder each service reads
|
|
67
|
+
its init script from (`{ analyticsDb: postgres() }` →
|
|
68
|
+
`docker/analytics-db/init.sql`).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: BrowserConsoleMessage
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type BrowserConsoleMessage = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/browser.port.ts:133](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L133)
|
|
9
|
+
|
|
10
|
+
A console message emitted while the page loaded or the scenario ran.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### text
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
text: string;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/ports/browser.port.ts:134](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L134)
|
|
21
|
+
|
|
22
|
+
***
|
|
23
|
+
|
|
24
|
+
### type
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
type: string;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Defined in: [src/model/ports/browser.port.ts:135](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L135)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: BrowserLinkElement
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type BrowserLinkElement = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/browser.port.ts:118](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L118)
|
|
9
|
+
|
|
10
|
+
A `<link>` element captured from the rendered document's head.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### href
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
href: string;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/ports/browser.port.ts:119](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L119)
|
|
21
|
+
|
|
22
|
+
***
|
|
23
|
+
|
|
24
|
+
### hreflang?
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
optional hreflang?: string;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Defined in: [src/model/ports/browser.port.ts:120](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L120)
|
|
31
|
+
|
|
32
|
+
***
|
|
33
|
+
|
|
34
|
+
### rel
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
rel: string;
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Defined in: [src/model/ports/browser.port.ts:121](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L121)
|
|
41
|
+
|
|
42
|
+
***
|
|
43
|
+
|
|
44
|
+
### type?
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
optional type?: string;
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Defined in: [src/model/ports/browser.port.ts:122](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L122)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: BrowserMetaElement
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type BrowserMetaElement = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/browser.port.ts:126](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L126)
|
|
9
|
+
|
|
10
|
+
A `<meta>` element captured from the rendered document's head.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### content
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
content: string;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/ports/browser.port.ts:127](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L127)
|
|
21
|
+
|
|
22
|
+
***
|
|
23
|
+
|
|
24
|
+
### name?
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
optional name?: string;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Defined in: [src/model/ports/browser.port.ts:128](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L128)
|
|
31
|
+
|
|
32
|
+
***
|
|
33
|
+
|
|
34
|
+
### property?
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
optional property?: string;
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Defined in: [src/model/ports/browser.port.ts:129](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L129)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: BrowserOpenOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type BrowserOpenOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/browser.port.ts:173](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L173)
|
|
9
|
+
|
|
10
|
+
Per-visit options forwarded to the browser context.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### allowedOrigins?
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
optional allowedOrigins?: string[];
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/ports/browser.port.ts:178](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L178)
|
|
21
|
+
|
|
22
|
+
Extra origins the `external: 'block'` policy lets through — the
|
|
23
|
+
declared stub backend the page legitimately fetches from.
|
|
24
|
+
|
|
25
|
+
***
|
|
26
|
+
|
|
27
|
+
### baseUrl
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
baseUrl: string;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Defined in: [src/model/ports/browser.port.ts:183](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L183)
|
|
34
|
+
|
|
35
|
+
Base URL of the site under test — the origin `goto()` resolves against
|
|
36
|
+
and the boundary of the `external` policy.
|
|
37
|
+
|
|
38
|
+
***
|
|
39
|
+
|
|
40
|
+
### clock?
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
optional clock?: string;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Defined in: [src/model/ports/browser.port.ts:188](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L188)
|
|
47
|
+
|
|
48
|
+
Pin the page's own `Date` at this instant before the first byte is
|
|
49
|
+
parsed — the calendar the site's scripts read. `.clock()` on the chain.
|
|
50
|
+
|
|
51
|
+
***
|
|
52
|
+
|
|
53
|
+
### external
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
external: "allow" | "block";
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Defined in: [src/model/ports/browser.port.ts:194](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L194)
|
|
60
|
+
|
|
61
|
+
Cross-origin request policy. `'block'` aborts every request leaving
|
|
62
|
+
the site under test (analytics, CDNs) — the browser-side analog of
|
|
63
|
+
strict intercepts. `'allow'` lets them through (deployed-site mode).
|
|
64
|
+
|
|
65
|
+
***
|
|
66
|
+
|
|
67
|
+
### headers?
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
optional headers?: Record<string, string>;
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Defined in: [src/model/ports/browser.port.ts:196](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L196)
|
|
74
|
+
|
|
75
|
+
Extra HTTP headers sent with every request of the visit (incl. User-Agent overrides).
|
|
76
|
+
|
|
77
|
+
***
|
|
78
|
+
|
|
79
|
+
### scenario?
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
optional scenario?: VisitScenario;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Defined in: [src/model/ports/browser.port.ts:198](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L198)
|
|
86
|
+
|
|
87
|
+
The interaction scenario to run after load; the capture reflects the final state.
|