foldkit 0.154.0 → 0.155.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 (154) hide show
  1. package/dist/asyncData/asyncData.d.ts.map +1 -1
  2. package/dist/brand/brand.d.ts.map +1 -1
  3. package/dist/calendar/arithmetic.d.ts.map +1 -1
  4. package/dist/calendar/calendarDate.d.ts.map +1 -1
  5. package/dist/calendar/comparison.d.ts.map +1 -1
  6. package/dist/calendar/info.d.ts.map +1 -1
  7. package/dist/calendar/today.d.ts.map +1 -1
  8. package/dist/canvas/paint.d.ts.map +1 -1
  9. package/dist/canvas/view.d.ts.map +1 -1
  10. package/dist/command/brand.d.ts.map +1 -1
  11. package/dist/command/index.d.ts.map +1 -1
  12. package/dist/command/interruptible/interruptible.d.ts.map +1 -1
  13. package/dist/controlledDomState.d.ts.map +1 -1
  14. package/dist/customElement/index.d.ts +6 -3
  15. package/dist/customElement/index.d.ts.map +1 -1
  16. package/dist/devTools/historyQuery.d.ts.map +1 -1
  17. package/dist/devTools/protocol.d.ts +113 -113
  18. package/dist/devTools/protocol.d.ts.map +1 -1
  19. package/dist/devTools/schemaSummarize.d.ts.map +1 -1
  20. package/dist/devTools/serialize.d.ts.map +1 -1
  21. package/dist/devTools/store.d.ts.map +1 -1
  22. package/dist/devTools/submodelPath.d.ts.map +1 -1
  23. package/dist/devTools/summarize.d.ts +6 -6
  24. package/dist/devTools/summarize.d.ts.map +1 -1
  25. package/dist/devTools/webSocketBridge.d.ts +1 -1
  26. package/dist/devTools/webSocketBridge.d.ts.map +1 -1
  27. package/dist/devTools/webSocketBridge.js +4 -4
  28. package/dist/dom/dom.d.ts +11 -5
  29. package/dist/dom/dom.d.ts.map +1 -1
  30. package/dist/dom/dom.js +10 -5
  31. package/dist/dom/elementMovement.d.ts.map +1 -1
  32. package/dist/dom/inert.d.ts.map +1 -1
  33. package/dist/dom/waitForAnimation.d.ts.map +1 -1
  34. package/dist/domReflection.d.ts.map +1 -1
  35. package/dist/effectExtensions/optionExtensions.d.ts.map +1 -1
  36. package/dist/effectExtensions/stringExtensions.d.ts.map +1 -1
  37. package/dist/experimental/machine/machine.d.ts.map +1 -1
  38. package/dist/experimental/server/entry.d.ts.map +1 -1
  39. package/dist/experimental/server/host.d.ts.map +1 -1
  40. package/dist/experimental/server/serialize.d.ts.map +1 -1
  41. package/dist/experimental/server/server.d.ts.map +1 -1
  42. package/dist/experimental/server/template.d.ts.map +1 -1
  43. package/dist/fieldValidation/fieldValidation.d.ts +35 -0
  44. package/dist/fieldValidation/fieldValidation.d.ts.map +1 -1
  45. package/dist/fieldValidation/fieldValidation.js +31 -1
  46. package/dist/fieldValidation/public.d.ts +1 -1
  47. package/dist/fieldValidation/public.d.ts.map +1 -1
  48. package/dist/fieldValidation/public.js +1 -1
  49. package/dist/fieldValidation/rule.d.ts.map +1 -1
  50. package/dist/file/file.d.ts.map +1 -1
  51. package/dist/file/reader.d.ts.map +1 -1
  52. package/dist/file/select.d.ts.map +1 -1
  53. package/dist/html/boundary.d.ts.map +1 -1
  54. package/dist/html/childAttribute.d.ts.map +1 -1
  55. package/dist/html/dragZoneTracking.d.ts +1 -1
  56. package/dist/html/dragZoneTracking.d.ts.map +1 -1
  57. package/dist/html/index.d.ts +7 -20
  58. package/dist/html/index.d.ts.map +1 -1
  59. package/dist/html/index.js +12 -15
  60. package/dist/html/runtimeSingleton.d.ts.map +1 -1
  61. package/dist/html/submodel.d.ts.map +1 -1
  62. package/dist/hydrate.d.ts.map +1 -1
  63. package/dist/hydrationMarkers.d.ts.map +1 -1
  64. package/dist/managedResource/managedResource.d.ts +5 -3
  65. package/dist/managedResource/managedResource.d.ts.map +1 -1
  66. package/dist/managedResource/managedResource.js +5 -3
  67. package/dist/mount/index.d.ts +167 -114
  68. package/dist/mount/index.d.ts.map +1 -1
  69. package/dist/mount/index.js +47 -63
  70. package/dist/nativeInnerHtml.d.ts.map +1 -1
  71. package/dist/navigation/index.d.ts.map +1 -1
  72. package/dist/navigation/urlRequest.d.ts +2 -2
  73. package/dist/navigation/urlRequest.d.ts.map +1 -1
  74. package/dist/port/port.d.ts.map +1 -1
  75. package/dist/propertyProvenance.d.ts.map +1 -1
  76. package/dist/propsModule.d.ts.map +1 -1
  77. package/dist/propsModule.js +3 -3
  78. package/dist/route/parser.d.ts.map +1 -1
  79. package/dist/route/transition.d.ts +4 -4
  80. package/dist/route/transition.d.ts.map +1 -1
  81. package/dist/runtime/browserListeners.d.ts.map +1 -1
  82. package/dist/runtime/crashUI.d.ts.map +1 -1
  83. package/dist/runtime/deepFreeze.d.ts.map +1 -1
  84. package/dist/runtime/hmrScroll.d.ts.map +1 -1
  85. package/dist/runtime/preserveScheduler.d.ts.map +1 -1
  86. package/dist/runtime/runtime.d.ts +1 -1
  87. package/dist/runtime/runtime.d.ts.map +1 -1
  88. package/dist/runtime/runtime.js +115 -28
  89. package/dist/runtime/viewTransition.d.ts.map +1 -1
  90. package/dist/snabbdom/eventlisteners.d.ts.map +1 -1
  91. package/dist/snabbdom/h.d.ts.map +1 -1
  92. package/dist/snabbdom/init.d.ts.map +1 -1
  93. package/dist/snabbdom/init.js +45 -25
  94. package/dist/snabbdom/vnode.d.ts.map +1 -1
  95. package/dist/struct/index.d.ts.map +1 -1
  96. package/dist/subscription/animationFrame.d.ts.map +1 -1
  97. package/dist/subscription/fromEvent.d.ts.map +1 -1
  98. package/dist/subscription/subscription.d.ts +2 -2
  99. package/dist/subscription/subscription.d.ts.map +1 -1
  100. package/dist/tagName.d.ts.map +1 -1
  101. package/dist/test/apps/attributes.d.ts.map +1 -1
  102. package/dist/test/apps/bubbling.d.ts.map +1 -1
  103. package/dist/test/apps/colorPicker.d.ts +1 -1
  104. package/dist/test/apps/colorPicker.d.ts.map +1 -1
  105. package/dist/test/apps/contextMenu.d.ts +6 -6
  106. package/dist/test/apps/contextMenu.d.ts.map +1 -1
  107. package/dist/test/apps/contextMenu.js +3 -3
  108. package/dist/test/apps/counter.d.ts +10 -10
  109. package/dist/test/apps/counter.d.ts.map +1 -1
  110. package/dist/test/apps/crashOnRender.d.ts +3 -3
  111. package/dist/test/apps/crashOnRender.d.ts.map +1 -1
  112. package/dist/test/apps/drafts.d.ts +2 -2
  113. package/dist/test/apps/drafts.d.ts.map +1 -1
  114. package/dist/test/apps/feedSocket.d.ts +15 -15
  115. package/dist/test/apps/feedSocket.d.ts.map +1 -1
  116. package/dist/test/apps/fileUpload.d.ts +1 -1
  117. package/dist/test/apps/fileUpload.d.ts.map +1 -1
  118. package/dist/test/apps/focusBoundary.d.ts.map +1 -1
  119. package/dist/test/apps/formChild.d.ts +18 -18
  120. package/dist/test/apps/formChild.d.ts.map +1 -1
  121. package/dist/test/apps/interactions.d.ts +7 -7
  122. package/dist/test/apps/interactions.d.ts.map +1 -1
  123. package/dist/test/apps/keypress.d.ts +2 -2
  124. package/dist/test/apps/keypress.d.ts.map +1 -1
  125. package/dist/test/apps/login.d.ts +12 -12
  126. package/dist/test/apps/login.d.ts.map +1 -1
  127. package/dist/test/apps/logoutButton.d.ts.map +1 -1
  128. package/dist/test/apps/mountPanel.d.ts +9 -9
  129. package/dist/test/apps/mountPanel.d.ts.map +1 -1
  130. package/dist/test/apps/mountPanel.js +24 -13
  131. package/dist/test/apps/multiRole.d.ts.map +1 -1
  132. package/dist/test/apps/pointer.d.ts +2 -2
  133. package/dist/test/apps/pointer.d.ts.map +1 -1
  134. package/dist/test/apps/resumeUpload.d.ts +8 -8
  135. package/dist/test/apps/resumeUpload.d.ts.map +1 -1
  136. package/dist/test/apps/scorePanel.d.ts.map +1 -1
  137. package/dist/test/apps/selectiveKeys.d.ts +2 -2
  138. package/dist/test/apps/selectiveKeys.d.ts.map +1 -1
  139. package/dist/test/apps/uploads.d.ts +15 -15
  140. package/dist/test/apps/uploads.d.ts.map +1 -1
  141. package/dist/test/apps/uploads.js +3 -3
  142. package/dist/test/internal.d.ts.map +1 -1
  143. package/dist/test/matchers.d.ts.map +1 -1
  144. package/dist/test/query.d.ts.map +1 -1
  145. package/dist/test/scene.d.ts +136 -58
  146. package/dist/test/scene.d.ts.map +1 -1
  147. package/dist/test/scene.js +75 -32
  148. package/dist/test/story.d.ts +30 -5
  149. package/dist/test/story.d.ts.map +1 -1
  150. package/dist/update/update.d.ts.map +1 -1
  151. package/dist/url/index.d.ts.map +1 -1
  152. package/dist/vdom.d.ts.map +1 -1
  153. package/dist/vdom.js +6 -8
  154. package/package.json +6 -8
@@ -7,6 +7,7 @@ import type { MountDefinition } from '../mount/index.js';
7
7
  import type { VNode } from '../vdom.js';
8
8
  import type { AnyCommand, AnyCommandInstance, AnyMount, CommandMatcher, MountMatcher, MountResolver, PendingMount, ResolvableCommandDefinition, ResolvableCommandMatcher, Resolver } from './internal.js';
9
9
  import type { Locator, LocatorAll } from './query.js';
10
+ import { allAltText, allDisplayValue, allLabel, allPlaceholder, allRole, allSelector, allTestId, allText, allTitle } from './query.js';
10
11
  export type { AnyCommand, AnyMount, MountMatcher, MountResolver, PendingMount, Resolver, };
11
12
  export { find, findAll, textContent, attr, getByRole, getAllByRole, getByText, getByPlaceholder, getByLabel, getByAltText, getByTitle, getByTestId, getByDisplayValue, role, placeholder, label, altText, title, testId, displayValue, selector, text, within, getAllByText, getAllByLabel, getAllByPlaceholder, getAllByAltText, getAllByTitle, getAllByTestId, getAllByDisplayValue, first, last, nth, filter, } from './query.js';
12
13
  export type { Locator, LocatorAll } from './query.js';
@@ -14,25 +15,15 @@ export type { Locator, LocatorAll } from './query.js';
14
15
  * to every matching VNode. Convert to a single `Locator` via `first`,
15
16
  * `last`, or `nth(n)`, or narrow via `filter`. */
16
17
  export declare const all: {
17
- readonly role: (roleValue: string, options?: Readonly<{
18
- name?: string | RegExp;
19
- level?: number;
20
- checked?: boolean | "mixed";
21
- selected?: boolean;
22
- pressed?: boolean | "mixed";
23
- expanded?: boolean;
24
- disabled?: boolean;
25
- }>) => LocatorAll;
26
- readonly text: (target: string, options?: Readonly<{
27
- exact?: boolean;
28
- }>) => LocatorAll;
29
- readonly label: (labelValue: string) => LocatorAll;
30
- readonly placeholder: (placeholderValue: string) => LocatorAll;
31
- readonly altText: (altValue: string) => LocatorAll;
32
- readonly title: (titleValue: string) => LocatorAll;
33
- readonly testId: (testIdValue: string) => LocatorAll;
34
- readonly displayValue: (valueString: string) => LocatorAll;
35
- readonly selector: (css: string) => LocatorAll;
18
+ readonly role: typeof allRole;
19
+ readonly text: typeof allText;
20
+ readonly label: typeof allLabel;
21
+ readonly placeholder: typeof allPlaceholder;
22
+ readonly altText: typeof allAltText;
23
+ readonly title: typeof allTitle;
24
+ readonly testId: typeof allTestId;
25
+ readonly displayValue: typeof allDisplayValue;
26
+ readonly selector: typeof allSelector;
36
27
  };
37
28
  export { sceneMatchers } from './matchers.js';
38
29
  /** An immutable test simulation that includes the rendered VNode tree.
@@ -43,6 +34,8 @@ export type SceneSimulation<Model, Message, OutMessage = undefined> = Readonly<{
43
34
  _phantom: [Model, Message];
44
35
  commands: ReadonlyArray<AnyCommand>;
45
36
  mounts: ReadonlyArray<PendingMount>;
37
+ /** The sole OutMessage from the latest update-producing Scene step.
38
+ * Undefined when that step emitted none or more than one. */
46
39
  outMessage: OutMessage | undefined;
47
40
  html: VNode;
48
41
  }>;
@@ -54,10 +47,92 @@ type GivenStep<Model> = Readonly<{
54
47
  export type SceneStep<Model, Message, OutMessage> = GivenStep<NoInfer<Model>> | ((simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>);
55
48
  /** Sets the initial Model for a scene test. */
56
49
  export declare const given: <Model>(model: Model) => GivenStep<Model>;
50
+ /** Resolves listed Commands with their result Messages, cascading through any
51
+ * Commands the result produces. Each entry is consumed by exactly one
52
+ * matching dispatch in declaration order, so
53
+ * `[Def, m1], [Def, m2], [Def, m3]` reads as a sequence of three responses.
54
+ * For N identical responses, compose with
55
+ * `Array.makeBy(n, () => [Def, message])`. Resolvers carry across
56
+ * `resolveAll` calls: unused entries can match later dispatches, and a new
57
+ * entry replaces any leftover resolvers sharing its Definition or Instance
58
+ * shape (latest wins). */
59
+ declare const resolveAllCommands: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
60
+ /** Resolves listed Commands with their result Messages, cascading through any
61
+ * Commands the results produce. Every resolver must match one dispatch in
62
+ * this call, and no actual Commands may remain unresolved. Supplied resolvers
63
+ * do not carry forward. */
64
+ declare const resolveAllExactCommands: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
65
+ /** Asserts that every given matcher matches a pending Command. Definition
66
+ * matchers match by name only; Instance matchers match by name + args. */
67
+ declare const expectHasCommandsStep: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
68
+ /** Asserts that the pending Commands match the given matchers exactly
69
+ * (order-independent). Definition matchers compare by name; Instance
70
+ * matchers compare by name + args. */
71
+ declare const expectExactCommandsStep: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
72
+ /** Asserts that there are no pending Commands. */
73
+ declare const expectNoCommandsStep: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
74
+ /** Resolves all listed Mounts with their result Messages. Mounts are resolved
75
+ * in the order listed; each resolution feeds its Message through update
76
+ * before the next is resolved. */
77
+ declare const resolveAllMounts: <R extends ReadonlyArray<unknown>>(...resolvers: { [K in keyof R]: MountResolver<R[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
78
+ /** Asserts that every given Mount is among the pending Mounts. Accepts Mount
79
+ * Definitions (match by name) and Mount instances (match by name + args). */
80
+ declare const expectHasMountsStep: (...matchers: ReadonlyArray<MountMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
81
+ /** Asserts that the pending Mounts match the given matchers exactly
82
+ * (order-independent). Accepts Mount Definitions (match by name) and Mount
83
+ * instances (match by name + args). */
84
+ declare const expectExactMountsStep: (...matchers: ReadonlyArray<MountMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
85
+ /** Asserts that there are no pending Mounts. */
86
+ declare const expectNoMountsStep: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
87
+ /** Acknowledges that the given Mounts disappeared from the rendered tree.
88
+ * Required for every Mount that fires and then unmounts during a scene,
89
+ * whether or not it was resolved first. Without this, the scene throws at
90
+ * the end of the test for any unacknowledged unmount. Mount matchers may
91
+ * be Definitions or instances; instances acknowledge a specific args shape. */
92
+ declare const expectEndedMountsStep: (...matchers: ReadonlyArray<MountMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
93
+ /** Feeds a Message through update as if a Subscription had emitted it,
94
+ * then re-renders. Use it for Messages whose real cause is a Subscription
95
+ * (a timer tick, a WebSocket frame, a global listener), which have no
96
+ * element in the rendered tree to interact with. Do NOT reach for it when
97
+ * the Message has a DOM affordance: click the actual button instead, so
98
+ * the test exercises the handler wiring this step skips. Like an
99
+ * interaction, it throws if unresolved Commands, unresolved Mounts, or
100
+ * unacknowledged unmounts are pending. */
101
+ declare const emitSubscriptionMessage: <MessageInput>(message: MessageInput) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
57
102
  /** A ManagedResource entry a scene can drive: the Option-shaped requirements
58
103
  * are what the runtime watches, so the steps can check the current Model
59
104
  * against them before dispatching a lifecycle Message. */
60
105
  type SceneManagedResourceEntry<EntryModel, EntryMessage, Value, OnAcquired extends (...args: any) => EntryMessage = (value: Value) => EntryMessage> = ManagedResourceEntry<EntryModel, EntryMessage, Option.Option<any>, Value, any, OnAcquired>;
106
+ /** Declares that a ManagedResource's acquire succeeded, feeding the entry's
107
+ * `onAcquired` Message through update the way the runtime would. The step
108
+ * takes exactly the arguments the entry's `onAcquired` declares: a handler
109
+ * that consumes the acquired value needs one here, and a handler that
110
+ * ignores it needs none. Requires the current Model to request the
111
+ * resource: the runtime only acquires while `modelToMaybeRequirements`
112
+ * returns Some, so drive the Model into that state through real steps
113
+ * first. */
114
+ declare const acquireManagedResource: <EntryModel, EntryMessage, Value, Args extends ReadonlyArray<any>>(entry: SceneManagedResourceEntry<EntryModel, EntryMessage, Value, (...args: Args) => EntryMessage>, ...args: NoInfer<Args>) => <Message, OutMessage = undefined>(simulation: SceneSimulation<EntryModel, Message, OutMessage>) => SceneSimulation<EntryModel, Message, OutMessage>;
115
+ /** Declares that a ManagedResource's acquire failed, feeding the entry's
116
+ * `onAcquireError(error)` Message through update the way the runtime
117
+ * would. Requires the current Model to request the resource, the same as
118
+ * {@link acquireManagedResource}: the runtime only attempts acquisition
119
+ * while `modelToMaybeRequirements` returns Some. */
120
+ declare const failAcquireManagedResource: <EntryModel, EntryMessage, Value>(entry: SceneManagedResourceEntry<EntryModel, EntryMessage, Value>, error: unknown) => <Message, OutMessage = undefined>(simulation: SceneSimulation<EntryModel, Message, OutMessage>) => SceneSimulation<EntryModel, Message, OutMessage>;
121
+ /** Declares that a ManagedResource was released, feeding the entry's
122
+ * `onReleased()` Message through update. Models the runtime's Some to
123
+ * None transition, which releases and then dispatches `onReleased()`, so
124
+ * it requires the current Model to no longer request the resource: drive
125
+ * the Model out of the requesting state through real steps first. The
126
+ * runtime's Some to Some re-acquire (structurally changed requirements),
127
+ * which also dispatches `onReleased()` and then `onAcquired(value)` while
128
+ * the Model still requests the resource, has no step yet. */
129
+ declare const releaseManagedResource: <EntryModel, EntryMessage, Value>(entry: SceneManagedResourceEntry<EntryModel, EntryMessage, Value>) => <Message, OutMessage = undefined>(simulation: SceneSimulation<EntryModel, Message, OutMessage>) => SceneSimulation<EntryModel, Message, OutMessage>;
130
+ /** Dispatches a CustomEvent a rendered custom element declares, feeding the
131
+ * Message its `On*` event mapping produces through update. The event name
132
+ * and detail are typed by the spec's event Schemas. The element must be in
133
+ * the rendered tree with the event's attribute attached, so the test
134
+ * exercises the same mapping the browser event would. */
135
+ declare const emitCustomElementEvent: <Events extends Record<string, Schema.Top>, Name extends keyof Events & string>(spec: CustomElementSpec<string, Record<string, Schema.Top>, Events>, target: string | Locator, eventName: Name, detail: Schema.Schema.Type<Events[Name]>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
61
136
  /** Steps that operate on the pending Commands of a scene simulation.
62
137
  * Destructure as `const { Command } = Scene` for concise call sites. */
63
138
  export declare const Command: {
@@ -71,17 +146,17 @@ export declare const Command: {
71
146
  * dispatch in declaration order; compose with `Array.makeBy` for N
72
147
  * identical responses. Resolvers carry across calls; a new entry replaces
73
148
  * any leftovers sharing its Definition or Instance shape (latest wins). */
74
- readonly resolveAll: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
149
+ readonly resolveAll: typeof resolveAllCommands;
75
150
  /** Resolves listed Commands and throws unless every resolver matches one
76
151
  * dispatch and no actual Commands remain unresolved. Entries apply only to
77
152
  * this call and never carry forward. */
78
- readonly resolveAllExact: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
153
+ readonly resolveAllExact: typeof resolveAllExactCommands;
79
154
  /** Asserts that every given Command is among the pending Commands. */
80
- readonly expectHas: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
155
+ readonly expectHas: typeof expectHasCommandsStep;
81
156
  /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
82
- readonly expectExact: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
157
+ readonly expectExact: typeof expectExactCommandsStep;
83
158
  /** Asserts that there are no pending Commands. */
84
- readonly expectNone: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
159
+ readonly expectNone: typeof expectNoCommandsStep;
85
160
  };
86
161
  /** Steps that operate on the pending Mounts of a scene simulation.
87
162
  * Destructure as `const { Mount } = Scene` for concise call sites. */
@@ -89,16 +164,16 @@ export declare const Mount: {
89
164
  /** Resolves a specific pending Mount with the given result Message. */
90
165
  readonly resolve: <Name extends string, ResultMessage>(matcher: MountDefinition<Name, ResultMessage> | AnyMount, resultMessage: ResultMessage) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
91
166
  /** Resolves all listed Mounts with their result Messages. */
92
- readonly resolveAll: <R extends ReadonlyArray<unknown>>(...resolvers: { [K in keyof R]: MountResolver<R[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
167
+ readonly resolveAll: typeof resolveAllMounts;
93
168
  /** Asserts that every given Mount is among the pending Mounts. */
94
- readonly expectHas: (...matchers: ReadonlyArray<MountMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
169
+ readonly expectHas: typeof expectHasMountsStep;
95
170
  /** Asserts that the pending Mounts match the given definitions exactly (order-independent, by name). */
96
- readonly expectExact: (...matchers: ReadonlyArray<MountMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
171
+ readonly expectExact: typeof expectExactMountsStep;
97
172
  /** Asserts that there are no pending Mounts. */
98
- readonly expectNone: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
173
+ readonly expectNone: typeof expectNoMountsStep;
99
174
  /** Acknowledges Mounts that disappeared from the rendered tree. Required for
100
175
  * every Mount that fires and then unmounts during a scene. */
101
- readonly expectEnded: (...matchers: ReadonlyArray<MountMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
176
+ readonly expectEnded: typeof expectEndedMountsStep;
102
177
  };
103
178
  /** Steps that model Messages arriving from a Subscription.
104
179
  * Destructure as `const { Subscription } = Scene` for concise call sites. */
@@ -106,7 +181,7 @@ export declare const Subscription: {
106
181
  /** Feeds a Message through update as if a Subscription had emitted it,
107
182
  * then re-renders. Only for Messages whose real cause is a Subscription;
108
183
  * if the Message has a DOM affordance, click it instead. */
109
- readonly emit: <MessageInput>(message: MessageInput) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
184
+ readonly emit: typeof emitSubscriptionMessage;
110
185
  };
111
186
  /** Steps that model the lifecycle Messages of a ManagedResource. The test
112
187
  * declares the lifecycle outcome the way `Scene.Command.resolve` declares a
@@ -119,25 +194,28 @@ export declare const ManagedResource: {
119
194
  /** Declares a successful acquire, feeding the entry's `onAcquired` Message
120
195
  * through update. Takes exactly the arguments `onAcquired` declares. The
121
196
  * current Model must request the resource. */
122
- readonly acquire: <EntryModel, EntryMessage, Value, Args extends ReadonlyArray<any>>(entry: SceneManagedResourceEntry<EntryModel, EntryMessage, Value, (...args: Args) => EntryMessage>, ...args: NoInfer<Args>) => <Message, OutMessage = undefined>(simulation: SceneSimulation<EntryModel, Message, OutMessage>) => SceneSimulation<EntryModel, Message, OutMessage>;
197
+ readonly acquire: typeof acquireManagedResource;
123
198
  /** Declares a failed acquire, feeding `onAcquireError(error)` through
124
199
  * update. The current Model must request the resource. */
125
- readonly failAcquire: <EntryModel, EntryMessage, Value>(entry: SceneManagedResourceEntry<EntryModel, EntryMessage, Value>, error: unknown) => <Message, OutMessage = undefined>(simulation: SceneSimulation<EntryModel, Message, OutMessage>) => SceneSimulation<EntryModel, Message, OutMessage>;
200
+ readonly failAcquire: typeof failAcquireManagedResource;
126
201
  /** Declares a release, feeding `onReleased()` through update. The current
127
202
  * Model must no longer request the resource. */
128
- readonly release: <EntryModel, EntryMessage, Value>(entry: SceneManagedResourceEntry<EntryModel, EntryMessage, Value>) => <Message, OutMessage = undefined>(simulation: SceneSimulation<EntryModel, Message, OutMessage>) => SceneSimulation<EntryModel, Message, OutMessage>;
203
+ readonly release: typeof releaseManagedResource;
129
204
  };
130
205
  /** Steps that model CustomEvents arriving from a rendered custom element.
131
206
  * Destructure as `const { CustomElement } = Scene` for concise call sites. */
132
207
  export declare const CustomElement: {
133
208
  /** Dispatches a declared CustomEvent through the element's event mapping.
134
209
  * The event name and detail are typed by the spec's event Schemas. */
135
- readonly emit: <Events extends Record<string, Schema.Top>, Name extends keyof Events & string>(spec: CustomElementSpec<string, Record<string, Schema.Top>, Events>, target: string | Locator, eventName: Name, detail: Schema.Schema.Type<Events[Name]>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
210
+ readonly emit: typeof emitCustomElementEvent;
136
211
  };
137
- /** Asserts by structural equality that update emitted the expected OutMessage,
138
- * so callers can pass a freshly constructed expected value. */
212
+ /** Asserts by structural equality that the latest update-producing Scene step
213
+ * emitted exactly the expected OutMessage. */
139
214
  export declare const expectOutMessage: <Expected>(expected: Expected) => <Model, Message, OutMessage>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
140
- /** Asserts that update emitted no OutMessage. */
215
+ /** Asserts by structural equality that the latest update-producing Scene
216
+ * step emitted two or more expected OutMessages in runtime order. */
217
+ export declare const expectOutMessages: <Expected extends readonly [unknown, unknown, ...ReadonlyArray<unknown>]>(...expected: Expected) => <Model, Message, OutMessage>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
218
+ /** Asserts that the latest update-producing Scene step emitted no OutMessages. */
141
219
  export declare const expectNoOutMessage: () => <Model, Message, OutMessage>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
142
220
  /** Asserts that the preceding interaction was handled: its event handler
143
221
  * produced a Message.
@@ -286,6 +364,24 @@ export declare const keydown: {
286
364
  * the current view and asserts on the result. */
287
365
  export { expect_ as expect };
288
366
  declare const expect_: (locator: Locator) => {
367
+ toExist: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
368
+ toBeAbsent: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
369
+ toHaveText: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
370
+ toContainText: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
371
+ toHaveAttr: (name: string, value?: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
372
+ toHaveClass: (expected: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
373
+ toHaveStyle: (name: string, value?: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
374
+ toHaveHook: (name: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
375
+ toHaveHandler: (name: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
376
+ toHaveValue: (expected: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
377
+ toBeDisabled: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
378
+ toBeEnabled: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
379
+ toBeEmpty: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
380
+ toBeVisible: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
381
+ toHaveId: (expected: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
382
+ toHaveAccessibleName: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
383
+ toHaveAccessibleDescription: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
384
+ toBeChecked: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
289
385
  not: {
290
386
  toExist: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
291
387
  toBeAbsent: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
@@ -306,34 +402,16 @@ declare const expect_: (locator: Locator) => {
306
402
  toHaveAccessibleDescription: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
307
403
  toBeChecked: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
308
404
  };
309
- toExist: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
310
- toBeAbsent: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
311
- toHaveText: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
312
- toContainText: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
313
- toHaveAttr: (name: string, value?: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
314
- toHaveClass: (expected: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
315
- toHaveStyle: (name: string, value?: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
316
- toHaveHook: (name: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
317
- toHaveHandler: (name: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
318
- toHaveValue: (expected: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
319
- toBeDisabled: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
320
- toBeEnabled: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
321
- toBeEmpty: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
322
- toBeVisible: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
323
- toHaveId: (expected: string) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
324
- toHaveAccessibleName: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
325
- toHaveAccessibleDescription: (expected: string | RegExp) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
326
- toBeChecked: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
327
405
  };
328
406
  /** Creates an inline multi-match assertion step. Use for count-based
329
407
  * assertions like `toHaveCount(n)` or `toBeEmpty()`. */
330
408
  export declare const expectAll: (locatorAll: LocatorAll) => {
409
+ toHaveCount: (expected: number) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
410
+ toBeEmpty: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
331
411
  not: {
332
412
  toHaveCount: (expected: number) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
333
413
  toBeEmpty: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
334
414
  };
335
- toHaveCount: (expected: number) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
336
- toBeEmpty: () => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
337
415
  };
338
416
  /** Adapts a Submodel view that declares `ViewInputs` to the `(model, h)`
339
417
  * shape `Scene.scene` takes. `defaults` supplies the full `ViewInputs`
@@ -351,7 +429,7 @@ export declare const expectAll: (locatorAll: LocatorAll) => {
351
429
  * Scene.scene({ update, view: sceneView({ isDisabled: true }) }, ...)
352
430
  * ```
353
431
  */
354
- export declare const withViewInputs: <Model, Message, ViewInputs extends object>(view: (model: Model, viewInputs: ViewInputs, h: HtmlBuilder<Message>) => Html, defaults: NoInfer<ViewInputs>) => (overrides?: Omit<Partial<NoInfer<ViewInputs>>, "toView">) => (model: Model, h: HtmlBuilder<Message>) => Html;
432
+ export declare const withViewInputs: <Model, Message, ViewInputs extends object>(view: (model: Model, viewInputs: ViewInputs, h: HtmlBuilder<Message>) => Html, defaults: NoInfer<ViewInputs>) => (overrides?: Omit<Partial<NoInfer<ViewInputs>>, 'toView'>) => (model: Model, h: HtmlBuilder<Message>) => Html;
355
433
  /** Executes a scene test. Throws if any Commands or Mounts remain
356
434
  * unresolved, any unmount is unacknowledged, or any interaction fell
357
435
  * through unacknowledged. */
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/test/scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/test/scene.ts"],"names":[],"mappings":"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"}
@@ -86,6 +86,36 @@ const UNINITIALIZED = Symbol('uninitialized');
86
86
  const toInternal = (simulation) =>
87
87
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
88
88
  simulation;
89
+ const createOutMessageCapture = (updateFn) => {
90
+ const outMessages = [];
91
+ let isUpdateApplied = false;
92
+ return {
93
+ updateFn: (model, message) => {
94
+ isUpdateApplied = true;
95
+ const messageUpdate = updateFn(model, message);
96
+ if (!Predicate.isUndefined(messageUpdate.outMessage)) {
97
+ outMessages.push(messageUpdate.outMessage);
98
+ }
99
+ return messageUpdate;
100
+ },
101
+ getOutMessages: () => outMessages,
102
+ isUpdateApplied: () => isUpdateApplied,
103
+ };
104
+ };
105
+ const withOutMessages = (simulation, outMessages) => {
106
+ const internal = toInternal(simulation);
107
+ const outMessage = Array.matchLeft(outMessages, {
108
+ onEmpty: () => undefined,
109
+ onNonEmpty: (head, tail) => Array.isReadonlyArrayEmpty(tail) ? head : undefined,
110
+ });
111
+ /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
112
+ return {
113
+ ...internal,
114
+ outMessage,
115
+ outMessages,
116
+ outMessageRevision: internal.outMessageRevision + 1,
117
+ };
118
+ };
89
119
  const applyScopeToTarget = (scope, target) => Option.match(scope, {
90
120
  onNone: () => target,
91
121
  onSome: parent => typeof target === 'string'
@@ -208,28 +238,7 @@ const applyExternalMessages = (simulation, messages, context) => {
208
238
  assertNoUnresolvedCommands(internal.commands, context);
209
239
  assertNoUnresolvedMounts(internal.mounts, context);
210
240
  assertNoUnacknowledgedUnmounts(unacknowledgedEndedMountsOf(internal.mountSlots), context);
211
- const appliedMessages = Array.reduce(messages, {
212
- simulation,
213
- outMessages: Array.empty(),
214
- }, (current, message) => {
215
- const nextSimulation = applyMessageWithoutBoundaryChecks(current.simulation, message);
216
- const nextOutMessage = toInternal(nextSimulation).outMessage;
217
- return {
218
- simulation: nextSimulation,
219
- outMessages: Predicate.isUndefined(nextOutMessage)
220
- ? current.outMessages
221
- : Array.append(current.outMessages, nextOutMessage),
222
- };
223
- });
224
- if (Array.isReadonlyArrayNonEmpty(Array.drop(appliedMessages.outMessages, 1))) {
225
- throw new Error('One interaction emitted multiple OutMessages, but Scene can expose only one OutMessage per step.\n\n' +
226
- 'Split the DOM handlers into separate interactions, or test this composition at the parent boundary where each OutMessage is folded.');
227
- }
228
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
229
- return {
230
- ...toInternal(appliedMessages.simulation),
231
- outMessage: pipe(appliedMessages.outMessages, Array.head, Option.getOrUndefined),
232
- };
241
+ return Array.reduce(messages, simulation, applyMessageWithoutBoundaryChecks);
233
242
  };
234
243
  /** Clears the pending fall-through, marking it acknowledged. Paired with
235
244
  * {@link assertNoUnacknowledgedIgnored}, which is what it silences. */
@@ -701,22 +710,39 @@ export const CustomElement = {
701
710
  * The event name and detail are typed by the spec's event Schemas. */
702
711
  emit: emitCustomElementEvent,
703
712
  };
704
- /** Asserts by structural equality that update emitted the expected OutMessage,
705
- * so callers can pass a freshly constructed expected value. */
713
+ /** Asserts by structural equality that the latest update-producing Scene step
714
+ * emitted exactly the expected OutMessage. */
706
715
  export const expectOutMessage = (expected) => (simulation) => {
707
716
  const internal = toInternal(simulation);
708
- const outMessage = internal.outMessage;
709
- if (outMessage === undefined || !Equal.equals(outMessage, expected)) {
710
- throw new Error(`Expected OutMessage:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(outMessage)}`);
717
+ const maybeOutMessage = Array.head(internal.outMessages);
718
+ if (Option.isNone(maybeOutMessage)) {
719
+ throw new Error(`Expected OutMessage:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n undefined`);
720
+ }
721
+ if (Array.isReadonlyArrayNonEmpty(Array.drop(internal.outMessages, 1))) {
722
+ throw new Error(`Expected exactly one OutMessage but got multiple:\n\n ${JSON.stringify(internal.outMessages)}`);
723
+ }
724
+ if (!Equal.equals(maybeOutMessage.value, expected)) {
725
+ throw new Error(`Expected OutMessage:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(maybeOutMessage.value)}`);
726
+ }
727
+ return simulation;
728
+ };
729
+ /** Asserts by structural equality that the latest update-producing Scene
730
+ * step emitted two or more expected OutMessages in runtime order. */
731
+ export const expectOutMessages = (...expected) => (simulation) => {
732
+ const actual = toInternal(simulation).outMessages;
733
+ if (!Equal.equals(actual, expected)) {
734
+ throw new Error(`Expected OutMessages:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(actual)}`);
711
735
  }
712
736
  return simulation;
713
737
  };
714
- /** Asserts that update emitted no OutMessage. */
738
+ /** Asserts that the latest update-producing Scene step emitted no OutMessages. */
715
739
  export const expectNoOutMessage = () => (simulation) => {
716
740
  const internal = toInternal(simulation);
717
- const outMessage = internal.outMessage;
718
- if (!Predicate.isUndefined(outMessage)) {
719
- throw new Error(`Expected no OutMessage but got:\n\n ${JSON.stringify(outMessage)}`);
741
+ if (Array.isReadonlyArrayNonEmpty(internal.outMessages)) {
742
+ const actual = Array.isReadonlyArrayEmpty(Array.drop(internal.outMessages, 1))
743
+ ? Array.headNonEmpty(internal.outMessages)
744
+ : internal.outMessages;
745
+ throw new Error(`Expected no OutMessage but got:\n\n ${JSON.stringify(actual)}`);
720
746
  }
721
747
  return simulation;
722
748
  };
@@ -792,7 +818,22 @@ export const tap = (f) => (simulation) => {
792
818
  const runSteps = (seed, steps) =>
793
819
  /* eslint-disable @typescript-eslint/consistent-type-assertions */
794
820
  Array.reduce(steps, seed, (current, step) => {
795
- const next = step(current);
821
+ const currentInternal = toInternal(current);
822
+ const outMessageCapture = createOutMessageCapture(currentInternal.updateFn);
823
+ const capturingSimulation = {
824
+ ...currentInternal,
825
+ updateFn: outMessageCapture.updateFn,
826
+ };
827
+ const stepResult = step(capturingSimulation);
828
+ const restoredSimulation = {
829
+ ...toInternal(stepResult),
830
+ updateFn: currentInternal.updateFn,
831
+ };
832
+ const isSequenceUpdatedByNestedSteps = toInternal(restoredSimulation).outMessageRevision !==
833
+ currentInternal.outMessageRevision;
834
+ const next = outMessageCapture.isUpdateApplied() && !isSequenceUpdatedByNestedSteps
835
+ ? withOutMessages(restoredSimulation, outMessageCapture.getOutMessages())
836
+ : restoredSimulation;
796
837
  const internal = toInternal(next);
797
838
  if (internal.model !== UNINITIALIZED) {
798
839
  const html = renderView(internal.viewFn, internal.model, internal.capturingDispatch.dispatch);
@@ -1377,6 +1418,8 @@ export const scene = (config, ...steps) => {
1377
1418
  mounts: [],
1378
1419
  mountSlots: [],
1379
1420
  outMessage: undefined,
1421
+ outMessages: [],
1422
+ outMessageRevision: 0,
1380
1423
  updateFn: config.update,
1381
1424
  resolvers: [],
1382
1425
  html: undefined,
@@ -25,8 +25,33 @@ export declare const given: <Model>(model: Model) => GivenStep<Model>;
25
25
  /** Sends a Message through update. Commands stay pending until resolve or
26
26
  * resolveAll. */
27
27
  export declare const message: <MessageInput>(message_: MessageInput) => <Model, Message, OutMessage>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
28
+ /** Resolves listed Commands with their result Messages, cascading through any
29
+ * Commands the result produces. Each entry is consumed by exactly one
30
+ * matching dispatch in declaration order, so
31
+ * `[Def, m1], [Def, m2], [Def, m3]` reads as a sequence of three responses.
32
+ * For N identical responses, compose with
33
+ * `Array.makeBy(n, () => [Def, message])`. Resolvers carry across
34
+ * `resolveAll` calls: unused entries can match later dispatches, and a new
35
+ * entry replaces any leftover resolvers sharing its Definition or Instance
36
+ * shape (latest wins). */
37
+ declare const resolveAllCommands: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
38
+ /** Resolves listed Commands with their result Messages, cascading through any
39
+ * Commands the results produce. Every resolver must match one dispatch in
40
+ * this call, and no actual Commands may remain unresolved. Supplied resolvers
41
+ * do not carry forward. */
42
+ declare const resolveAllExactCommands: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
28
43
  /** Runs an assertion function against the current Model. */
29
44
  export declare const model: <Model>(f: (model: Model) => void) => ModelStep<Model>;
45
+ /** Asserts that every given matcher matches a pending Command. Definition
46
+ * matchers match by name only; Instance matchers match by name + args. */
47
+ declare const expectHasCommandsStep: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
48
+ /** Asserts that the pending Commands match the given matchers exactly
49
+ * (order-independent). Definition matchers compare by name; Instance
50
+ * matchers compare by name + args. Each matcher must consume exactly one
51
+ * pending Command. */
52
+ declare const expectExactCommandsStep: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
53
+ /** Asserts that there are no pending Commands. */
54
+ declare const expectNoCommandsStep: () => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
30
55
  /** Steps that operate on the pending Commands of a story simulation.
31
56
  * Destructure as `const { Command } = Story` for concise call sites. */
32
57
  export declare const Command: {
@@ -40,17 +65,17 @@ export declare const Command: {
40
65
  * dispatch in declaration order; compose with `Array.makeBy` for N
41
66
  * identical responses. Resolvers carry across calls; a new entry replaces
42
67
  * any leftovers sharing its Definition or Instance shape (latest wins). */
43
- readonly resolveAll: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
68
+ readonly resolveAll: typeof resolveAllCommands;
44
69
  /** Resolves listed Commands and throws unless every resolver matches one
45
70
  * dispatch and no actual Commands remain unresolved. Entries apply only to
46
71
  * this call and never carry forward. */
47
- readonly resolveAllExact: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
72
+ readonly resolveAllExact: typeof resolveAllExactCommands;
48
73
  /** Asserts that every given Command is among the pending Commands. */
49
- readonly expectHas: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
74
+ readonly expectHas: typeof expectHasCommandsStep;
50
75
  /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
51
- readonly expectExact: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
76
+ readonly expectExact: typeof expectExactCommandsStep;
52
77
  /** Asserts that there are no pending Commands. */
53
- readonly expectNone: () => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
78
+ readonly expectNone: typeof expectNoCommandsStep;
54
79
  };
55
80
  /** Asserts by structural equality that update emitted the expected OutMessage,
56
81
  * so callers can pass a freshly constructed expected value. */