Bonsai_web_test.HandleSourceinclude module type of struct include Bonsai_test.Handle endshow prints out the result of the component as specified by the Result_spec that was passed into Handle.create.
val show_diff :
?location_style:Patdiff_kernel.Format.Location_style.t ->
?diff_context:int ->
(_, _) t ->
unitshow_diff will print the diff of the view between now and the last time that show or show_diff was called.
diff_context can be used to adjust the number of unchanged lines before and after the diffed content. Defaults to 16
recompute_view is like show, but it doesn't print anything. Calling recompute_view between invocations of show_diff does not affect the diff the gets shown.
This function calls recompute_view until either max_computes is reached (defaults to 100), or there are no more after-display lifecycle events for processing.
This can be useful when using e.g. Bonsai.Edge.on_change, which might otherwise delay their effects until the next frame.
store_view is like show except that instead of printing the view to stdout, it only stores the current view for use with show_diff. This can be useful if you want to print the diff of "before->after" without being required to print the entirety of "before".
val create :
(module Bonsai_web_test__.Proc.Result_spec.S
with type incoming = 'b
and type t = 'a) ->
?rpc_implementations:
Async_rpc_kernel.Rpc.Connection.t Async_rpc_kernel.Rpc.Implementation.t
list ->
?connectors:
(Bonsai_web.Rpc_effect.Where_to_connect.t ->
Bonsai_web.Rpc_effect.Connector.t) ->
?start_time:Core.Time_ns.t ->
?optimize:bool ->
'a Bonsai_web.Computation.t ->
('a, 'b) tval flush_async_and_bonsai :
?max_iterations:int ->
?silence_between_frames:bool ->
('a, 'b) t ->
unit Async_kernel.Deferred.tRuns recompute_view and Async_kernel_scheduler.yield_until_no_jobs_remain in a loop until nothing remains to be done. This is a good sledgehammer function to use if you want to wait until all the effects of a user-action have completed.
By default, this function prints "------ between bonsai frame ------" in between each iteration to demonstrate when side-effects occur, and how long it took for a stable state to be reached. This line is just extra documentation; it is not necessarily a sign that something is wrong (unless, of course, the behavior of the thing you're trying to test shouldn't result in an extra frame). These lines can be removed by passing ~silence_between_frames:true in case your tests take a non-deterministic number of iterations to stabilize.
max_iterations controls how many loop iterations are allowed before the function aborts with an exception, in case the default of 100 is too low. However, you should rarely, if ever need this parameter.
val click_on :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
?shift_key_down:bool ->
?alt_key_down:bool ->
?ctrl_key_down:bool ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
unitval submit_form :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
unitval set_checkbox :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
?shift_key_down:bool ->
?alt_key_down:bool ->
?ctrl_key_down:bool ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
checked:bool ->
unitval input_text :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
text:string ->
unitval keydown :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
?shift_key_down:bool ->
?alt_key_down:bool ->
?ctrl_key_down:bool ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
key:Js_of_ocaml.Dom_html.Keyboard_code.t ->
unitval change :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
value:string ->
unitval focus :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
unitval blur :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
?related_target:string ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
unitval mousemove :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
unitval mouseenter :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
unitval wheel :
?extra_event_fields:(string * Js_of_ocaml.Js.Unsafe.any) list ->
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
delta_y:float ->
unitval trigger_hook :
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
name:string ->
('c -> unit Bonsai_web.Vdom.Effect.t) Core.Type_equal.Id.t ->
'c ->
unitval trigger_hook_via :
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
name:string ->
't Core.Type_equal.Id.t ->
f:('t -> 'c -> unit Bonsai_web.Vdom.Effect.t) ->
'c ->
unitval get_hook_value :
('a, 'b) t ->
get_vdom:('a -> Bonsai_web.Vdom.Node.t) ->
selector:string ->
name:string ->
'c Core.Type_equal.Id.t ->
'c