@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,31 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: HonoApp
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type HonoApp = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/facets/api/api.specification.ts:20](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L20)
|
|
9
|
+
|
|
10
|
+
Any object with a request method compatible with Hono's app.request().
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### request
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
request: (path, init?) => Promise<Response> | Response;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/facets/api/api.specification.ts:21](https://github.com/jterrazz/package-test/blob/main/src/facets/api/api.specification.ts#L21)
|
|
21
|
+
|
|
22
|
+
#### Parameters
|
|
23
|
+
|
|
24
|
+
| Parameter | Type |
|
|
25
|
+
| ------ | ------ |
|
|
26
|
+
| `path` | `string` |
|
|
27
|
+
| `init?` | `RequestInit` |
|
|
28
|
+
|
|
29
|
+
#### Returns
|
|
30
|
+
|
|
31
|
+
`Promise`\<`Response`\> \| `Response`
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: HttpContractFilter
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type HttpContractFilter = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/contracts/http.ts:18](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L18)
|
|
9
|
+
|
|
10
|
+
Request filters for the generic HTTP provider. Every field is a subset
|
|
11
|
+
constraint — a request matches when all provided fields match.
|
|
12
|
+
|
|
13
|
+
## Properties
|
|
14
|
+
|
|
15
|
+
### body?
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
optional body?: object | RegExp | string;
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Defined in: [src/model/contracts/http.ts:24](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L24)
|
|
22
|
+
|
|
23
|
+
Body constraint. An object is a deep SUBSET match (toMatchObject-style)
|
|
24
|
+
whose leaf values may be `match.*` matchers; a string is a containment
|
|
25
|
+
test and a RegExp a `test()` over the raw text body.
|
|
26
|
+
|
|
27
|
+
***
|
|
28
|
+
|
|
29
|
+
### headers?
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
optional headers?: Record<string, RegExp | string>;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Defined in: [src/model/contracts/http.ts:26](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L26)
|
|
36
|
+
|
|
37
|
+
Header subset. Names are case-insensitive; string = exact value, RegExp = `test()`.
|
|
38
|
+
|
|
39
|
+
***
|
|
40
|
+
|
|
41
|
+
### query?
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
optional query?: Record<string, RegExp | string>;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Defined in: [src/model/contracts/http.ts:28](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L28)
|
|
48
|
+
|
|
49
|
+
Query-param subset. string = exact value, RegExp = `test()`.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: HttpResponseInit
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type HttpResponseInit = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/contracts/http.ts:77](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L77)
|
|
9
|
+
|
|
10
|
+
Init options shared by the response builders.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### delay?
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
optional delay?: number;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/contracts/http.ts:79](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L79)
|
|
21
|
+
|
|
22
|
+
Delay in ms before responding (for timeout testing).
|
|
23
|
+
|
|
24
|
+
***
|
|
25
|
+
|
|
26
|
+
### headers?
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
optional headers?: Record<string, string>;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Defined in: [src/model/contracts/http.ts:81](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L81)
|
|
33
|
+
|
|
34
|
+
Response headers, merged over the builder's own.
|
|
35
|
+
|
|
36
|
+
***
|
|
37
|
+
|
|
38
|
+
### status?
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
optional status?: number;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Defined in: [src/model/contracts/http.ts:83](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L83)
|
|
45
|
+
|
|
46
|
+
HTTP status code.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: HttpStreamInit
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type HttpStreamInit = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/contracts/http.ts:32](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L32)
|
|
9
|
+
|
|
10
|
+
Init options for a streamed reply.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### contentType?
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
optional contentType?: string;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/contracts/http.ts:34](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L34)
|
|
21
|
+
|
|
22
|
+
The `content-type` the stream is served under. Default `application/octet-stream`.
|
|
23
|
+
|
|
24
|
+
***
|
|
25
|
+
|
|
26
|
+
### delay?
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
optional delay?: number;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Defined in: [src/model/contracts/http.ts:36](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L36)
|
|
33
|
+
|
|
34
|
+
Milliseconds between two chunks. Default 0 — every chunk at once.
|
|
35
|
+
|
|
36
|
+
***
|
|
37
|
+
|
|
38
|
+
### headers?
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
optional headers?: Record<string, string>;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Defined in: [src/model/contracts/http.ts:38](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L38)
|
|
45
|
+
|
|
46
|
+
Response headers, merged over the builder's own.
|
|
47
|
+
|
|
48
|
+
***
|
|
49
|
+
|
|
50
|
+
### status?
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
optional status?: number;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Defined in: [src/model/contracts/http.ts:40](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L40)
|
|
57
|
+
|
|
58
|
+
HTTP status code. Default 200.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: IntegrationHandle\<Services, DatabaseKey\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type IntegrationHandle<Services, DatabaseKey> = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/facets/integration/integration.specification.ts:34](https://github.com/jterrazz/package-test/blob/main/src/facets/integration/integration.specification.ts#L34)
|
|
9
|
+
|
|
10
|
+
The record returned by startIntegration \| specification.integration.
|
|
11
|
+
Destructure with the canonical names (CONVENTIONS A3):
|
|
12
|
+
|
|
13
|
+
const { integration, cleanup } = await specification.integration(…);
|
|
14
|
+
|
|
15
|
+
## Type Parameters
|
|
16
|
+
|
|
17
|
+
| Type Parameter | Default type |
|
|
18
|
+
| ------ | ------ |
|
|
19
|
+
| `Services` *extends* [`ServiceRecord`](ServiceRecord.md) | [`ServiceRecord`](ServiceRecord.md) |
|
|
20
|
+
| `DatabaseKey` *extends* `string` | `string` |
|
|
21
|
+
|
|
22
|
+
## Properties
|
|
23
|
+
|
|
24
|
+
### cleanup
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
cleanup: () => Promise<void>;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Defined in: [src/facets/integration/integration.specification.ts:39](https://github.com/jterrazz/package-test/blob/main/src/facets/integration/integration.specification.ts#L39)
|
|
31
|
+
|
|
32
|
+
Stop all infrastructure started by this specification.
|
|
33
|
+
|
|
34
|
+
#### Returns
|
|
35
|
+
|
|
36
|
+
`Promise`\<`void`\>
|
|
37
|
+
|
|
38
|
+
***
|
|
39
|
+
|
|
40
|
+
### integration
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
integration: IntegrationSpecification<Services, DatabaseKey>;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Defined in: [src/facets/integration/integration.specification.ts:40](https://github.com/jterrazz/package-test/blob/main/src/facets/integration/integration.specification.ts#L40)
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: IntegrationSpecification\<Services, DatabaseKey\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type IntegrationSpecification<Services, DatabaseKey> = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/chain/builder.ts:237](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L237)
|
|
9
|
+
|
|
10
|
+
The `integration` facet — the in-process chain handed out by
|
|
11
|
+
`specification.integration()`.
|
|
12
|
+
|
|
13
|
+
The subject is a MODULE, not an entry: no HTTP, no binary, no page. What
|
|
14
|
+
makes it a spec rather than a module test is what it stands on — real
|
|
15
|
+
services, declared contracts, a golden — so it takes the same setups as
|
|
16
|
+
every other facet and ends on the one action a module has: being called.
|
|
17
|
+
|
|
18
|
+
## Type Parameters
|
|
19
|
+
|
|
20
|
+
| Type Parameter | Default type |
|
|
21
|
+
| ------ | ------ |
|
|
22
|
+
| `Services` *extends* `Record`\<`string`, `unknown`\> | `Record`\<`string`, `unknown`\> |
|
|
23
|
+
| `DatabaseKey` *extends* `string` | `string` |
|
|
24
|
+
|
|
25
|
+
## Properties
|
|
26
|
+
|
|
27
|
+
### call
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
call: <T>(subject) => Promise<CallResult<T>>;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Defined in: [src/model/chain/builder.ts:256](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L256)
|
|
34
|
+
|
|
35
|
+
Call the module and resolve with what it produced. The started services
|
|
36
|
+
record is handed in, so the subject is constructed with the real
|
|
37
|
+
connection strings rather than with a double.
|
|
38
|
+
|
|
39
|
+
#### Type Parameters
|
|
40
|
+
|
|
41
|
+
| Type Parameter |
|
|
42
|
+
| ------ |
|
|
43
|
+
| `T` |
|
|
44
|
+
|
|
45
|
+
#### Parameters
|
|
46
|
+
|
|
47
|
+
| Parameter | Type |
|
|
48
|
+
| ------ | ------ |
|
|
49
|
+
| `subject` | (`services`) => `Promise`\<`T`\> \| `T` |
|
|
50
|
+
|
|
51
|
+
#### Returns
|
|
52
|
+
|
|
53
|
+
`Promise`\<[`CallResult`](../interfaces/CallResult.md)\<`T`\>\>
|
|
54
|
+
|
|
55
|
+
***
|
|
56
|
+
|
|
57
|
+
### clock
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
clock: (iso) => IntegrationSpecification<Services, DatabaseKey>;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Defined in: [src/model/chain/builder.ts:242](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L242)
|
|
64
|
+
|
|
65
|
+
Pin the module's `Date` at `iso` for this chain.
|
|
66
|
+
|
|
67
|
+
#### Parameters
|
|
68
|
+
|
|
69
|
+
| Parameter | Type |
|
|
70
|
+
| ------ | ------ |
|
|
71
|
+
| `iso` | `string` |
|
|
72
|
+
|
|
73
|
+
#### Returns
|
|
74
|
+
|
|
75
|
+
`IntegrationSpecification`\<`Services`, `DatabaseKey`\>
|
|
76
|
+
|
|
77
|
+
***
|
|
78
|
+
|
|
79
|
+
### intercept
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
intercept: InterceptMethod<IntegrationSpecification<Services, DatabaseKey>>;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Defined in: [src/model/chain/builder.ts:244](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L244)
|
|
86
|
+
|
|
87
|
+
Declare outgoing calls — a contract, a list, a composite, or an inline request + response pair.
|
|
88
|
+
|
|
89
|
+
***
|
|
90
|
+
|
|
91
|
+
### seed
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
seed: (file, options?) => IntegrationSpecification<Services, DatabaseKey>;
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Defined in: [src/model/chain/builder.ts:246](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L246)
|
|
98
|
+
|
|
99
|
+
Queue a SQL seed file from `_seeds/` to run before the call.
|
|
100
|
+
|
|
101
|
+
#### Parameters
|
|
102
|
+
|
|
103
|
+
| Parameter | Type |
|
|
104
|
+
| ------ | ------ |
|
|
105
|
+
| `file` | `string` |
|
|
106
|
+
| `options?` | \{ `database?`: `DatabaseKey`; \} |
|
|
107
|
+
| `options.database?` | `DatabaseKey` |
|
|
108
|
+
|
|
109
|
+
#### Returns
|
|
110
|
+
|
|
111
|
+
`IntegrationSpecification`\<`Services`, `DatabaseKey`\>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: IntegrationSpecificationOptions\<Services\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type IntegrationSpecificationOptions<Services> = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/facets/integration/integration.specification.ts:17](https://github.com/jterrazz/package-test/blob/main/src/facets/integration/integration.specification.ts#L17)
|
|
9
|
+
|
|
10
|
+
Options for startIntegration \| specification.integration.
|
|
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/integration/integration.specification.ts:19](https://github.com/jterrazz/package-test/blob/main/src/facets/integration/integration.specification.ts#L19)
|
|
27
|
+
|
|
28
|
+
Project-root override — see the `root` option of `specification.api()`.
|
|
29
|
+
|
|
30
|
+
***
|
|
31
|
+
|
|
32
|
+
### services?
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
optional services?: Services;
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Defined in: [src/facets/integration/integration.specification.ts:25](https://github.com/jterrazz/package-test/blob/main/src/facets/integration/integration.specification.ts#L25)
|
|
39
|
+
|
|
40
|
+
Named infrastructure the module is specified AGAINST — a real database,
|
|
41
|
+
a real cache, a `process()` it talks to. Omit it for the other half of
|
|
42
|
+
the facet: a pure module whose oracle is a golden.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: Intercept
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type Intercept = (contracts, options?) => Promise<InterceptScope> & (request, response, options?) => Promise<InterceptScope>;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/contracts/intercept.ts:54](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/intercept.ts#L54)
|
|
9
|
+
|
|
10
|
+
The module-scope network double. Resolves once the engine is listening —
|
|
11
|
+
which is why it is a promise, and why the canonical form awaits it:
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
await using _ = await intercept(http.get(url), http.json({ ok: true }));
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Without that `await` the subject could reach the real network before the
|
|
18
|
+
first handler is in place, so the shape refuses the racy spelling: a promise
|
|
19
|
+
is not an `AsyncDisposable`, and the compiler says so.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: InterceptOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type InterceptOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/contracts/intercept.ts:29](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/intercept.ts#L29)
|
|
9
|
+
|
|
10
|
+
What a scope may state about the network it declares.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### origin?
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
optional origin?: string;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/contracts/intercept.ts:39](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/intercept.ts#L39)
|
|
21
|
+
|
|
22
|
+
The base a RELATIVE request resolves against, for the life of the scope.
|
|
23
|
+
|
|
24
|
+
A module that calls `fetch('/api/posts')` is browser code: under node the
|
|
25
|
+
URL cannot be parsed at all, so the request fails before any contract can
|
|
26
|
+
answer it and the test's only way out was to replace `fetch` itself. With
|
|
27
|
+
an origin stated, the relative call resolves here and the declared
|
|
28
|
+
contracts — path form or absolute — match it as they would any other.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: InterceptScope
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type InterceptScope = AsyncDisposable;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/contracts/intercept.ts:26](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/intercept.ts#L26)
|
|
9
|
+
|
|
10
|
+
One block's worth of declared network. Disposed at the end of the scope that
|
|
11
|
+
declared it: the handlers are dropped, and an unmatched request is thrown.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: IsolationStrategy
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type IsolationStrategy = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/isolation.port.ts:11](https://github.com/jterrazz/package-test/blob/main/src/model/ports/isolation.port.ts#L11)
|
|
9
|
+
|
|
10
|
+
Strategy for isolating service state across parallel test workers.
|
|
11
|
+
|
|
12
|
+
Each service handle provides an isolation strategy. The framework
|
|
13
|
+
calls `acquire()` once per vitest worker, `reset()` before each
|
|
14
|
+
`spec.run()`, and `release()` when the worker shuts down.
|
|
15
|
+
|
|
16
|
+
Implement this interface to support new service types (e.g. MongoDB,
|
|
17
|
+
Elasticsearch, S3).
|
|
18
|
+
|
|
19
|
+
## Properties
|
|
20
|
+
|
|
21
|
+
### acquire
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
acquire: (workerId) => Promise<void>;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Defined in: [src/model/ports/isolation.port.ts:19](https://github.com/jterrazz/package-test/blob/main/src/model/ports/isolation.port.ts#L19)
|
|
28
|
+
|
|
29
|
+
Create an isolated namespace for this worker.
|
|
30
|
+
Called once when the worker starts — e.g. clone a template database,
|
|
31
|
+
set a Redis key prefix.
|
|
32
|
+
|
|
33
|
+
#### Parameters
|
|
34
|
+
|
|
35
|
+
| Parameter | Type | Description |
|
|
36
|
+
| ------ | ------ | ------ |
|
|
37
|
+
| `workerId` | `string` | Unique identifier for this vitest worker. |
|
|
38
|
+
|
|
39
|
+
#### Returns
|
|
40
|
+
|
|
41
|
+
`Promise`\<`void`\>
|
|
42
|
+
|
|
43
|
+
***
|
|
44
|
+
|
|
45
|
+
### release
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
release: () => Promise<void>;
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Defined in: [src/model/ports/isolation.port.ts:31](https://github.com/jterrazz/package-test/blob/main/src/model/ports/isolation.port.ts#L31)
|
|
52
|
+
|
|
53
|
+
Tear down the isolated namespace.
|
|
54
|
+
Called once when the worker shuts down — e.g. drop the cloned database.
|
|
55
|
+
|
|
56
|
+
#### Returns
|
|
57
|
+
|
|
58
|
+
`Promise`\<`void`\>
|
|
59
|
+
|
|
60
|
+
***
|
|
61
|
+
|
|
62
|
+
### reset
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
reset: () => Promise<void>;
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Defined in: [src/model/ports/isolation.port.ts:25](https://github.com/jterrazz/package-test/blob/main/src/model/ports/isolation.port.ts#L25)
|
|
69
|
+
|
|
70
|
+
Fast reset within the namespace between `spec.run()` calls.
|
|
71
|
+
E.g. truncate tables (without dropping the database).
|
|
72
|
+
|
|
73
|
+
#### Returns
|
|
74
|
+
|
|
75
|
+
`Promise`\<`void`\>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: JobHandle
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type JobHandle = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/chain/builder.ts:36](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L36)
|
|
9
|
+
|
|
10
|
+
A named job that can be triggered via jobs.trigger().
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### execute
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
execute: () => Promise<void>;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/chain/builder.ts:38](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L38)
|
|
21
|
+
|
|
22
|
+
#### Returns
|
|
23
|
+
|
|
24
|
+
`Promise`\<`void`\>
|
|
25
|
+
|
|
26
|
+
***
|
|
27
|
+
|
|
28
|
+
### name
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
name: string;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Defined in: [src/model/chain/builder.ts:37](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L37)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: JobsHandle\<DatabaseKey\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type JobsHandle<DatabaseKey> = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/facets/jobs/jobs.specification.ts:37](https://github.com/jterrazz/package-test/blob/main/src/facets/jobs/jobs.specification.ts#L37)
|
|
9
|
+
|
|
10
|
+
The record returned by startJobs \| specification.jobs. Destructure
|
|
11
|
+
with the canonical names (CONVENTIONS A3):
|
|
12
|
+
|
|
13
|
+
const { jobs, cleanup } = await specification.jobs(…);
|
|
14
|
+
|
|
15
|
+
## Type Parameters
|
|
16
|
+
|
|
17
|
+
| Type Parameter | Default type |
|
|
18
|
+
| ------ | ------ |
|
|
19
|
+
| `DatabaseKey` *extends* `string` | `string` |
|
|
20
|
+
|
|
21
|
+
## Properties
|
|
22
|
+
|
|
23
|
+
### cleanup
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
cleanup: () => Promise<void>;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Defined in: [src/facets/jobs/jobs.specification.ts:39](https://github.com/jterrazz/package-test/blob/main/src/facets/jobs/jobs.specification.ts#L39)
|
|
30
|
+
|
|
31
|
+
Stop all infrastructure started by this specification.
|
|
32
|
+
|
|
33
|
+
#### Returns
|
|
34
|
+
|
|
35
|
+
`Promise`\<`void`\>
|
|
36
|
+
|
|
37
|
+
***
|
|
38
|
+
|
|
39
|
+
### jobs
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
jobs: JobsSpecification<DatabaseKey>;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Defined in: [src/facets/jobs/jobs.specification.ts:40](https://github.com/jterrazz/package-test/blob/main/src/facets/jobs/jobs.specification.ts#L40)
|
|
46
|
+
|
|
47
|
+
***
|
|
48
|
+
|
|
49
|
+
### orchestrator
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
orchestrator: null | Orchestrator;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Defined in: [src/facets/jobs/jobs.specification.ts:42](https://github.com/jterrazz/package-test/blob/main/src/facets/jobs/jobs.specification.ts#L42)
|
|
56
|
+
|
|
57
|
+
The orchestrator managing the test infrastructure lifecycle.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: JobsResult
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type JobsResult = Omit<BaseResult, "directory" | "file">;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/chain/builder.ts:214](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L214)
|
|
9
|
+
|
|
10
|
+
What a triggered job HANDS BACK.
|
|
11
|
+
|
|
12
|
+
A job writes to a database, a cache, a queue — never to a working directory
|
|
13
|
+
the spec then walks, because a job has none: it runs in this process, where
|
|
14
|
+
the only filesystem is the repository's. So the two accessors that read one
|
|
15
|
+
(`file()`, `directory()`) are not on this result. A pipeline that really
|
|
16
|
+
produces files is a binary, and `specification.cli()` is its facet.
|