@jterrazz/test 16.1.1 → 18.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 (309) hide show
  1. package/README.md +45 -171
  2. package/dist/browser/index.js +1 -2980
  3. package/dist/browser/services.js +1 -0
  4. package/dist/browser/stubs.js +1 -0
  5. package/dist/browser-shared-index.browser.js +3233 -0
  6. package/dist/checker.d.ts +6 -1
  7. package/dist/checker.js +3721 -2624
  8. package/dist/config.d.ts +40 -0
  9. package/dist/config.js +309 -0
  10. package/dist/in-place.global-setup.d.ts +12 -0
  11. package/dist/in-place.global-setup.js +21 -0
  12. package/dist/index.d.ts +1641 -3004
  13. package/dist/index.js +5095 -3835
  14. package/dist/mobile-session.global-setup.d.ts +15 -0
  15. package/dist/mobile-session.global-setup.js +31 -0
  16. package/dist/oxlint.cjs +6069 -5634
  17. package/dist/oxlint.d.cts +43 -7212
  18. package/dist/oxlint.d.ts +43 -7212
  19. package/dist/oxlint.js +3979 -5799
  20. package/dist/route-coverage.global-setup.d.ts +43 -0
  21. package/dist/route-coverage.global-setup.js +1 -0
  22. package/dist/services.d.ts +3 -0
  23. package/dist/services.global-setup.d.ts +43 -0
  24. package/dist/services.global-setup.js +1 -0
  25. package/dist/services.js +597 -0
  26. package/dist/shared-appium.adapter.js +428 -0
  27. package/dist/shared-artifacts.js +34 -0
  28. package/dist/shared-chapter.js +7 -0
  29. package/dist/shared-container.port.d.ts +31 -0
  30. package/dist/shared-derived-projects.js +73 -0
  31. package/dist/shared-device.port.d.ts +189 -0
  32. package/dist/shared-exchange.js +447 -0
  33. package/dist/shared-in-place.js +172 -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-listened-port.js +19 -0
  40. package/dist/shared-literate-plugin.js +184 -0
  41. package/dist/shared-manifest.js +1321 -0
  42. package/dist/shared-pause.js +22 -0
  43. package/dist/shared-peer.js +88 -0
  44. package/dist/shared-playwright.adapter.js +328 -0
  45. package/dist/shared-process-alive.js +13 -0
  46. package/dist/shared-process.adapter.js +74 -0
  47. package/dist/shared-record-key.js +13 -0
  48. package/dist/shared-refusal.js +35 -0
  49. package/dist/shared-resolve.js +24 -0
  50. package/dist/shared-route-coverage.global-setup.js +187 -0
  51. package/dist/shared-scenario-failure.js +198 -0
  52. package/dist/shared-serve.js +407 -0
  53. package/dist/shared-service-images.js +10 -0
  54. package/dist/shared-services.global-setup.js +174 -0
  55. package/dist/shared-session-ledger.js +305 -0
  56. package/dist/shared-setup-entry.js +12 -0
  57. package/dist/shared-source-scan.js +133 -0
  58. package/dist/shared-spec-document.js +303 -0
  59. package/dist/shared-spec-grammar.js +66 -0
  60. package/dist/shared-specifications.js +26 -0
  61. package/dist/shared-specs-modules.js +1033 -0
  62. package/dist/shared-stub-reply.js +167 -0
  63. package/dist/shared-stub-server.js +142 -0
  64. package/dist/shared-temp-root.global-setup.js +73 -0
  65. package/dist/shared-test-baseline.js +26 -0
  66. package/dist/shared-test-section.js +58 -0
  67. package/dist/shared-testcontainers.adapter.js +306 -0
  68. package/dist/shared-tokens.js +55 -0
  69. package/dist/shared-yaml-document.js +119 -0
  70. package/dist/stubs.d.ts +2 -0
  71. package/dist/stubs.js +657 -0
  72. package/dist/temp-root.global-setup.d.ts +7 -0
  73. package/dist/temp-root.global-setup.js +1 -0
  74. package/dist/vitest.d.ts +93 -164
  75. package/dist/vitest.js +382 -550
  76. package/docs/README.md +82 -36
  77. package/docs/concepts/architecture.md +118 -0
  78. package/docs/concepts/conventions.md +333 -0
  79. package/docs/guides/api-specs.md +374 -0
  80. package/docs/guides/cli-specs.md +566 -0
  81. package/docs/guides/component-specs.md +252 -0
  82. package/docs/guides/develop.md +97 -0
  83. package/docs/guides/integration-specs.md +181 -0
  84. package/docs/guides/job-specs.md +180 -0
  85. package/docs/guides/lint-specs.md +174 -0
  86. package/docs/guides/mobile-specs.md +319 -0
  87. package/docs/guides/module-tests.md +149 -0
  88. package/docs/guides/release.md +44 -0
  89. package/docs/guides/spec-documents.md +189 -0
  90. package/docs/guides/website-specs.md +413 -0
  91. package/docs/reference/assertions.md +345 -0
  92. package/docs/reference/glossary.md +20 -0
  93. package/docs/reference/linting.md +483 -0
  94. package/docs/reference/services.md +236 -0
  95. package/docs/reference/stubs.md +500 -0
  96. package/docs/reference/time-and-doubles.md +137 -0
  97. package/docs/reference/tokens.md +258 -0
  98. package/docs/reference/visitor.md +221 -0
  99. package/docs/start/getting-started.md +187 -0
  100. package/docs/start/set-up-a-project.md +228 -0
  101. package/package.json +56 -36
  102. package/schema/spec.schema.json +43 -17
  103. package/dist/appium.adapter.js +0 -489
  104. package/dist/artifacts.js +0 -32
  105. package/dist/fixtures.js +0 -110
  106. package/dist/literate.js +0 -1747
  107. package/dist/match.js +0 -804
  108. package/dist/playwright.adapter.js +0 -438
  109. package/dist/server.js +0 -160
  110. package/dist/stream.js +0 -321
  111. package/dist/substring-warning.js +0 -282
  112. package/docs/01-architecture.md +0 -95
  113. package/docs/02-developing.md +0 -351
  114. package/docs/03-testing.md +0 -495
  115. package/docs/04-operating.md +0 -101
  116. package/docs/05-module-tests.md +0 -152
  117. package/docs/06-integration.md +0 -180
  118. package/docs/07-component.md +0 -246
  119. package/docs/08-website.md +0 -404
  120. package/docs/09-mobile.md +0 -270
  121. package/docs/10-api.md +0 -264
  122. package/docs/11-jobs.md +0 -157
  123. package/docs/12-cli.md +0 -677
  124. package/docs/13-elements.md +0 -248
  125. package/docs/14-assertions.md +0 -314
  126. package/docs/15-tokens.md +0 -253
  127. package/docs/16-contracts.md +0 -438
  128. package/docs/17-services.md +0 -188
  129. package/docs/18-conventions.md +0 -332
  130. package/docs/19-linting.md +0 -512
  131. package/docs/decisions/001-v9-conventions-on-three-channels.md +0 -50
  132. package/docs/decisions/002-the-statique-channel-holds-only-what-upstream-does-not.md +0 -49
  133. package/docs/decisions/003-a-rendered-component-is-a-facet-on-vitest-browser-mode.md +0 -84
  134. package/docs/decisions/004-a-module-against-real-services-or-a-golden-is-the-integration-facet.md +0 -81
  135. package/docs/decisions/005-the-doubles-ladder-is-closed.md +0 -86
  136. package/docs/decisions/006-the-catalogue-reaches-a-file-by-its-role.md +0 -245
  137. package/docs/decisions/007-compose-mode-leaves-the-package.md +0 -53
  138. package/docs/decisions/008-vitest-5-node-24-and-the-native-seams-as-optional-peers.md +0 -75
  139. package/docs/decisions/_template.md +0 -22
  140. package/docs/reference/classes/Matcher.md +0 -120
  141. package/docs/reference/classes/ProcessHandle.md +0 -368
  142. package/docs/reference/functions/defineContract.md +0 -39
  143. package/docs/reference/functions/defineContracts.md +0 -36
  144. package/docs/reference/functions/disabled.md +0 -28
  145. package/docs/reference/functions/enabled.md +0 -20
  146. package/docs/reference/functions/focused.md +0 -26
  147. package/docs/reference/functions/mockOf.md +0 -79
  148. package/docs/reference/functions/postgres.md +0 -31
  149. package/docs/reference/functions/process.md +0 -33
  150. package/docs/reference/functions/redis.md +0 -28
  151. package/docs/reference/functions/required.md +0 -41
  152. package/docs/reference/functions/selected.md +0 -26
  153. package/docs/reference/functions/sqlite.md +0 -33
  154. package/docs/reference/functions/testId.md +0 -20
  155. package/docs/reference/functions/text.md +0 -40
  156. package/docs/reference/functions/valued.md +0 -28
  157. package/docs/reference/functions/waitUntil.md +0 -46
  158. package/docs/reference/functions/within.md +0 -29
  159. package/docs/reference/index.md +0 -196
  160. package/docs/reference/interfaces/BaseResult.md +0 -87
  161. package/docs/reference/interfaces/CallResult.md +0 -160
  162. package/docs/reference/interfaces/CaptureScope.md +0 -82
  163. package/docs/reference/interfaces/CliResult.md +0 -253
  164. package/docs/reference/interfaces/ContainerAccessor.md +0 -166
  165. package/docs/reference/interfaces/DirectoryAccessor.md +0 -33
  166. package/docs/reference/interfaces/FetchResult.md +0 -180
  167. package/docs/reference/interfaces/FilesystemAccessor.md +0 -46
  168. package/docs/reference/interfaces/HttpResult.md +0 -126
  169. package/docs/reference/interfaces/JsonAccessor.md +0 -46
  170. package/docs/reference/interfaces/PageResult.md +0 -356
  171. package/docs/reference/interfaces/RenderResult.md +0 -72
  172. package/docs/reference/interfaces/RenderedText.md +0 -110
  173. package/docs/reference/interfaces/ResponseAccessor.md +0 -47
  174. package/docs/reference/interfaces/ScreenResult.md +0 -128
  175. package/docs/reference/interfaces/TableAccessor.md +0 -26
  176. package/docs/reference/interfaces/TextAccessor.md +0 -96
  177. package/docs/reference/type-aliases/ApiHandle.md +0 -68
  178. package/docs/reference/type-aliases/ApiSpecification.md +0 -213
  179. package/docs/reference/type-aliases/ApiSpecificationOptions.md +0 -68
  180. package/docs/reference/type-aliases/BrowserConsoleMessage.md +0 -30
  181. package/docs/reference/type-aliases/BrowserLinkElement.md +0 -50
  182. package/docs/reference/type-aliases/BrowserMetaElement.md +0 -40
  183. package/docs/reference/type-aliases/BrowserOpenOptions.md +0 -87
  184. package/docs/reference/type-aliases/BrowserPage.md +0 -132
  185. package/docs/reference/type-aliases/BrowserPort.md +0 -51
  186. package/docs/reference/type-aliases/CliEnv.md +0 -11
  187. package/docs/reference/type-aliases/CliHandle.md +0 -80
  188. package/docs/reference/type-aliases/CliInput.md +0 -36
  189. package/docs/reference/type-aliases/CliOutput.md +0 -46
  190. package/docs/reference/type-aliases/CliPort.md +0 -58
  191. package/docs/reference/type-aliases/CliSpecification.md +0 -144
  192. package/docs/reference/type-aliases/CliSpecificationOptions.md +0 -134
  193. package/docs/reference/type-aliases/ComponentChain.md +0 -156
  194. package/docs/reference/type-aliases/ComponentScenario.md +0 -20
  195. package/docs/reference/type-aliases/ComponentUi.md +0 -47
  196. package/docs/reference/type-aliases/ComponentVisitor.md +0 -10
  197. package/docs/reference/type-aliases/ContainerPort.md +0 -113
  198. package/docs/reference/type-aliases/Contract.md +0 -68
  199. package/docs/reference/type-aliases/ContractInput.md +0 -13
  200. package/docs/reference/type-aliases/ContractRequest.md +0 -95
  201. package/docs/reference/type-aliases/ContractResponder.md +0 -23
  202. package/docs/reference/type-aliases/ContractResponse.md +0 -78
  203. package/docs/reference/type-aliases/ContractResponseValue.md +0 -13
  204. package/docs/reference/type-aliases/Contracts.md +0 -48
  205. package/docs/reference/type-aliases/DatabaseKeys.md +0 -16
  206. package/docs/reference/type-aliases/DatabasePort.md +0 -72
  207. package/docs/reference/type-aliases/DeviceOpenOptions.md +0 -46
  208. package/docs/reference/type-aliases/DevicePort.md +0 -51
  209. package/docs/reference/type-aliases/DeviceScreen.md +0 -32
  210. package/docs/reference/type-aliases/DeviceTimeouts.md +0 -39
  211. package/docs/reference/type-aliases/DockerSpecConfig.md +0 -43
  212. package/docs/reference/type-aliases/DomMount.md +0 -21
  213. package/docs/reference/type-aliases/ElementKind.md +0 -27
  214. package/docs/reference/type-aliases/ElementMatch.md +0 -74
  215. package/docs/reference/type-aliases/ElementOptions.md +0 -29
  216. package/docs/reference/type-aliases/ElementRef.md +0 -128
  217. package/docs/reference/type-aliases/ExecOptions.md +0 -37
  218. package/docs/reference/type-aliases/FileAccessor.md +0 -54
  219. package/docs/reference/type-aliases/HonoApp.md +0 -31
  220. package/docs/reference/type-aliases/HttpContractFilter.md +0 -49
  221. package/docs/reference/type-aliases/HttpResponseInit.md +0 -46
  222. package/docs/reference/type-aliases/HttpStreamInit.md +0 -58
  223. package/docs/reference/type-aliases/IntegrationHandle.md +0 -46
  224. package/docs/reference/type-aliases/IntegrationSpecification.md +0 -111
  225. package/docs/reference/type-aliases/IntegrationSpecificationOptions.md +0 -42
  226. package/docs/reference/type-aliases/Intercept.md +0 -19
  227. package/docs/reference/type-aliases/InterceptOptions.md +0 -28
  228. package/docs/reference/type-aliases/InterceptScope.md +0 -11
  229. package/docs/reference/type-aliases/IsolationStrategy.md +0 -75
  230. package/docs/reference/type-aliases/JobHandle.md +0 -34
  231. package/docs/reference/type-aliases/JobsHandle.md +0 -57
  232. package/docs/reference/type-aliases/JobsResult.md +0 -16
  233. package/docs/reference/type-aliases/JobsSpecification.md +0 -94
  234. package/docs/reference/type-aliases/JobsSpecificationOptions.md +0 -56
  235. package/docs/reference/type-aliases/LandmarkKind.md +0 -20
  236. package/docs/reference/type-aliases/LiterateRunFlags.md +0 -27
  237. package/docs/reference/type-aliases/LiterateServeRegistration.md +0 -70
  238. package/docs/reference/type-aliases/MatchFixtureOptions.md +0 -27
  239. package/docs/reference/type-aliases/MatchableRequest.md +0 -61
  240. package/docs/reference/type-aliases/MatcherKind.md +0 -34
  241. package/docs/reference/type-aliases/MobileBackendOptions.md +0 -28
  242. package/docs/reference/type-aliases/MobileElementKind.md +0 -14
  243. package/docs/reference/type-aliases/MobileElementMatch.md +0 -60
  244. package/docs/reference/type-aliases/MobileElementRef.md +0 -20
  245. package/docs/reference/type-aliases/MobileHandle.md +0 -65
  246. package/docs/reference/type-aliases/MobileScenario.md +0 -20
  247. package/docs/reference/type-aliases/MobileSpecification.md +0 -51
  248. package/docs/reference/type-aliases/MobileSpecificationOptions.md +0 -126
  249. package/docs/reference/type-aliases/MobileVisitor.md +0 -81
  250. package/docs/reference/type-aliases/MockOfOptions.md +0 -26
  251. package/docs/reference/type-aliases/MockPort.md +0 -10
  252. package/docs/reference/type-aliases/PinnedClock.md +0 -10
  253. package/docs/reference/type-aliases/PostgresOptions.md +0 -32
  254. package/docs/reference/type-aliases/ProcessOptions.md +0 -112
  255. package/docs/reference/type-aliases/RedisOptions.md +0 -20
  256. package/docs/reference/type-aliases/RenderSubject.md +0 -12
  257. package/docs/reference/type-aliases/ScreenNode.md +0 -67
  258. package/docs/reference/type-aliases/ServerPort.md +0 -36
  259. package/docs/reference/type-aliases/ServerResponse.md +0 -46
  260. package/docs/reference/type-aliases/ServerSpec.md +0 -21
  261. package/docs/reference/type-aliases/ServiceHandle.md +0 -216
  262. package/docs/reference/type-aliases/ServiceRecord.md +0 -12
  263. package/docs/reference/type-aliases/SpecDocument.md +0 -84
  264. package/docs/reference/type-aliases/SpecEnvToken.md +0 -21
  265. package/docs/reference/type-aliases/SpecFileAssertion.md +0 -27
  266. package/docs/reference/type-aliases/SpecFixture.md +0 -30
  267. package/docs/reference/type-aliases/SpecKind.md +0 -8
  268. package/docs/reference/type-aliases/SpecRun.md +0 -108
  269. package/docs/reference/type-aliases/SpecServeEntry.md +0 -40
  270. package/docs/reference/type-aliases/SpecStream.md +0 -32
  271. package/docs/reference/type-aliases/SpecificationConfig.md +0 -290
  272. package/docs/reference/type-aliases/SqliteOptions.md +0 -36
  273. package/docs/reference/type-aliases/SseEvent.md +0 -58
  274. package/docs/reference/type-aliases/StreamBody.md +0 -61
  275. package/docs/reference/type-aliases/TextFilter.md +0 -22
  276. package/docs/reference/type-aliases/VisitScenario.md +0 -20
  277. package/docs/reference/type-aliases/Visitor.md +0 -215
  278. package/docs/reference/type-aliases/WaitUntilOptions.md +0 -46
  279. package/docs/reference/type-aliases/WebsiteBackendOptions.md +0 -37
  280. package/docs/reference/type-aliases/WebsiteHandle.md +0 -51
  281. package/docs/reference/type-aliases/WebsiteSpecification.md +0 -118
  282. package/docs/reference/type-aliases/WebsiteSpecificationOptions.md +0 -40
  283. package/docs/reference/variables/anthropic.md +0 -19
  284. package/docs/reference/variables/banner.md +0 -10
  285. package/docs/reference/variables/button.md +0 -10
  286. package/docs/reference/variables/clock.md +0 -16
  287. package/docs/reference/variables/complementary.md +0 -10
  288. package/docs/reference/variables/component.md +0 -10
  289. package/docs/reference/variables/content.md +0 -10
  290. package/docs/reference/variables/contentinfo.md +0 -10
  291. package/docs/reference/variables/dialog.md +0 -10
  292. package/docs/reference/variables/field.md +0 -10
  293. package/docs/reference/variables/form.md +0 -10
  294. package/docs/reference/variables/heading.md +0 -10
  295. package/docs/reference/variables/http.md +0 -40
  296. package/docs/reference/variables/intercept.md +0 -11
  297. package/docs/reference/variables/link.md +0 -10
  298. package/docs/reference/variables/listitem.md +0 -10
  299. package/docs/reference/variables/main.md +0 -10
  300. package/docs/reference/variables/match.md +0 -8
  301. package/docs/reference/variables/navigation.md +0 -10
  302. package/docs/reference/variables/openai.md +0 -21
  303. package/docs/reference/variables/option.md +0 -17
  304. package/docs/reference/variables/region.md +0 -10
  305. package/docs/reference/variables/row.md +0 -10
  306. package/docs/reference/variables/search.md +0 -10
  307. package/docs/reference/variables/specification.md +0 -8
  308. package/docs/reference/variables/status.md +0 -10
  309. package/docs/reference/variables/table.md +0 -10
@@ -1,36 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: defineContracts()
3
-
4
- ```ts
5
- function defineContracts(...items): Contracts;
6
- ```
7
-
8
- Defined in: [src/model/contracts/contract.ts:137](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/contract.ts#L137)
9
-
10
- Compose contracts into the artifact a test imports — it's contracts all the
11
- way down: a composite may extend contracts, lists, and other composites,
12
- recursively, order preserved.
13
-
14
- `.with(...)` derives a scenario: contracts whose route the overrides claim
15
- are removed from the base, and the overrides are prepended. Under
16
- first-match selection a more specific override (`/articles/gone-1`) also
17
- wins over a generic base route (`/articles/{{uuid}}`) it does not replace.
18
-
19
- ## Parameters
20
-
21
- | Parameter | Type |
22
- | ------ | ------ |
23
- | ...`items` | [`ContractInput`](../type-aliases/ContractInput.md)[] |
24
-
25
- ## Returns
26
-
27
- [`Contracts`](../type-aliases/Contracts.md)
28
-
29
- ## Example
30
-
31
- ```ts
32
- // contracts/newsroom.contracts.ts
33
- export default defineContracts(events, articleById);
34
- export const withArticleGone = (id: string) =>
35
- newsroom.with(articleGone(id));
36
- ```
@@ -1,28 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: disabled()
3
-
4
- ```ts
5
- function disabled(element): ElementRef;
6
- ```
7
-
8
- Defined in: [src/model/elements/elements.ts:175](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L175)
9
-
10
- Whether the element accepts input: `see(disabled(button('Delete')))` asserts
11
- it refuses, `see(enabled(button('Delete')))` that it takes it.
12
-
13
- Modifiers rather than descriptors, for the same reason as `focused`: being
14
- disabled is a state of an element the vocabulary already names. Unlike focus,
15
- the ARIA tree carries it, so a golden pins a whole outline's enablement and
16
- these name the ONE control a test is about. They also buy the direction a
17
- behavioural substitute cannot reach — clicking a disabled control is a
18
- timeout, never an assertion.
19
-
20
- ## Parameters
21
-
22
- | Parameter | Type |
23
- | ------ | ------ |
24
- | `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
25
-
26
- ## Returns
27
-
28
- [`ElementRef`](../type-aliases/ElementRef.md)
@@ -1,20 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: enabled()
3
-
4
- ```ts
5
- function enabled(element): ElementRef;
6
- ```
7
-
8
- Defined in: [src/model/elements/elements.ts:178](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L178)
9
-
10
- The other direction of [disabled](disabled.md) — the element takes input.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Type |
15
- | ------ | ------ |
16
- | `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
17
-
18
- ## Returns
19
-
20
- [`ElementRef`](../type-aliases/ElementRef.md)
@@ -1,26 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: focused()
3
-
4
- ```ts
5
- function focused(element): ElementRef;
6
- ```
7
-
8
- Defined in: [src/model/elements/elements.ts:162](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L162)
9
-
10
- Where the keyboard is: `see(focused(button('Open')))` asserts the element has
11
- focus, `gone(focused(x))` that it does not.
12
-
13
- A modifier rather than a descriptor of its own, because focus is a STATE of
14
- an element the vocabulary can already name. It is a verb's business and never
15
- a golden's: the accessibility tree carries no focus, so a tree snapshot of a
16
- dialog that took the keyboard and one that did not are byte-identical.
17
-
18
- ## Parameters
19
-
20
- | Parameter | Type |
21
- | ------ | ------ |
22
- | `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
23
-
24
- ## Returns
25
-
26
- [`ElementRef`](../type-aliases/ElementRef.md)
@@ -1,79 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: mockOf()
3
-
4
- ## Call Signature
5
-
6
- ```ts
7
- function mockOf<T>(options): MockProxy<T>;
8
- ```
9
-
10
- Defined in: [src/model/doubles/mock-of.ts:28](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L28)
11
-
12
- A typed double for an injected port — the fourth rung of the doubles ladder
13
- (docs/18-conventions.md), and the only one a module test may build itself.
14
-
15
- The type argument is the port: `T` is constrained to `object` and has no
16
- default, so a double is always asked for something. A call with no argument
17
- answers for `object`, which satisfies no port and fails where it is used.
18
-
19
- ### Type Parameters
20
-
21
- | Type Parameter |
22
- | ------ |
23
- | `T` *extends* `object` |
24
-
25
- ### Parameters
26
-
27
- | Parameter | Type |
28
- | ------ | ------ |
29
- | `options` | \{ `deep`: `false`; \} |
30
- | `options.deep` | `false` |
31
-
32
- ### Returns
33
-
34
- `MockProxy`\<`T`\>
35
-
36
- ### Example
37
-
38
- ```ts
39
- const gateway = mockOf<PaymentGateway>(); // deep
40
- const clock = mockOf<ClockPort>({ deep: false }); // flat
41
- ```
42
-
43
- ## Call Signature
44
-
45
- ```ts
46
- function mockOf<T>(options?): DeepMockProxy<T>;
47
- ```
48
-
49
- Defined in: [src/model/doubles/mock-of.ts:29](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L29)
50
-
51
- A typed double for an injected port — the fourth rung of the doubles ladder
52
- (docs/18-conventions.md), and the only one a module test may build itself.
53
-
54
- The type argument is the port: `T` is constrained to `object` and has no
55
- default, so a double is always asked for something. A call with no argument
56
- answers for `object`, which satisfies no port and fails where it is used.
57
-
58
- ### Type Parameters
59
-
60
- | Type Parameter |
61
- | ------ |
62
- | `T` *extends* `object` |
63
-
64
- ### Parameters
65
-
66
- | Parameter | Type |
67
- | ------ | ------ |
68
- | `options?` | [`MockOfOptions`](../type-aliases/MockOfOptions.md) |
69
-
70
- ### Returns
71
-
72
- `DeepMockProxy`\<`T`\>
73
-
74
- ### Example
75
-
76
- ```ts
77
- const gateway = mockOf<PaymentGateway>(); // deep
78
- const clock = mockOf<ClockPort>({ deep: false }); // flat
79
- ```
@@ -1,31 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: postgres()
3
-
4
- ```ts
5
- function postgres(options?): PostgresHandle;
6
- ```
7
-
8
- Defined in: [src/seams/postgres/postgres.ts:216](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L216)
9
-
10
- Create a PostgreSQL service handle.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Type |
15
- | ------ | ------ |
16
- | `options` | [`PostgresOptions`](../type-aliases/PostgresOptions.md) |
17
-
18
- ## Returns
19
-
20
- `PostgresHandle`
21
-
22
- ## Example
23
-
24
- ```ts
25
- // The record key is the name: it is the spec's `database` vocabulary, and
26
- // Kebab-cased it is the folder the init script is read from.
27
- // { db: postgres() } → docker/db/init.sql, then docker/postgres/init.sql
28
- // { analyticsDb: postgres() } → docker/analytics-db/init.sql
29
- const events = postgres();
30
- // After start: events.connectionString is populated
31
- ```
@@ -1,33 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: process()
3
-
4
- ```ts
5
- function process(options): ProcessHandle;
6
- ```
7
-
8
- Defined in: [src/model/chain/process.ts:151](https://github.com/jterrazz/package-test/blob/main/src/model/chain/process.ts#L151)
9
-
10
- Declare an external process the framework owns for the life of the
11
- specification.
12
-
13
- ## Parameters
14
-
15
- | Parameter | Type |
16
- | ------ | ------ |
17
- | `options` | [`ProcessOptions`](../type-aliases/ProcessOptions.md) |
18
-
19
- ## Returns
20
-
21
- [`ProcessHandle`](../classes/ProcessHandle.md)
22
-
23
- ## Example
24
-
25
- ```ts
26
- const { website, cleanup } = await specification.website({
27
- services: { api: process({ command: 'bin/server web', ready: '/health' }) },
28
- server: ({ api }) => process({
29
- command: 'next dev',
30
- env: { NEXT_PUBLIC_API_URL: api.connectionString },
31
- }),
32
- });
33
- ```
@@ -1,28 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: redis()
3
-
4
- ```ts
5
- function redis(options?): RedisHandle;
6
- ```
7
-
8
- Defined in: [src/seams/redis/redis.ts:107](https://github.com/jterrazz/package-test/blob/main/src/seams/redis/redis.ts#L107)
9
-
10
- Create a Redis service handle.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Type |
15
- | ------ | ------ |
16
- | `options` | [`RedisOptions`](../type-aliases/RedisOptions.md) |
17
-
18
- ## Returns
19
-
20
- `RedisHandle`
21
-
22
- ## Example
23
-
24
- ```ts
25
- // The record key is the name it reports under: { cache: redis() } → "cache".
26
- const cache = redis();
27
- // After start: cache.connectionString is populated
28
- ```
@@ -1,41 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: required()
3
-
4
- ```ts
5
- function required<T>(value, why): T;
6
- ```
7
-
8
- Defined in: [src/model/assertions/required.ts:15](https://github.com/jterrazz/package-test/blob/main/src/model/assertions/required.ts#L15)
9
-
10
- The value, or a failure that says what was missing and why it mattered.
11
-
12
- A test reaching into a captured structure — a row, a header, the third
13
- element of a list — meets `T | undefined` and has to do something about it.
14
- The two things it usually does are both wrong: `!` erases the question, and
15
- an `if (!x) throw new Error('missing')` re-states the same three lines in
16
- every repository (the estate had two hand-written copies of exactly this).
17
- `required` is that gesture with the reason attached, so the failure reads as
18
- a sentence rather than as a `TypeError` two frames further down.
19
-
20
- ## Type Parameters
21
-
22
- | Type Parameter |
23
- | ------ |
24
- | `T` |
25
-
26
- ## Parameters
27
-
28
- | Parameter | Type |
29
- | ------ | ------ |
30
- | `value` | `T` \| `null` \| `undefined` |
31
- | `why` | `string` |
32
-
33
- ## Returns
34
-
35
- `T`
36
-
37
- ## Example
38
-
39
- ```ts
40
- const id = required(result.response.body.id, 'the creation reply carries the new id');
41
- ```
@@ -1,26 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: selected()
3
-
4
- ```ts
5
- function selected(element): ElementRef;
6
- ```
7
-
8
- Defined in: [src/model/elements/elements.ts:189](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L189)
9
-
10
- Which option the field is on: `see(selected(option('LinkedIn')))`, and
11
- `gone(selected(option('X')))` for the one it left.
12
-
13
- A modifier for the same reason as [disabled](disabled.md): being chosen is a state
14
- of an element the vocabulary already names. No matcher answers for it — a
15
- `<option>` is not a checkbox — so both adapters read the `:checked` the CSS
16
- spec gives a selected option.
17
-
18
- ## Parameters
19
-
20
- | Parameter | Type |
21
- | ------ | ------ |
22
- | `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
23
-
24
- ## Returns
25
-
26
- [`ElementRef`](../type-aliases/ElementRef.md)
@@ -1,33 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: sqlite()
3
-
4
- ```ts
5
- function sqlite(options?): SqliteHandle;
6
- ```
7
-
8
- Defined in: [src/seams/sqlite/sqlite.ts:502](https://github.com/jterrazz/package-test/blob/main/src/seams/sqlite/sqlite.ts#L502)
9
-
10
- Create a SQLite service handle. Uses file-copy isolation for parallel tests.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Type |
15
- | ------ | ------ |
16
- | `options` | [`SqliteOptions`](../type-aliases/SqliteOptions.md) |
17
-
18
- ## Returns
19
-
20
- `SqliteHandle`
21
-
22
- ## Example
23
-
24
- ```ts
25
- // With Prisma schema
26
- const db = sqlite({ prismaSchema: './prisma/schema' });
27
-
28
- // With raw SQL init
29
- const db = sqlite({ init: './schema.sql' });
30
-
31
- // Empty database
32
- const db = sqlite();
33
- ```
@@ -1,20 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: testId()
3
-
4
- ```ts
5
- function testId(id): ElementRef;
6
- ```
7
-
8
- Defined in: [src/model/elements/elements.ts:60](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L60)
9
-
10
- The escape hatch: an element by `data-testid`. Prefer user-facing elements.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Type |
15
- | ------ | ------ |
16
- | `id` | `string` |
17
-
18
- ## Returns
19
-
20
- [`ElementRef`](../type-aliases/ElementRef.md)
@@ -1,40 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: text()
3
-
4
- ```ts
5
- function text(value): TextAccessor;
6
- ```
7
-
8
- Defined in: [src/model/result/text-subject.ts:27](https://github.com/jterrazz/package-test/blob/main/src/model/result/text-subject.ts#L27)
9
-
10
- Wrap an arbitrary string into a [TextAccessor](../interfaces/TextAccessor.md) anchored on the calling
11
- test's directory — the same caller-detection the builders use.
12
-
13
- The product surface of a test framework is its own error messages, checker
14
- output, and reports; those deserve the same goldening as any other output.
15
- `text()` makes an ad-hoc string a first-class snapshot subject:
16
-
17
- ```typescript
18
- const message = await catchMessage(() => expect(result.response).toMatch('wrong-body.http'));
19
- expect(text(message)).toMatch('wrong-body-error.txt'); // resolves to _expected/
20
- ```
21
-
22
- ANSI is stripped before every comparison (the raw form stays on `.text`),
23
- the `{{token}}` grammar applies to the fixture, and `.grep()` composition
24
- works exactly as on any stream accessor.
25
-
26
- The ANCHOR is why this sits apart from the accessor it builds: reading the
27
- caller's frame means reading a stack and a real path, which is node's alone.
28
- [TextAccessor](../interfaces/TextAccessor.md) itself is a pure projection over a captured string, so
29
- it loads in a page — and the browser entry builds its own `text()`, where
30
- the golden commands resolve `_expected/` from the test's path server-side.
31
-
32
- ## Parameters
33
-
34
- | Parameter | Type |
35
- | ------ | ------ |
36
- | `value` | `string` |
37
-
38
- ## Returns
39
-
40
- [`TextAccessor`](../interfaces/TextAccessor.md)
@@ -1,28 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: valued()
3
-
4
- ```ts
5
- function valued(element, value): ElementRef;
6
- ```
7
-
8
- Defined in: [src/model/elements/elements.ts:201](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L201)
9
-
10
- What the field holds: `see(valued(field('Title'), 'Launch teaser'))`, and
11
- `gone(valued(field('Title'), '…'))` for a value it no longer holds.
12
-
13
- A modifier for the same reason as [disabled](disabled.md): what a field holds is a
14
- state of an element the vocabulary already names, and this is how the ONE
15
- field a test is about is waited for — a golden pins a whole outline instead.
16
- Read from the node's live value, never from the `value` ATTRIBUTE, which a
17
- controlled input never moves.
18
-
19
- ## Parameters
20
-
21
- | Parameter | Type |
22
- | ------ | ------ |
23
- | `element` | [`ElementRef`](../type-aliases/ElementRef.md) |
24
- | `value` | `string` |
25
-
26
- ## Returns
27
-
28
- [`ElementRef`](../type-aliases/ElementRef.md)
@@ -1,46 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: waitUntil()
3
-
4
- ```ts
5
- function waitUntil(predicate, options?): Promise<void>;
6
- ```
7
-
8
- Defined in: [src/model/assertions/wait-until.ts:41](https://github.com/jterrazz/package-test/blob/main/src/model/assertions/wait-until.ts#L41)
9
-
10
- Wait until a condition holds — the sanctioned answer to "the thing I am
11
- specifying is not ready yet".
12
-
13
- A spec that sleeps for a guessed duration is a spec that is slow on a fast
14
- machine and flaky on a slow one, which is why J2 refuses `setTimeout` under
15
- `specs/`. Every facet that drives something already waits on a CONDITION —
16
- a served page, a banner on stdout, an element the visitor can see — and this
17
- is that primitive where no facet owns the waiting: a background write to
18
- land, a queue to drain, a file to appear.
19
-
20
- The failure names the condition and how long it was given, so a timeout is a
21
- sentence rather than "expected true, got false".
22
-
23
- The budget is measured on `performance.now()`, not on `Date` — `clock.at()`
24
- freezes the calendar, and a deadline read off a frozen calendar never
25
- arrives: the poll would run until vitest killed the test with a sentence
26
- about the file rather than about the condition.
27
-
28
- Not for a subject under `clock.run()`: there the scheduler is the test's, and
29
- `clock.advance(ms)` is what makes time pass.
30
-
31
- ## Parameters
32
-
33
- | Parameter | Type |
34
- | ------ | ------ |
35
- | `predicate` | () => `boolean` \| `Promise`\<`boolean`\> |
36
- | `options` | [`WaitUntilOptions`](../type-aliases/WaitUntilOptions.md) |
37
-
38
- ## Returns
39
-
40
- `Promise`\<`void`\>
41
-
42
- ## Example
43
-
44
- ```ts
45
- await waitUntil(() => outbox.length === 1, { why: 'the job wrote its one message' });
46
- ```
@@ -1,29 +0,0 @@
1
- <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
- # Function: within()
3
-
4
- ```ts
5
- function within(scope, target): ElementRef;
6
- ```
7
-
8
- Defined in: [src/model/elements/elements.ts:114](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L114)
9
-
10
- Restrict a descriptor to the inside of another — the answer to ambiguity,
11
- and the one the framework prefers over a test id.
12
-
13
- click(within(navigation(), link('Articles')))
14
-
15
- Composes outside-in: the scope may itself be scoped, so a deeply nested
16
- target reads `within(main(), within(region('Series'), link('Part 2')))`.
17
- Any descriptor works as a scope, including `testId()` when a container has
18
- no landmark role to stand on.
19
-
20
- ## Parameters
21
-
22
- | Parameter | Type |
23
- | ------ | ------ |
24
- | `scope` | [`ElementRef`](../type-aliases/ElementRef.md) |
25
- | `target` | [`ElementRef`](../type-aliases/ElementRef.md) |
26
-
27
- ## Returns
28
-
29
- [`ElementRef`](../type-aliases/ElementRef.md)