@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,42 +0,0 @@
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.
@@ -1,19 +0,0 @@
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.
@@ -1,28 +0,0 @@
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.
@@ -1,11 +0,0 @@
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.
@@ -1,75 +0,0 @@
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`\>
@@ -1,34 +0,0 @@
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)
@@ -1,57 +0,0 @@
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.
@@ -1,16 +0,0 @@
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.
@@ -1,94 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: JobsSpecification\<DatabaseKey\>
3
-
4
- ```ts
5
- type JobsSpecification<DatabaseKey> = object;
6
- ```
7
-
8
- Defined in: [src/model/chain/builder.ts:216](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L216)
9
-
10
- ## Type Parameters
11
-
12
- | Type Parameter | Default type |
13
- | ------ | ------ |
14
- | `DatabaseKey` *extends* `string` | `string` |
15
-
16
- ## Properties
17
-
18
- ### clock
19
-
20
- ```ts
21
- clock: (iso) => JobsSpecification<DatabaseKey>;
22
- ```
23
-
24
- Defined in: [src/model/chain/builder.ts:218](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L218)
25
-
26
- Pin the job's `Date` at `iso` for this chain — the calendar the job reads.
27
-
28
- #### Parameters
29
-
30
- | Parameter | Type |
31
- | ------ | ------ |
32
- | `iso` | `string` |
33
-
34
- #### Returns
35
-
36
- `JobsSpecification`\<`DatabaseKey`\>
37
-
38
- ***
39
-
40
- ### intercept
41
-
42
- ```ts
43
- intercept: InterceptMethod<JobsSpecification<DatabaseKey>>;
44
- ```
45
-
46
- Defined in: [src/model/chain/builder.ts:220](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L220)
47
-
48
- Declare outgoing calls — a contract, a list, a composite, or an inline request + response pair.
49
-
50
- ***
51
-
52
- ### seed
53
-
54
- ```ts
55
- seed: (file, options?) => JobsSpecification<DatabaseKey>;
56
- ```
57
-
58
- Defined in: [src/model/chain/builder.ts:222](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L222)
59
-
60
- Queue a SQL seed file from `_seeds/` to run before the action.
61
-
62
- #### Parameters
63
-
64
- | Parameter | Type |
65
- | ------ | ------ |
66
- | `file` | `string` |
67
- | `options?` | \{ `database?`: `DatabaseKey`; \} |
68
- | `options.database?` | `DatabaseKey` |
69
-
70
- #### Returns
71
-
72
- `JobsSpecification`\<`DatabaseKey`\>
73
-
74
- ***
75
-
76
- ### trigger
77
-
78
- ```ts
79
- trigger: (name) => Promise<JobsResult>;
80
- ```
81
-
82
- Defined in: [src/model/chain/builder.ts:225](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L225)
83
-
84
- Execute the named job registered via the `jobs` option and resolve with the result.
85
-
86
- #### Parameters
87
-
88
- | Parameter | Type |
89
- | ------ | ------ |
90
- | `name` | `string` |
91
-
92
- #### Returns
93
-
94
- `Promise`\<[`JobsResult`](JobsResult.md)\>
@@ -1,56 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: JobsSpecificationOptions\<Services\>
3
-
4
- ```ts
5
- type JobsSpecificationOptions<Services> = object;
6
- ```
7
-
8
- Defined in: [src/facets/jobs/jobs.specification.ts:18](https://github.com/jterrazz/package-test/blob/main/src/facets/jobs/jobs.specification.ts#L18)
9
-
10
- Options for startJobs \| specification.jobs.
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
- ### jobs
21
-
22
- ```ts
23
- jobs:
24
- | ((services) => JobHandle[])
25
- | JobHandle[];
26
- ```
27
-
28
- Defined in: [src/facets/jobs/jobs.specification.ts:24](https://github.com/jterrazz/package-test/blob/main/src/facets/jobs/jobs.specification.ts#L24)
29
-
30
- Named jobs triggerable via `jobs.trigger(name)` — a factory receiving
31
- the started services record, or a static array. Jobs run in-process by
32
- definition (CONVENTIONS A8).
33
-
34
- ***
35
-
36
- ### root?
37
-
38
- ```ts
39
- optional root?: string;
40
- ```
41
-
42
- Defined in: [src/facets/jobs/jobs.specification.ts:26](https://github.com/jterrazz/package-test/blob/main/src/facets/jobs/jobs.specification.ts#L26)
43
-
44
- Project root override — see the `root` option of `specification.api()`.
45
-
46
- ***
47
-
48
- ### services?
49
-
50
- ```ts
51
- optional services?: Services;
52
- ```
53
-
54
- Defined in: [src/facets/jobs/jobs.specification.ts:28](https://github.com/jterrazz/package-test/blob/main/src/facets/jobs/jobs.specification.ts#L28)
55
-
56
- Named infrastructure record started via testcontainers.
@@ -1,20 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: LandmarkKind
3
-
4
- ```ts
5
- type LandmarkKind =
6
- | "banner"
7
- | "complementary"
8
- | "contentinfo"
9
- | "form"
10
- | "main"
11
- | "navigation"
12
- | "region"
13
- | "search";
14
- ```
15
-
16
- Defined in: [src/model/ports/browser.port.ts:6](https://github.com/jterrazz/package-test/blob/main/src/model/ports/browser.port.ts#L6)
17
-
18
- The landmark roles — the standard set of page regions, and the only
19
- containers a scope can name. Closed on purpose: ARIA defines exactly these,
20
- so `within()` never becomes a second selector language.
@@ -1,27 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: LiterateRunFlags
3
-
4
- ```ts
5
- type LiterateRunFlags = object;
6
- ```
7
-
8
- Defined in: [src/facets/cli/literate.ts:66](https://github.com/jterrazz/package-test/blob/main/src/facets/cli/literate.ts#L66)
9
-
10
- Per-call options for runSpecDocument / `cli.run()`.
11
-
12
- ## Properties
13
-
14
- ### frozen?
15
-
16
- ```ts
17
- optional frozen?: boolean;
18
- ```
19
-
20
- Defined in: [src/facets/cli/literate.ts:75](https://github.com/jterrazz/package-test/blob/main/src/facets/cli/literate.ts#L75)
21
-
22
- Opt this document OUT of the update-mode rewrite. A frozen document is
23
- NEVER written under `TEST_UPDATE=1`: its mismatch still throws its diff.
24
- That is what makes a DELIBERATELY-WRONG `.spec.yaml` — one whose failure
25
- rendering is the subject of a negative test — survive an update run
26
- instead of being silently corrected into a passing file. The document's
27
- mirror of `toMatch(name, { frozen: true })`.
@@ -1,70 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: LiterateServeRegistration
3
-
4
- ```ts
5
- type LiterateServeRegistration = object;
6
- ```
7
-
8
- Defined in: [src/facets/cli/literate.ts:51](https://github.com/jterrazz/package-test/blob/main/src/facets/cli/literate.ts#L51)
9
-
10
- A server a document may start by name (`serve: mcp`), registered once per app
11
- in the `serve` option of `specification.cli()`.
12
-
13
- ## Properties
14
-
15
- ### command
16
-
17
- ```ts
18
- command: string;
19
- ```
20
-
21
- Defined in: [src/facets/cli/literate.ts:53](https://github.com/jterrazz/package-test/blob/main/src/facets/cli/literate.ts#L53)
22
-
23
- Shell command that starts the server, run from the project root.
24
-
25
- ***
26
-
27
- ### env
28
-
29
- ```ts
30
- env: string;
31
- ```
32
-
33
- Defined in: [src/facets/cli/literate.ts:55](https://github.com/jterrazz/package-test/blob/main/src/facets/cli/literate.ts#L55)
34
-
35
- The variable the resolved URL is bound to in every run's child env.
36
-
37
- ***
38
-
39
- ### ready
40
-
41
- ```ts
42
- ready: RegExp;
43
- ```
44
-
45
- Defined in: [src/facets/cli/literate.ts:60](https://github.com/jterrazz/package-test/blob/main/src/facets/cli/literate.ts#L60)
46
-
47
- Matched against the server's output; the FIRST capture group is the port
48
- it chose — named (`(?<port>\d+)`) or not, it is group 1 either way.
49
-
50
- ***
51
-
52
- ### url
53
-
54
- ```ts
55
- url: (port) => string;
56
- ```
57
-
58
- Defined in: [src/facets/cli/literate.ts:62](https://github.com/jterrazz/package-test/blob/main/src/facets/cli/literate.ts#L62)
59
-
60
- Builds the URL bound to [env](#env) from the announced port.
61
-
62
- #### Parameters
63
-
64
- | Parameter | Type |
65
- | ------ | ------ |
66
- | `port` | `number` |
67
-
68
- #### Returns
69
-
70
- `string`
@@ -1,27 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MatchFixtureOptions
3
-
4
- ```ts
5
- type MatchFixtureOptions = object;
6
- ```
7
-
8
- Defined in: [src/model/result/match-options.ts:21](https://github.com/jterrazz/package-test/blob/main/src/model/result/match-options.ts#L21)
9
-
10
- Per-call options for the fixture-file `toMatch` subjects. `frozen` opts a
11
- single fixture OUT of update-mode rewriting: a frozen fixture is NEVER
12
- written under `TEST_UPDATE=1` (or vitest `-u`) — in update mode a frozen
13
- mismatch still throws its diff, and a frozen missing fixture still throws its
14
- "does not exist" error. This is what makes a DELIBERATELY-WRONG fixture (the
15
- subject of a negative test that asserts the mismatch/error rendering)
16
- survivable across update runs instead of being silently overwritten with the
17
- actual output.
18
-
19
- ## Properties
20
-
21
- ### frozen?
22
-
23
- ```ts
24
- optional frozen?: boolean;
25
- ```
26
-
27
- Defined in: [src/model/result/match-options.ts:22](https://github.com/jterrazz/package-test/blob/main/src/model/result/match-options.ts#L22)
@@ -1,61 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MatchableRequest
3
-
4
- ```ts
5
- type MatchableRequest = object;
6
- ```
7
-
8
- Defined in: [src/model/contracts/types.ts:7](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/types.ts#L7)
9
-
10
- The observed outgoing request, reduced to what contract matchers inspect.
11
- Built once per request by the engine (MSW on api/jobs, the stub backend on
12
- website/mobile) and handed to [ContractRequest.match](ContractRequest.md#match) and to a
13
- [ContractResponder](ContractResponder.md).
14
-
15
- ## Properties
16
-
17
- ### body
18
-
19
- ```ts
20
- body: unknown;
21
- ```
22
-
23
- Defined in: [src/model/contracts/types.ts:9](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/types.ts#L9)
24
-
25
- Parsed JSON body when the payload is JSON, the raw text otherwise, or `null` when absent.
26
-
27
- ***
28
-
29
- ### headers
30
-
31
- ```ts
32
- headers: Record<string, string>;
33
- ```
34
-
35
- Defined in: [src/model/contracts/types.ts:11](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/types.ts#L11)
36
-
37
- Request headers, keyed by lowercased header name.
38
-
39
- ***
40
-
41
- ### method
42
-
43
- ```ts
44
- method: string;
45
- ```
46
-
47
- Defined in: [src/model/contracts/types.ts:13](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/types.ts#L13)
48
-
49
- Uppercased HTTP method of the observed request.
50
-
51
- ***
52
-
53
- ### url
54
-
55
- ```ts
56
- url: string;
57
- ```
58
-
59
- Defined in: [src/model/contracts/types.ts:15](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/types.ts#L15)
60
-
61
- The request URL — fully-qualified, or origin-relative for the stub backend.
@@ -1,34 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Type Alias: MatcherKind
3
-
4
- ```ts
5
- type MatcherKind =
6
- | "any"
7
- | "base64"
8
- | "date"
9
- | "duration"
10
- | "email"
11
- | "float"
12
- | "hex"
13
- | "includes"
14
- | "int"
15
- | "ip"
16
- | "iso8601"
17
- | "number"
18
- | "path"
19
- | "port"
20
- | "ref"
21
- | "regex"
22
- | "semver"
23
- | "sha"
24
- | "string"
25
- | "time"
26
- | "ulid"
27
- | "url"
28
- | "uuid"
29
- | "workdir";
30
- ```
31
-
32
- Defined in: [src/model/matching/match.ts:12](https://github.com/jterrazz/package-test/blob/main/src/model/matching/match.ts#L12)
33
-
34
- The frozen token vocabulary (CONVENTIONS D4) plus the code-only kinds.