@jterrazz/test 16.1.1 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/README.md +45 -171
  2. package/dist/browser/index.js +2 -2980
  3. package/dist/browser/services.js +2 -0
  4. package/dist/browser/stubs.js +2 -0
  5. package/dist/checker.d.ts +6 -1
  6. package/dist/checker.js +4534 -2628
  7. package/dist/config.d.ts +40 -0
  8. package/dist/config.js +309 -0
  9. package/dist/in-place.global-setup.d.ts +11 -0
  10. package/dist/in-place.global-setup.js +21 -0
  11. package/dist/index.d.ts +1653 -3004
  12. package/dist/index.js +5226 -3845
  13. package/dist/mobile-session.global-setup.d.ts +14 -0
  14. package/dist/mobile-session.global-setup.js +31 -0
  15. package/dist/oxlint.cjs +6069 -5634
  16. package/dist/oxlint.d.cts +43 -7212
  17. package/dist/oxlint.d.ts +43 -7212
  18. package/dist/oxlint.js +6127 -5693
  19. package/dist/route-coverage.global-setup.d.ts +42 -0
  20. package/dist/route-coverage.global-setup.js +2 -0
  21. package/dist/services.d.ts +3 -0
  22. package/dist/services.global-setup.d.ts +43 -0
  23. package/dist/services.global-setup.js +2 -0
  24. package/dist/services.js +597 -0
  25. package/dist/shared-appium.adapter.js +428 -0
  26. package/dist/shared-artifacts.js +32 -0
  27. package/dist/shared-chapter.js +7 -0
  28. package/dist/shared-container.port.d.ts +31 -0
  29. package/dist/shared-derived-projects.js +58 -0
  30. package/dist/shared-device.port.d.ts +189 -0
  31. package/dist/shared-exchange.js +447 -0
  32. package/dist/shared-in-place.js +172 -0
  33. package/dist/shared-index.browser.js +3191 -0
  34. package/dist/shared-index.services.d.ts +346 -0
  35. package/dist/shared-index.stubs.d.ts +287 -0
  36. package/dist/shared-json-shape.js +17 -0
  37. package/dist/shared-landmarks.js +71 -0
  38. package/dist/shared-ledger.js +68 -0
  39. package/dist/shared-literate-plugin.js +183 -0
  40. package/dist/shared-manifest.js +1321 -0
  41. package/dist/shared-pause.js +11 -0
  42. package/dist/shared-peer.js +88 -0
  43. package/dist/shared-playwright.adapter.js +330 -0
  44. package/dist/shared-process.adapter.js +74 -0
  45. package/dist/shared-refusal.js +35 -0
  46. package/dist/shared-resolve.js +24 -0
  47. package/dist/shared-route-coverage.global-setup.js +187 -0
  48. package/dist/shared-scenario-failure.js +198 -0
  49. package/dist/shared-serve.js +365 -0
  50. package/dist/shared-service-images.js +10 -0
  51. package/dist/shared-services.global-setup.js +179 -0
  52. package/dist/shared-session-ledger.js +301 -0
  53. package/dist/shared-setup-entry.js +12 -0
  54. package/dist/shared-source-scan.js +133 -0
  55. package/dist/shared-spec-document.js +365 -0
  56. package/dist/shared-specifications.js +26 -0
  57. package/dist/shared-stream-body.js +130 -0
  58. package/dist/shared-stub-server.js +190 -0
  59. package/dist/shared-temp-root.global-setup.js +80 -0
  60. package/dist/shared-test-baseline.js +26 -0
  61. package/dist/shared-test-section.js +58 -0
  62. package/dist/shared-testcontainers.adapter.js +203 -0
  63. package/dist/shared-tokens.js +55 -0
  64. package/dist/shared-yaml-document.js +119 -0
  65. package/dist/stubs.d.ts +2 -0
  66. package/dist/stubs.js +657 -0
  67. package/dist/temp-root.global-setup.d.ts +7 -0
  68. package/dist/temp-root.global-setup.js +2 -0
  69. package/dist/vitest.d.ts +97 -163
  70. package/dist/vitest.js +373 -525
  71. package/docs/README.md +82 -36
  72. package/docs/concepts/architecture.md +118 -0
  73. package/docs/concepts/conventions.md +333 -0
  74. package/docs/guides/api-specs.md +374 -0
  75. package/docs/guides/cli-specs.md +564 -0
  76. package/docs/guides/component-specs.md +252 -0
  77. package/docs/guides/develop.md +94 -0
  78. package/docs/guides/integration-specs.md +181 -0
  79. package/docs/guides/job-specs.md +180 -0
  80. package/docs/guides/lint-specs.md +174 -0
  81. package/docs/guides/mobile-specs.md +319 -0
  82. package/docs/guides/module-tests.md +149 -0
  83. package/docs/guides/release.md +43 -0
  84. package/docs/guides/spec-documents.md +189 -0
  85. package/docs/guides/website-specs.md +413 -0
  86. package/docs/reference/assertions.md +345 -0
  87. package/docs/reference/glossary.md +20 -0
  88. package/docs/reference/linting.md +483 -0
  89. package/docs/reference/services.md +236 -0
  90. package/docs/reference/stubs.md +498 -0
  91. package/docs/reference/time-and-doubles.md +137 -0
  92. package/docs/reference/tokens.md +258 -0
  93. package/docs/reference/visitor.md +221 -0
  94. package/docs/start/getting-started.md +187 -0
  95. package/docs/start/set-up-a-project.md +214 -0
  96. package/package.json +50 -30
  97. package/schema/spec.schema.json +43 -17
  98. package/dist/appium.adapter.js +0 -489
  99. package/dist/artifacts.js +0 -32
  100. package/dist/fixtures.js +0 -110
  101. package/dist/literate.js +0 -1747
  102. package/dist/match.js +0 -804
  103. package/dist/playwright.adapter.js +0 -438
  104. package/dist/server.js +0 -160
  105. package/dist/stream.js +0 -321
  106. package/dist/substring-warning.js +0 -282
  107. package/docs/01-architecture.md +0 -95
  108. package/docs/02-developing.md +0 -351
  109. package/docs/03-testing.md +0 -495
  110. package/docs/04-operating.md +0 -101
  111. package/docs/05-module-tests.md +0 -152
  112. package/docs/06-integration.md +0 -180
  113. package/docs/07-component.md +0 -246
  114. package/docs/08-website.md +0 -404
  115. package/docs/09-mobile.md +0 -270
  116. package/docs/10-api.md +0 -264
  117. package/docs/11-jobs.md +0 -157
  118. package/docs/12-cli.md +0 -677
  119. package/docs/13-elements.md +0 -248
  120. package/docs/14-assertions.md +0 -314
  121. package/docs/15-tokens.md +0 -253
  122. package/docs/16-contracts.md +0 -438
  123. package/docs/17-services.md +0 -188
  124. package/docs/18-conventions.md +0 -332
  125. package/docs/19-linting.md +0 -512
  126. package/docs/decisions/001-v9-conventions-on-three-channels.md +0 -50
  127. package/docs/decisions/002-the-statique-channel-holds-only-what-upstream-does-not.md +0 -49
  128. package/docs/decisions/003-a-rendered-component-is-a-facet-on-vitest-browser-mode.md +0 -84
  129. package/docs/decisions/004-a-module-against-real-services-or-a-golden-is-the-integration-facet.md +0 -81
  130. package/docs/decisions/005-the-doubles-ladder-is-closed.md +0 -86
  131. package/docs/decisions/006-the-catalogue-reaches-a-file-by-its-role.md +0 -245
  132. package/docs/decisions/007-compose-mode-leaves-the-package.md +0 -53
  133. package/docs/decisions/008-vitest-5-node-24-and-the-native-seams-as-optional-peers.md +0 -75
  134. package/docs/decisions/_template.md +0 -22
  135. package/docs/reference/classes/Matcher.md +0 -120
  136. package/docs/reference/classes/ProcessHandle.md +0 -368
  137. package/docs/reference/functions/defineContract.md +0 -39
  138. package/docs/reference/functions/defineContracts.md +0 -36
  139. package/docs/reference/functions/disabled.md +0 -28
  140. package/docs/reference/functions/enabled.md +0 -20
  141. package/docs/reference/functions/focused.md +0 -26
  142. package/docs/reference/functions/mockOf.md +0 -79
  143. package/docs/reference/functions/postgres.md +0 -31
  144. package/docs/reference/functions/process.md +0 -33
  145. package/docs/reference/functions/redis.md +0 -28
  146. package/docs/reference/functions/required.md +0 -41
  147. package/docs/reference/functions/selected.md +0 -26
  148. package/docs/reference/functions/sqlite.md +0 -33
  149. package/docs/reference/functions/testId.md +0 -20
  150. package/docs/reference/functions/text.md +0 -40
  151. package/docs/reference/functions/valued.md +0 -28
  152. package/docs/reference/functions/waitUntil.md +0 -46
  153. package/docs/reference/functions/within.md +0 -29
  154. package/docs/reference/index.md +0 -196
  155. package/docs/reference/interfaces/BaseResult.md +0 -87
  156. package/docs/reference/interfaces/CallResult.md +0 -160
  157. package/docs/reference/interfaces/CaptureScope.md +0 -82
  158. package/docs/reference/interfaces/CliResult.md +0 -253
  159. package/docs/reference/interfaces/ContainerAccessor.md +0 -166
  160. package/docs/reference/interfaces/DirectoryAccessor.md +0 -33
  161. package/docs/reference/interfaces/FetchResult.md +0 -180
  162. package/docs/reference/interfaces/FilesystemAccessor.md +0 -46
  163. package/docs/reference/interfaces/HttpResult.md +0 -126
  164. package/docs/reference/interfaces/JsonAccessor.md +0 -46
  165. package/docs/reference/interfaces/PageResult.md +0 -356
  166. package/docs/reference/interfaces/RenderResult.md +0 -72
  167. package/docs/reference/interfaces/RenderedText.md +0 -110
  168. package/docs/reference/interfaces/ResponseAccessor.md +0 -47
  169. package/docs/reference/interfaces/ScreenResult.md +0 -128
  170. package/docs/reference/interfaces/TableAccessor.md +0 -26
  171. package/docs/reference/interfaces/TextAccessor.md +0 -96
  172. package/docs/reference/type-aliases/ApiHandle.md +0 -68
  173. package/docs/reference/type-aliases/ApiSpecification.md +0 -213
  174. package/docs/reference/type-aliases/ApiSpecificationOptions.md +0 -68
  175. package/docs/reference/type-aliases/BrowserConsoleMessage.md +0 -30
  176. package/docs/reference/type-aliases/BrowserLinkElement.md +0 -50
  177. package/docs/reference/type-aliases/BrowserMetaElement.md +0 -40
  178. package/docs/reference/type-aliases/BrowserOpenOptions.md +0 -87
  179. package/docs/reference/type-aliases/BrowserPage.md +0 -132
  180. package/docs/reference/type-aliases/BrowserPort.md +0 -51
  181. package/docs/reference/type-aliases/CliEnv.md +0 -11
  182. package/docs/reference/type-aliases/CliHandle.md +0 -80
  183. package/docs/reference/type-aliases/CliInput.md +0 -36
  184. package/docs/reference/type-aliases/CliOutput.md +0 -46
  185. package/docs/reference/type-aliases/CliPort.md +0 -58
  186. package/docs/reference/type-aliases/CliSpecification.md +0 -144
  187. package/docs/reference/type-aliases/CliSpecificationOptions.md +0 -134
  188. package/docs/reference/type-aliases/ComponentChain.md +0 -156
  189. package/docs/reference/type-aliases/ComponentScenario.md +0 -20
  190. package/docs/reference/type-aliases/ComponentUi.md +0 -47
  191. package/docs/reference/type-aliases/ComponentVisitor.md +0 -10
  192. package/docs/reference/type-aliases/ContainerPort.md +0 -113
  193. package/docs/reference/type-aliases/Contract.md +0 -68
  194. package/docs/reference/type-aliases/ContractInput.md +0 -13
  195. package/docs/reference/type-aliases/ContractRequest.md +0 -95
  196. package/docs/reference/type-aliases/ContractResponder.md +0 -23
  197. package/docs/reference/type-aliases/ContractResponse.md +0 -78
  198. package/docs/reference/type-aliases/ContractResponseValue.md +0 -13
  199. package/docs/reference/type-aliases/Contracts.md +0 -48
  200. package/docs/reference/type-aliases/DatabaseKeys.md +0 -16
  201. package/docs/reference/type-aliases/DatabasePort.md +0 -72
  202. package/docs/reference/type-aliases/DeviceOpenOptions.md +0 -46
  203. package/docs/reference/type-aliases/DevicePort.md +0 -51
  204. package/docs/reference/type-aliases/DeviceScreen.md +0 -32
  205. package/docs/reference/type-aliases/DeviceTimeouts.md +0 -39
  206. package/docs/reference/type-aliases/DockerSpecConfig.md +0 -43
  207. package/docs/reference/type-aliases/DomMount.md +0 -21
  208. package/docs/reference/type-aliases/ElementKind.md +0 -27
  209. package/docs/reference/type-aliases/ElementMatch.md +0 -74
  210. package/docs/reference/type-aliases/ElementOptions.md +0 -29
  211. package/docs/reference/type-aliases/ElementRef.md +0 -128
  212. package/docs/reference/type-aliases/ExecOptions.md +0 -37
  213. package/docs/reference/type-aliases/FileAccessor.md +0 -54
  214. package/docs/reference/type-aliases/HonoApp.md +0 -31
  215. package/docs/reference/type-aliases/HttpContractFilter.md +0 -49
  216. package/docs/reference/type-aliases/HttpResponseInit.md +0 -46
  217. package/docs/reference/type-aliases/HttpStreamInit.md +0 -58
  218. package/docs/reference/type-aliases/IntegrationHandle.md +0 -46
  219. package/docs/reference/type-aliases/IntegrationSpecification.md +0 -111
  220. package/docs/reference/type-aliases/IntegrationSpecificationOptions.md +0 -42
  221. package/docs/reference/type-aliases/Intercept.md +0 -19
  222. package/docs/reference/type-aliases/InterceptOptions.md +0 -28
  223. package/docs/reference/type-aliases/InterceptScope.md +0 -11
  224. package/docs/reference/type-aliases/IsolationStrategy.md +0 -75
  225. package/docs/reference/type-aliases/JobHandle.md +0 -34
  226. package/docs/reference/type-aliases/JobsHandle.md +0 -57
  227. package/docs/reference/type-aliases/JobsResult.md +0 -16
  228. package/docs/reference/type-aliases/JobsSpecification.md +0 -94
  229. package/docs/reference/type-aliases/JobsSpecificationOptions.md +0 -56
  230. package/docs/reference/type-aliases/LandmarkKind.md +0 -20
  231. package/docs/reference/type-aliases/LiterateRunFlags.md +0 -27
  232. package/docs/reference/type-aliases/LiterateServeRegistration.md +0 -70
  233. package/docs/reference/type-aliases/MatchFixtureOptions.md +0 -27
  234. package/docs/reference/type-aliases/MatchableRequest.md +0 -61
  235. package/docs/reference/type-aliases/MatcherKind.md +0 -34
  236. package/docs/reference/type-aliases/MobileBackendOptions.md +0 -28
  237. package/docs/reference/type-aliases/MobileElementKind.md +0 -14
  238. package/docs/reference/type-aliases/MobileElementMatch.md +0 -60
  239. package/docs/reference/type-aliases/MobileElementRef.md +0 -20
  240. package/docs/reference/type-aliases/MobileHandle.md +0 -65
  241. package/docs/reference/type-aliases/MobileScenario.md +0 -20
  242. package/docs/reference/type-aliases/MobileSpecification.md +0 -51
  243. package/docs/reference/type-aliases/MobileSpecificationOptions.md +0 -126
  244. package/docs/reference/type-aliases/MobileVisitor.md +0 -81
  245. package/docs/reference/type-aliases/MockOfOptions.md +0 -26
  246. package/docs/reference/type-aliases/MockPort.md +0 -10
  247. package/docs/reference/type-aliases/PinnedClock.md +0 -10
  248. package/docs/reference/type-aliases/PostgresOptions.md +0 -32
  249. package/docs/reference/type-aliases/ProcessOptions.md +0 -112
  250. package/docs/reference/type-aliases/RedisOptions.md +0 -20
  251. package/docs/reference/type-aliases/RenderSubject.md +0 -12
  252. package/docs/reference/type-aliases/ScreenNode.md +0 -67
  253. package/docs/reference/type-aliases/ServerPort.md +0 -36
  254. package/docs/reference/type-aliases/ServerResponse.md +0 -46
  255. package/docs/reference/type-aliases/ServerSpec.md +0 -21
  256. package/docs/reference/type-aliases/ServiceHandle.md +0 -216
  257. package/docs/reference/type-aliases/ServiceRecord.md +0 -12
  258. package/docs/reference/type-aliases/SpecDocument.md +0 -84
  259. package/docs/reference/type-aliases/SpecEnvToken.md +0 -21
  260. package/docs/reference/type-aliases/SpecFileAssertion.md +0 -27
  261. package/docs/reference/type-aliases/SpecFixture.md +0 -30
  262. package/docs/reference/type-aliases/SpecKind.md +0 -8
  263. package/docs/reference/type-aliases/SpecRun.md +0 -108
  264. package/docs/reference/type-aliases/SpecServeEntry.md +0 -40
  265. package/docs/reference/type-aliases/SpecStream.md +0 -32
  266. package/docs/reference/type-aliases/SpecificationConfig.md +0 -290
  267. package/docs/reference/type-aliases/SqliteOptions.md +0 -36
  268. package/docs/reference/type-aliases/SseEvent.md +0 -58
  269. package/docs/reference/type-aliases/StreamBody.md +0 -61
  270. package/docs/reference/type-aliases/TextFilter.md +0 -22
  271. package/docs/reference/type-aliases/VisitScenario.md +0 -20
  272. package/docs/reference/type-aliases/Visitor.md +0 -215
  273. package/docs/reference/type-aliases/WaitUntilOptions.md +0 -46
  274. package/docs/reference/type-aliases/WebsiteBackendOptions.md +0 -37
  275. package/docs/reference/type-aliases/WebsiteHandle.md +0 -51
  276. package/docs/reference/type-aliases/WebsiteSpecification.md +0 -118
  277. package/docs/reference/type-aliases/WebsiteSpecificationOptions.md +0 -40
  278. package/docs/reference/variables/anthropic.md +0 -19
  279. package/docs/reference/variables/banner.md +0 -10
  280. package/docs/reference/variables/button.md +0 -10
  281. package/docs/reference/variables/clock.md +0 -16
  282. package/docs/reference/variables/complementary.md +0 -10
  283. package/docs/reference/variables/component.md +0 -10
  284. package/docs/reference/variables/content.md +0 -10
  285. package/docs/reference/variables/contentinfo.md +0 -10
  286. package/docs/reference/variables/dialog.md +0 -10
  287. package/docs/reference/variables/field.md +0 -10
  288. package/docs/reference/variables/form.md +0 -10
  289. package/docs/reference/variables/heading.md +0 -10
  290. package/docs/reference/variables/http.md +0 -40
  291. package/docs/reference/variables/intercept.md +0 -11
  292. package/docs/reference/variables/link.md +0 -10
  293. package/docs/reference/variables/listitem.md +0 -10
  294. package/docs/reference/variables/main.md +0 -10
  295. package/docs/reference/variables/match.md +0 -8
  296. package/docs/reference/variables/navigation.md +0 -10
  297. package/docs/reference/variables/openai.md +0 -21
  298. package/docs/reference/variables/option.md +0 -17
  299. package/docs/reference/variables/region.md +0 -10
  300. package/docs/reference/variables/row.md +0 -10
  301. package/docs/reference/variables/search.md +0 -10
  302. package/docs/reference/variables/specification.md +0 -8
  303. package/docs/reference/variables/status.md +0 -10
  304. package/docs/reference/variables/table.md +0 -10
@@ -1,28 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileBackendOptions
3
-
4
- ```ts
5
- type MobileBackendOptions = object;
6
- ```
7
-
8
- Defined in: [src/facets/mobile/mobile.specification.ts:23](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L23)
9
-
10
- The declared stub backend behind the app under test. The framework owns
11
- the simulator and appium but NOT the JS bundler (Metro belongs to the
12
- caller's repo, like `next build` belongs to a website's) — so nothing is
13
- injected: the handle exposes `backendUrl` and the CALLER wires it into its
14
- own bundler env.
15
-
16
- ## Properties
17
-
18
- ### port?
19
-
20
- ```ts
21
- optional port?: number;
22
- ```
23
-
24
- Defined in: [src/facets/mobile/mobile.specification.ts:29](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L29)
25
-
26
- Fixed port — pins a stable stub URL across runs. Metro inlines
27
- `EXPO_PUBLIC_*` values at bundle-serve time; a stable port lets a warm
28
- Metro survive between runs. Default: a free OS-assigned port.
@@ -1,14 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileElementKind
3
-
4
- ```ts
5
- type MobileElementKind = "button" | "field" | "testId" | "text";
6
- ```
7
-
8
- Defined in: [src/model/ports/device.port.ts:10](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L10)
9
-
10
- The element kinds a mobile screen can designate — the structural subset of
11
- [ElementRef](ElementRef.md) kinds that map onto the XCUITest accessibility tree.
12
- There is ONE element vocabulary across facets: `button('Bookmark')` works
13
- in a visit scenario and a mobile scenario alike. Landmarks have no iOS
14
- analog — passing one to a mobile verb refuses at runtime.
@@ -1,60 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileElementMatch
3
-
4
- ```ts
5
- type MobileElementMatch = object;
6
- ```
7
-
8
- Defined in: [src/model/ports/device.port.ts:32](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L32)
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 the simulator.
13
-
14
- ## Properties
15
-
16
- ### identifier?
17
-
18
- ```ts
19
- optional identifier?: string;
20
- ```
21
-
22
- Defined in: [src/model/ports/device.port.ts:34](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L34)
23
-
24
- The accessibility identifier (`testId()` target), when one is set.
25
-
26
- ***
27
-
28
- ### label?
29
-
30
- ```ts
31
- optional label?: string;
32
- ```
33
-
34
- Defined in: [src/model/ports/device.port.ts:36](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L36)
35
-
36
- The accessible label, whitespace-collapsed and truncated.
37
-
38
- ***
39
-
40
- ### type
41
-
42
- ```ts
43
- type: string;
44
- ```
45
-
46
- Defined in: [src/model/ports/device.port.ts:38](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L38)
47
-
48
- Element type without the `XCUIElementType` prefix — `Button`, `StaticText`.
49
-
50
- ***
51
-
52
- ### value?
53
-
54
- ```ts
55
- optional value?: string;
56
- ```
57
-
58
- Defined in: [src/model/ports/device.port.ts:40](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L40)
59
-
60
- The element value (text-field content, adjustable value), when present.
@@ -1,20 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileElementRef
3
-
4
- ```ts
5
- type MobileElementRef = ElementRef;
6
- ```
7
-
8
- Defined in: [src/model/ports/device.port.ts:25](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L25)
9
-
10
- A user-facing element descriptor for mobile scenarios — pure data, built by
11
- the shared element vocabulary (`button()`, `field()`, `content()`,
12
- `testId()`, `within()`) and translated into iOS predicate strings by the
13
- device integration. Structurally the same ref type as the browser's, so the
14
- vocabulary stays single; kinds outside [MobileElementKind](MobileElementKind.md) (the ARIA
15
- landmarks) are refused at runtime with a message naming the boundary.
16
-
17
- A descriptor must designate exactly ONE element when a verb ACTS on it
18
- (`tap`, `fill`) — see [MobileElementMatch](MobileElementMatch.md) and CONVENTIONS W3.
19
- `see()` acts on nothing, so any visible match satisfies it: XCUITest trees
20
- legitimately duplicate a label across container and child.
@@ -1,65 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileHandle
3
-
4
- ```ts
5
- type MobileHandle = object;
6
- ```
7
-
8
- Defined in: [src/facets/mobile/mobile.specification.ts:83](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L83)
9
-
10
- The record returned by startMobile \| specification.mobile.
11
- Destructure with the canonical names (CONVENTIONS A3):
12
-
13
- const { mobile, cleanup, udid } = await specification.mobile(…);
14
-
15
- ## Properties
16
-
17
- ### backendUrl?
18
-
19
- ```ts
20
- optional backendUrl?: string;
21
- ```
22
-
23
- Defined in: [src/facets/mobile/mobile.specification.ts:89](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L89)
24
-
25
- Base URL of the declared stub backend — present only with the
26
- `backend` option. The caller injects it into its own bundler env
27
- (e.g. `EXPO_PUBLIC_API_URL`); the framework never touches the bundler.
28
-
29
- ***
30
-
31
- ### cleanup
32
-
33
- ```ts
34
- cleanup: () => Promise<void>;
35
- ```
36
-
37
- Defined in: [src/facets/mobile/mobile.specification.ts:91](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L91)
38
-
39
- End the driver session, stop the appium server and the stub backend.
40
-
41
- #### Returns
42
-
43
- `Promise`\<`void`\>
44
-
45
- ***
46
-
47
- ### mobile
48
-
49
- ```ts
50
- mobile: MobileSpecification;
51
- ```
52
-
53
- Defined in: [src/facets/mobile/mobile.specification.ts:92](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L92)
54
-
55
- ***
56
-
57
- ### udid
58
-
59
- ```ts
60
- udid: string;
61
- ```
62
-
63
- Defined in: [src/facets/mobile/mobile.specification.ts:94](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L94)
64
-
65
- The resolved simulator UDID the specs run against.
@@ -1,20 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileScenario
3
-
4
- ```ts
5
- type MobileScenario = (visitor) => Promise<void>;
6
- ```
7
-
8
- Defined in: [src/model/ports/device.port.ts:60](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L60)
9
-
10
- The behavior of an open — the When of the spec; assertions stay in the Then.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Type |
15
- | ------ | ------ |
16
- | `visitor` | [`MobileVisitor`](MobileVisitor.md) |
17
-
18
- ## Returns
19
-
20
- `Promise`\<`void`\>
@@ -1,51 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileSpecification
3
-
4
- ```ts
5
- type MobileSpecification = object;
6
- ```
7
-
8
- Defined in: [src/model/chain/builder.ts:332](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L332)
9
-
10
- The `mobile` facet — screen chain entry handed out by
11
- `specification.mobile()`. `.open()` is the single, terminal action: it
12
- terminates and relaunches the app (deterministic fresh state), applies the
13
- deep link, runs the scenario, and captures the final screen.
14
-
15
- ## Properties
16
-
17
- ### intercept
18
-
19
- ```ts
20
- intercept: InterceptMethod<MobileSpecification>;
21
- ```
22
-
23
- Defined in: [src/model/chain/builder.ts:337](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L337)
24
-
25
- Declare the chain's backend contracts — served by the declared stub
26
- backend (requires the runner's `backend` option). Multiple calls append.
27
-
28
- ***
29
-
30
- ### open
31
-
32
- ```ts
33
- open: (deepLink?, scenario?) => Promise<ScreenResult>;
34
- ```
35
-
36
- Defined in: [src/model/chain/builder.ts:344](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L344)
37
-
38
- Relaunch the app and resolve with the captured screen. With a deep
39
- link, the app opens on it; with a scenario, the visitor interacts
40
- first (the When) and the capture reflects the FINAL screen state.
41
-
42
- #### Parameters
43
-
44
- | Parameter | Type |
45
- | ------ | ------ |
46
- | `deepLink?` | `string` |
47
- | `scenario?` | [`MobileScenario`](MobileScenario.md) |
48
-
49
- #### Returns
50
-
51
- `Promise`\<[`ScreenResult`](../interfaces/ScreenResult.md)\>
@@ -1,126 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileSpecificationOptions\<Services\>
3
-
4
- ```ts
5
- type MobileSpecificationOptions<Services> = object;
6
- ```
7
-
8
- Defined in: [src/facets/mobile/mobile.specification.ts:33](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L33)
9
-
10
- Options for startMobile \| specification.mobile.
11
-
12
- ## Type Parameters
13
-
14
- | Type Parameter | Default type |
15
- | ------ | ------ |
16
- | `Services` *extends* [`ServiceRecord`](ServiceRecord.md) | [`ServiceRecord`](ServiceRecord.md) |
17
-
18
- ## Properties
19
-
20
- ### app
21
-
22
- ```ts
23
- app: object;
24
- ```
25
-
26
- Defined in: [src/facets/mobile/mobile.specification.ts:35](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L35)
27
-
28
- The app under test — terminated and relaunched by every `.open()`.
29
-
30
- #### bundleId
31
-
32
- ```ts
33
- bundleId: string;
34
- ```
35
-
36
- Bundle id of the installed app (`com.example.app`).
37
-
38
- ***
39
-
40
- ### backend?
41
-
42
- ```ts
43
- optional backend?: MobileBackendOptions;
44
- ```
45
-
46
- Defined in: [src/facets/mobile/mobile.specification.ts:44](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L44)
47
-
48
- Declared stub backend: started with the runner, serving the contracts
49
- each chain declares via `.intercept(...)`. The handle gains
50
- `backendUrl` — inject it into your bundler env yourself.
51
-
52
- ***
53
-
54
- ### device
55
-
56
- ```ts
57
- device: object;
58
- ```
59
-
60
- Defined in: [src/facets/mobile/mobile.specification.ts:46](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L46)
61
-
62
- The simulator to run on — resolved through `xcrun simctl`.
63
-
64
- #### name
65
-
66
- ```ts
67
- name: string;
68
- ```
69
-
70
- Simulator name, matched exactly (`iPhone 17`).
71
-
72
- #### os?
73
-
74
- ```ts
75
- optional os?: string;
76
- ```
77
-
78
- OS narrowing when the name exists on several runtimes — `'26.5'` or `'iOS 26.5'`.
79
-
80
- #### udid?
81
-
82
- ```ts
83
- optional udid?: string;
84
- ```
85
-
86
- Explicit UDID — skips name/os resolution entirely.
87
-
88
- ***
89
-
90
- ### root?
91
-
92
- ```ts
93
- optional root?: string;
94
- ```
95
-
96
- Defined in: [src/facets/mobile/mobile.specification.ts:59](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L59)
97
-
98
- Project-root override (CONVENTIONS A9): where the appium binary is
99
- resolved from (`node_modules/.bin`). Auto-discovered from the calling
100
- file when absent.
101
-
102
- ***
103
-
104
- ### services?
105
-
106
- ```ts
107
- optional services?: Services;
108
- ```
109
-
110
- Defined in: [src/facets/mobile/mobile.specification.ts:73](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L73)
111
-
112
- Named services started with the runner and stopped with it — a
113
- `process()` for the bundler the app loads from, a database a dev build
114
- reads. Metro stops being a `beforeAll` the repository maintains: it is
115
- `process({ command: 'expo start', ready: /Metro waiting on .*:(\\d+)/ })`
116
- like every other external process the framework owns.
117
-
118
- ***
119
-
120
- ### timeouts?
121
-
122
- ```ts
123
- optional timeouts?: DeviceTimeouts;
124
- ```
125
-
126
- Defined in: [src/facets/mobile/mobile.specification.ts:74](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L74)
@@ -1,81 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MobileVisitor
3
-
4
- ```ts
5
- type MobileVisitor = object;
6
- ```
7
-
8
- Defined in: [src/model/ports/device.port.ts:50](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L50)
9
-
10
- The visitor — the interaction vocabulary handed to a mobile scenario.
11
- Every verb auto-waits by polling until a visible match exists; acting
12
- verbs then enforce exactly-one (W3), while `see()` — the single
13
- synchronization primitive — is satisfied by any visible match. There is
14
- no sleep and no conditional helper.
15
-
16
- ## Properties
17
-
18
- ### fill
19
-
20
- ```ts
21
- fill: (element, value) => Promise<void>;
22
- ```
23
-
24
- Defined in: [src/model/ports/device.port.ts:52](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L52)
25
-
26
- Fill a text field with a value.
27
-
28
- #### Parameters
29
-
30
- | Parameter | Type |
31
- | ------ | ------ |
32
- | `element` | [`MobileElementRef`](MobileElementRef.md) |
33
- | `value` | `string` |
34
-
35
- #### Returns
36
-
37
- `Promise`\<`void`\>
38
-
39
- ***
40
-
41
- ### see
42
-
43
- ```ts
44
- see: (element) => Promise<void>;
45
- ```
46
-
47
- Defined in: [src/model/ports/device.port.ts:54](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L54)
48
-
49
- Wait until the element is visible — the only synchronization primitive.
50
-
51
- #### Parameters
52
-
53
- | Parameter | Type |
54
- | ------ | ------ |
55
- | `element` | [`MobileElementRef`](MobileElementRef.md) |
56
-
57
- #### Returns
58
-
59
- `Promise`\<`void`\>
60
-
61
- ***
62
-
63
- ### tap
64
-
65
- ```ts
66
- tap: (element) => Promise<void>;
67
- ```
68
-
69
- Defined in: [src/model/ports/device.port.ts:56](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L56)
70
-
71
- Tap the element.
72
-
73
- #### Parameters
74
-
75
- | Parameter | Type |
76
- | ------ | ------ |
77
- | `element` | [`MobileElementRef`](MobileElementRef.md) |
78
-
79
- #### Returns
80
-
81
- `Promise`\<`void`\>
@@ -1,26 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MockOfOptions
3
-
4
- ```ts
5
- type MockOfOptions = object;
6
- ```
7
-
8
- Defined in: [src/model/doubles/mock-of.ts:5](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L5)
9
-
10
- How much of the port the double answers for.
11
-
12
- ## Properties
13
-
14
- ### deep?
15
-
16
- ```ts
17
- optional deep?: boolean;
18
- ```
19
-
20
- Defined in: [src/model/doubles/mock-of.ts:13](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L13)
21
-
22
- Deep (the default): reading a member that was never stubbed hands back
23
- another double, however far down the port nests. `false` gives the flat
24
- proxy — every member of `T` and nothing beneath them, which is what a
25
- port with a nested namespace wants when the test only ever touches the
26
- first level.
@@ -1,10 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MockPort
3
-
4
- ```ts
5
- type MockPort = typeof mockOf;
6
- ```
7
-
8
- Defined in: [src/model/doubles/mock-of.ts:35](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L35)
9
-
10
- The factory's own shape — kept as a name so a consumer can annotate with it.
@@ -1,10 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: PinnedClock
3
-
4
- ```ts
5
- type PinnedClock = Disposable;
6
- ```
7
-
8
- Defined in: [src/model/clock/clock.ts:23](https://github.com/jterrazz/package-test/blob/main/src/model/clock/clock.ts#L23)
9
-
10
- A pinned clock — released when the `using` scope that declared it ends.
@@ -1,32 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: PostgresOptions
3
-
4
- ```ts
5
- type PostgresOptions = object;
6
- ```
7
-
8
- Defined in: [src/seams/postgres/postgres.ts:23](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L23)
9
-
10
- ## Properties
11
-
12
- ### env?
13
-
14
- ```ts
15
- optional env?: Record<string, string>;
16
- ```
17
-
18
- Defined in: [src/seams/postgres/postgres.ts:27](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L27)
19
-
20
- Override environment variables.
21
-
22
- ***
23
-
24
- ### image?
25
-
26
- ```ts
27
- optional image?: string;
28
- ```
29
-
30
- Defined in: [src/seams/postgres/postgres.ts:25](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L25)
31
-
32
- Override image.
@@ -1,112 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: ProcessOptions
3
-
4
- ```ts
5
- type ProcessOptions = object;
6
- ```
7
-
8
- Defined in: [src/seams/process/serve.adapter.ts:18](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L18)
9
-
10
- The ONE shape an external process takes — the site under test, a backend a
11
- page talks to, a bundler a simulator loads from. Built by `process()`
12
- (chapter 17) and accepted wherever a facet starts something outside this
13
- process: `website({ server })`, `services: { api: process(…) }`, and the
14
- literate `serve:` registry.
15
-
16
- ## Properties
17
-
18
- ### before?
19
-
20
- ```ts
21
- optional before?: string;
22
- ```
23
-
24
- Defined in: [src/seams/process/serve.adapter.ts:24](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L24)
25
-
26
- A one-shot command run ONCE per specification, before the process is
27
- spawned, which must exit 0 — a build, a migration, a fixture load. Its
28
- failure is the specification's, and it says so.
29
-
30
- ***
31
-
32
- ### command
33
-
34
- ```ts
35
- command: string;
36
- ```
37
-
38
- Defined in: [src/seams/process/serve.adapter.ts:26](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L26)
39
-
40
- Shell command that starts the process. Receives the chosen port as `PORT`.
41
-
42
- ***
43
-
44
- ### cwd?
45
-
46
- ```ts
47
- optional cwd?: string;
48
- ```
49
-
50
- Defined in: [src/seams/process/serve.adapter.ts:28](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L28)
51
-
52
- Working directory, relative to the project root. Default: the root itself.
53
-
54
- ***
55
-
56
- ### env?
57
-
58
- ```ts
59
- optional env?:
60
- | ((services) => Record<string, string>)
61
- | Record<string, string>;
62
- ```
63
-
64
- Defined in: [src/seams/process/serve.adapter.ts:34](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L34)
65
-
66
- Environment for the child, on top of the runner's own. A function
67
- receives the services already started beside this one, so a process can
68
- be handed a sibling's connection string.
69
-
70
- ***
71
-
72
- ### port?
73
-
74
- ```ts
75
- optional port?: number;
76
- ```
77
-
78
- Defined in: [src/seams/process/serve.adapter.ts:38](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L38)
79
-
80
- Fixed port. Default: an OS-assigned free port, injected as `PORT`.
81
-
82
- ***
83
-
84
- ### ready?
85
-
86
- ```ts
87
- optional ready?: RegExp | string;
88
- ```
89
-
90
- Defined in: [src/seams/process/serve.adapter.ts:50](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L50)
91
-
92
- How readiness is observed. Two forms:
93
-
94
- - a **path** (or nothing) — the framework picks the port, injects it as
95
- `PORT`, and polls `<baseUrl><path>` until it answers any HTTP status
96
- (default `/`). This is `specification.website()`'s form.
97
- - a **regex over the child's output** with ONE capture group holding the
98
- port the server chose itself. Nothing is injected as `PORT`: the server
99
- announces its port and the framework reads it from the banner. This is
100
- the form a literate `serve:` registration uses.
101
-
102
- ***
103
-
104
- ### timeout?
105
-
106
- ```ts
107
- optional timeout?: number;
108
- ```
109
-
110
- Defined in: [src/seams/process/serve.adapter.ts:52](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L52)
111
-
112
- Readiness budget in milliseconds. Default 30 000.
@@ -1,20 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: RedisOptions
3
-
4
- ```ts
5
- type RedisOptions = object;
6
- ```
7
-
8
- Defined in: [src/seams/redis/redis.ts:6](https://github.com/jterrazz/package-test/blob/main/src/seams/redis/redis.ts#L6)
9
-
10
- ## Properties
11
-
12
- ### image?
13
-
14
- ```ts
15
- optional image?: string;
16
- ```
17
-
18
- Defined in: [src/seams/redis/redis.ts:8](https://github.com/jterrazz/package-test/blob/main/src/seams/redis/redis.ts#L8)
19
-
20
- Override image.