@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,16 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: DatabaseKeys\<Services\>
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type DatabaseKeys<Services> = { [K in keyof Services]: Services[K] extends DatabasePort ? K & string : never }[keyof Services];
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/chain/services.ts:19](https://github.com/jterrazz/package-test/blob/main/src/model/chain/services.ts#L19)
|
|
9
|
+
|
|
10
|
+
Keys of a services record whose handles are databases.
|
|
11
|
+
|
|
12
|
+
## Type Parameters
|
|
13
|
+
|
|
14
|
+
| Type Parameter |
|
|
15
|
+
| ------ |
|
|
16
|
+
| `Services` *extends* [`ServiceRecord`](ServiceRecord.md) |
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: DatabasePort
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type DatabasePort = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/database.port.ts:5](https://github.com/jterrazz/package-test/blob/main/src/model/ports/database.port.ts#L5)
|
|
9
|
+
|
|
10
|
+
Abstract database interface for specification runners.
|
|
11
|
+
Implement this to plug in your database stack (e.g. Postgres, SQLite).
|
|
12
|
+
|
|
13
|
+
## Properties
|
|
14
|
+
|
|
15
|
+
### query
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
query: (table, columns) => Promise<unknown[][]>;
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Defined in: [src/model/ports/database.port.ts:10](https://github.com/jterrazz/package-test/blob/main/src/model/ports/database.port.ts#L10)
|
|
22
|
+
|
|
23
|
+
Query a table and return rows as arrays of values.
|
|
24
|
+
|
|
25
|
+
#### Parameters
|
|
26
|
+
|
|
27
|
+
| Parameter | Type |
|
|
28
|
+
| ------ | ------ |
|
|
29
|
+
| `table` | `string` |
|
|
30
|
+
| `columns` | `string`[] |
|
|
31
|
+
|
|
32
|
+
#### Returns
|
|
33
|
+
|
|
34
|
+
`Promise`\<`unknown`[][]\>
|
|
35
|
+
|
|
36
|
+
***
|
|
37
|
+
|
|
38
|
+
### reset
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
reset: () => Promise<void>;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Defined in: [src/model/ports/database.port.ts:13](https://github.com/jterrazz/package-test/blob/main/src/model/ports/database.port.ts#L13)
|
|
45
|
+
|
|
46
|
+
Reset database to clean state between tests.
|
|
47
|
+
|
|
48
|
+
#### Returns
|
|
49
|
+
|
|
50
|
+
`Promise`\<`void`\>
|
|
51
|
+
|
|
52
|
+
***
|
|
53
|
+
|
|
54
|
+
### seed
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
seed: (sql) => Promise<void>;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Defined in: [src/model/ports/database.port.ts:7](https://github.com/jterrazz/package-test/blob/main/src/model/ports/database.port.ts#L7)
|
|
61
|
+
|
|
62
|
+
Execute raw SQL (for seeding test data).
|
|
63
|
+
|
|
64
|
+
#### Parameters
|
|
65
|
+
|
|
66
|
+
| Parameter | Type |
|
|
67
|
+
| ------ | ------ |
|
|
68
|
+
| `sql` | `string` |
|
|
69
|
+
|
|
70
|
+
#### Returns
|
|
71
|
+
|
|
72
|
+
`Promise`\<`void`\>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: DeviceOpenOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type DeviceOpenOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/device.port.ts:89](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L89)
|
|
9
|
+
|
|
10
|
+
Per-open options forwarded to the device session.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### bundleId
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
bundleId: string;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/ports/device.port.ts:91](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L91)
|
|
21
|
+
|
|
22
|
+
The app under test — terminated and relaunched for a fresh, deterministic state.
|
|
23
|
+
|
|
24
|
+
***
|
|
25
|
+
|
|
26
|
+
### deepLink?
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
optional deepLink?: string;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Defined in: [src/model/ports/device.port.ts:93](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L93)
|
|
33
|
+
|
|
34
|
+
Deep link applied after the relaunch (`news://events`); absent opens the app plainly.
|
|
35
|
+
|
|
36
|
+
***
|
|
37
|
+
|
|
38
|
+
### scenario?
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
optional scenario?: MobileScenario;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Defined in: [src/model/ports/device.port.ts:95](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L95)
|
|
45
|
+
|
|
46
|
+
The interaction scenario to run after launch; the capture reflects the final state.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: DevicePort
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type DevicePort = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/device.port.ts:123](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L123)
|
|
9
|
+
|
|
10
|
+
Abstract device interface for the mobile specification runner.
|
|
11
|
+
One implementation lives in `integrations/appium/` — a single driver
|
|
12
|
+
session per runner, created on the first `open()` and reused; each open
|
|
13
|
+
terminates and relaunches the app for a deterministic fresh state.
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
|
|
17
|
+
### close
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
close: () => Promise<void>;
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Defined in: [src/model/ports/device.port.ts:125](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L125)
|
|
24
|
+
|
|
25
|
+
End the driver session (idempotent).
|
|
26
|
+
|
|
27
|
+
#### Returns
|
|
28
|
+
|
|
29
|
+
`Promise`\<`void`\>
|
|
30
|
+
|
|
31
|
+
***
|
|
32
|
+
|
|
33
|
+
### open
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
open: (options) => Promise<DeviceScreen>;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Defined in: [src/model/ports/device.port.ts:127](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L127)
|
|
40
|
+
|
|
41
|
+
Relaunch the app, apply the deep link, run the scenario, capture the final screen.
|
|
42
|
+
|
|
43
|
+
#### Parameters
|
|
44
|
+
|
|
45
|
+
| Parameter | Type |
|
|
46
|
+
| ------ | ------ |
|
|
47
|
+
| `options` | [`DeviceOpenOptions`](DeviceOpenOptions.md) |
|
|
48
|
+
|
|
49
|
+
#### Returns
|
|
50
|
+
|
|
51
|
+
`Promise`\<[`DeviceScreen`](DeviceScreen.md)\>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: DeviceScreen
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type DeviceScreen = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/device.port.ts:83](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L83)
|
|
9
|
+
|
|
10
|
+
The screen captured by a device open — the FINAL state when a scenario
|
|
11
|
+
ran. The tree is the projected page source; `texts` are the visible
|
|
12
|
+
labels/values in document order, consecutive duplicates collapsed.
|
|
13
|
+
|
|
14
|
+
## Properties
|
|
15
|
+
|
|
16
|
+
### texts
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
texts: string[];
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Defined in: [src/model/ports/device.port.ts:84](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L84)
|
|
23
|
+
|
|
24
|
+
***
|
|
25
|
+
|
|
26
|
+
### tree
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
tree: ScreenNode;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Defined in: [src/model/ports/device.port.ts:85](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L85)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: DeviceTimeouts
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type DeviceTimeouts = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/device.port.ts:104](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L104)
|
|
9
|
+
|
|
10
|
+
How long a device session waits, in milliseconds. Every field is optional
|
|
11
|
+
and falls back to the framework's own default, so a runner states only the
|
|
12
|
+
wait it needs to move — the defaults suit a release build, and a project
|
|
13
|
+
that drives a DEV build pays for its bundler's cold boot.
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
|
|
17
|
+
### action?
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
optional action?: number;
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Defined in: [src/model/ports/device.port.ts:109](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L109)
|
|
24
|
+
|
|
25
|
+
How long every verb polls for a visible match before refusing.
|
|
26
|
+
Default: `30_000` — enough for a cold app boot on a release bundle.
|
|
27
|
+
|
|
28
|
+
***
|
|
29
|
+
|
|
30
|
+
### launch?
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
optional launch?: number;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Defined in: [src/model/ports/device.port.ts:114](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L114)
|
|
37
|
+
|
|
38
|
+
How long the FIRST session waits for WebDriverAgent to build and
|
|
39
|
+
launch on the simulator. Default: `240_000`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: DockerSpecConfig
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type DockerSpecConfig = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/chain/builder.ts:47](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L47)
|
|
9
|
+
|
|
10
|
+
Configuration for the docker-aware cli mode. When set on
|
|
11
|
+
[SpecificationConfig](SpecificationConfig.md), the cli runner generates a test-run id, injects
|
|
12
|
+
it into the child env under `envVar`, then queries Docker for every
|
|
13
|
+
container carrying `testRunLabel=<id>` after the command exits.
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
|
|
17
|
+
### envVar
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
envVar: string;
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Defined in: [src/model/chain/builder.ts:48](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L48)
|
|
24
|
+
|
|
25
|
+
***
|
|
26
|
+
|
|
27
|
+
### nameLabel
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
nameLabel: string;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Defined in: [src/model/chain/builder.ts:49](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L49)
|
|
34
|
+
|
|
35
|
+
***
|
|
36
|
+
|
|
37
|
+
### testRunLabel
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
testRunLabel: string;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Defined in: [src/model/chain/builder.ts:50](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L50)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: DomMount
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type DomMount = (container) => (() => void) | void;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/seams/vitest-browser/ui.ts:18](https://github.com/jterrazz/package-test/blob/main/src/seams/vitest-browser/ui.ts#L18)
|
|
9
|
+
|
|
10
|
+
A vanilla DOM subject: a function handed the container it must fill. Its
|
|
11
|
+
optional return is the teardown, the way a DOM library states one.
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
|
|
15
|
+
| Parameter | Type |
|
|
16
|
+
| ------ | ------ |
|
|
17
|
+
| `container` | `HTMLElement` |
|
|
18
|
+
|
|
19
|
+
## Returns
|
|
20
|
+
|
|
21
|
+
(() => `void`) \| `void`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ElementKind
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ElementKind =
|
|
6
|
+
| "button"
|
|
7
|
+
| "dialog"
|
|
8
|
+
| "field"
|
|
9
|
+
| "heading"
|
|
10
|
+
| "link"
|
|
11
|
+
| "listitem"
|
|
12
|
+
| "option"
|
|
13
|
+
| "row"
|
|
14
|
+
| "status"
|
|
15
|
+
| "table"
|
|
16
|
+
| "testId"
|
|
17
|
+
| "text";
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/ports/browser.port.ts:24](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L24)
|
|
21
|
+
|
|
22
|
+
The interactive/textual element kinds — what a visitor actually acts on.
|
|
23
|
+
|
|
24
|
+
`dialog`, `status`, `table`, `row`, `listitem` and `option` are ARIA roles
|
|
25
|
+
like the landmarks, but they are not CONTAINERS of a page: they are things a
|
|
26
|
+
visitor reads and acts on, and they are the roles the estate's UI specs were
|
|
27
|
+
already reaching for through `getByRole` or, worse, through `.first()`.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ElementMatch
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ElementMatch = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/browser.port.ts:100](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L100)
|
|
9
|
+
|
|
10
|
+
One candidate captured when a descriptor matched more than one element —
|
|
11
|
+
the evidence the ambiguity error enumerates so the author can disambiguate
|
|
12
|
+
without opening a browser.
|
|
13
|
+
|
|
14
|
+
## Properties
|
|
15
|
+
|
|
16
|
+
### accessibleName?
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
optional accessibleName?: string;
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Defined in: [src/model/ports/browser.port.ts:106](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L106)
|
|
23
|
+
|
|
24
|
+
The accessible name, when it differs from the text — an `aria-label` is
|
|
25
|
+
what a role descriptor MATCHED on, and printing the text alone sends the
|
|
26
|
+
author to disambiguate a name they cannot see.
|
|
27
|
+
|
|
28
|
+
***
|
|
29
|
+
|
|
30
|
+
### context?
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
optional context?: string;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Defined in: [src/model/ports/browser.port.ts:108](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L108)
|
|
37
|
+
|
|
38
|
+
Nearest landmark ancestor (`nav`, `footer`, `main`…), when there is one.
|
|
39
|
+
|
|
40
|
+
***
|
|
41
|
+
|
|
42
|
+
### detail?
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
optional detail?: string;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Defined in: [src/model/ports/browser.port.ts:110](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L110)
|
|
49
|
+
|
|
50
|
+
The attribute that disambiguates most — `href` for links, `name` for fields.
|
|
51
|
+
|
|
52
|
+
***
|
|
53
|
+
|
|
54
|
+
### tag
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
tag: string;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Defined in: [src/model/ports/browser.port.ts:112](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L112)
|
|
61
|
+
|
|
62
|
+
Tag name, lower-cased.
|
|
63
|
+
|
|
64
|
+
***
|
|
65
|
+
|
|
66
|
+
### text
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
text: string;
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Defined in: [src/model/ports/browser.port.ts:114](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L114)
|
|
73
|
+
|
|
74
|
+
Text content, whitespace-collapsed and truncated.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ElementOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ElementOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/elements/elements.ts:16](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L16)
|
|
9
|
+
|
|
10
|
+
Options accepted by every named descriptor.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### exact?
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
optional exact?: boolean;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/elements/elements.ts:27](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L27)
|
|
21
|
+
|
|
22
|
+
Match the accessible name as a whole string. `true` by default since
|
|
23
|
+
16.0.
|
|
24
|
+
|
|
25
|
+
A substring match is what a person does NOT mean: `link('Articles')`
|
|
26
|
+
designated "Read Articles" as readily as "Articles", so a test could pass
|
|
27
|
+
for years against the element beside the one it named. `{ exact: false }`
|
|
28
|
+
is the opt-out, for a name that genuinely carries a variable part the
|
|
29
|
+
test does not control.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ElementRef
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ElementRef = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/browser.port.ts:47](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L47)
|
|
9
|
+
|
|
10
|
+
A user-facing element descriptor — pure data, built by the element
|
|
11
|
+
vocabulary (`button()`, `link()`, `field()`, …) and translated into
|
|
12
|
+
concrete locators by the browser integration. CSS/XPath selectors are
|
|
13
|
+
deliberately not expressible: user-facing elements are the only surface.
|
|
14
|
+
|
|
15
|
+
A descriptor must designate exactly ONE element at action time; see
|
|
16
|
+
[ElementMatch](ElementMatch.md) and CONVENTIONS W3.
|
|
17
|
+
|
|
18
|
+
## Properties
|
|
19
|
+
|
|
20
|
+
### disabled?
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
optional disabled?: boolean;
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Defined in: [src/model/ports/browser.port.ts:71](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L71)
|
|
27
|
+
|
|
28
|
+
Narrows to "and it is (not) accepting input" — built by `disabled(x)` /
|
|
29
|
+
`enabled(x)`. Like `focused`, a STATE the vocabulary can already name the
|
|
30
|
+
element of; unlike it, one the ARIA tree carries too (`[disabled]`), so
|
|
31
|
+
this modifier is what names the ONE control a test is about, and it
|
|
32
|
+
reaches the direction a behavioural substitute cannot — clicking a
|
|
33
|
+
disabled control is a timeout, never an answer.
|
|
34
|
+
|
|
35
|
+
***
|
|
36
|
+
|
|
37
|
+
### exact?
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
optional exact?: boolean;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Defined in: [src/model/ports/browser.port.ts:56](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L56)
|
|
44
|
+
|
|
45
|
+
Match the accessible name as a whole string rather than a substring.
|
|
46
|
+
|
|
47
|
+
ABSENT means "the author said nothing", which the adapters read as the
|
|
48
|
+
default — exact — while keeping the information that no choice was made,
|
|
49
|
+
so a name that matches only as a substring can be reported once with the
|
|
50
|
+
transitional warning.
|
|
51
|
+
|
|
52
|
+
***
|
|
53
|
+
|
|
54
|
+
### focused?
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
optional focused?: boolean;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Defined in: [src/model/ports/browser.port.ts:62](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L62)
|
|
61
|
+
|
|
62
|
+
Assert about the element's FOCUS rather than its presence — built by
|
|
63
|
+
`focused(element)`. The accessibility tree carries no focus state, so
|
|
64
|
+
where the keyboard is cannot be goldened; it is asserted by a verb.
|
|
65
|
+
|
|
66
|
+
***
|
|
67
|
+
|
|
68
|
+
### kind
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
kind: ElementKind | LandmarkKind;
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Defined in: [src/model/ports/browser.port.ts:72](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L72)
|
|
75
|
+
|
|
76
|
+
***
|
|
77
|
+
|
|
78
|
+
### name?
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
optional name?: string;
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Defined in: [src/model/ports/browser.port.ts:74](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L74)
|
|
85
|
+
|
|
86
|
+
Landmarks may be anonymous (`main()`, `banner()`); everything else is named.
|
|
87
|
+
|
|
88
|
+
***
|
|
89
|
+
|
|
90
|
+
### scope?
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
optional scope?: ElementRef;
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Defined in: [src/model/ports/browser.port.ts:92](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L92)
|
|
97
|
+
|
|
98
|
+
Restrict the search to the elements of another descriptor — built by
|
|
99
|
+
`within(scope, target)`. Chains: a scope may itself carry a scope.
|
|
100
|
+
|
|
101
|
+
***
|
|
102
|
+
|
|
103
|
+
### selected?
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
optional selected?: boolean;
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Defined in: [src/model/ports/browser.port.ts:81](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L81)
|
|
110
|
+
|
|
111
|
+
Narrows to "and it is (not) the chosen one" — built by `selected(x)`.
|
|
112
|
+
An option of a COLLAPSED select is in the tree and in the document, and
|
|
113
|
+
it has no box on the screen, so this facet of it is read from the node
|
|
114
|
+
(`:checked`) rather than from what a visitor could point at.
|
|
115
|
+
|
|
116
|
+
***
|
|
117
|
+
|
|
118
|
+
### value?
|
|
119
|
+
|
|
120
|
+
```ts
|
|
121
|
+
optional value?: string;
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Defined in: [src/model/ports/browser.port.ts:87](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L87)
|
|
125
|
+
|
|
126
|
+
The value the field must hold — built by `valued(field('Title'), '…')`.
|
|
127
|
+
A field's value is a PROPERTY of the node: a controlled input's `value`
|
|
128
|
+
attribute never moves, so nothing but the live value answers for it.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: ExecOptions
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type ExecOptions = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/ports/cli.port.ts:19](https://github.com/jterrazz/package-test/blob/main/src/model/ports/cli.port.ts#L19)
|
|
9
|
+
|
|
10
|
+
Options for the long-running form of `.exec()` (CONVENTIONS B2). When
|
|
11
|
+
either option is present the process is spawned and observed: it resolves
|
|
12
|
+
as soon as `waitFor` appears in stdout/stderr, and is killed when `timeout`
|
|
13
|
+
elapses (exit code 124).
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
|
|
17
|
+
### timeout?
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
optional timeout?: number;
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Defined in: [src/model/ports/cli.port.ts:23](https://github.com/jterrazz/package-test/blob/main/src/model/ports/cli.port.ts#L23)
|
|
24
|
+
|
|
25
|
+
Kill the process after this many milliseconds. Defaults to 10 000.
|
|
26
|
+
|
|
27
|
+
***
|
|
28
|
+
|
|
29
|
+
### waitFor?
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
optional waitFor?: string;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Defined in: [src/model/ports/cli.port.ts:21](https://github.com/jterrazz/package-test/blob/main/src/model/ports/cli.port.ts#L21)
|
|
36
|
+
|
|
37
|
+
Resolve (exit code 0) when stdout/stderr contains this string.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!-- GENERATED by `typescript docs` — DO NOT EDIT -->
|
|
2
|
+
# Type Alias: FileAccessor
|
|
3
|
+
|
|
4
|
+
```ts
|
|
5
|
+
type FileAccessor = object;
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Defined in: [src/model/result/result.ts:13](https://github.com/jterrazz/package-test/blob/main/src/model/result/result.ts#L13)
|
|
9
|
+
|
|
10
|
+
Read-only handle to a single file produced by a spec action.
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
### content
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
readonly content: string;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [src/model/result/result.ts:15](https://github.com/jterrazz/package-test/blob/main/src/model/result/result.ts#L15)
|
|
21
|
+
|
|
22
|
+
The UTF-8 text content. Throws if the file does not exist.
|
|
23
|
+
|
|
24
|
+
***
|
|
25
|
+
|
|
26
|
+
### exists
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
readonly exists: boolean;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Defined in: [src/model/result/result.ts:16](https://github.com/jterrazz/package-test/blob/main/src/model/result/result.ts#L16)
|
|
33
|
+
|
|
34
|
+
***
|
|
35
|
+
|
|
36
|
+
### grep
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
grep: (pattern) => TextAccessor;
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Defined in: [src/model/result/result.ts:18](https://github.com/jterrazz/package-test/blob/main/src/model/result/result.ts#L18)
|
|
43
|
+
|
|
44
|
+
The file text as a [TextAccessor](../interfaces/TextAccessor.md), keeping only blocks matching `pattern`.
|
|
45
|
+
|
|
46
|
+
#### Parameters
|
|
47
|
+
|
|
48
|
+
| Parameter | Type |
|
|
49
|
+
| ------ | ------ |
|
|
50
|
+
| `pattern` | `string` |
|
|
51
|
+
|
|
52
|
+
#### Returns
|
|
53
|
+
|
|
54
|
+
[`TextAccessor`](../interfaces/TextAccessor.md)
|