Cairn · module

Cairn.Abi.Tests

lean/Cairn/Abi/Tests.lean

Checks for Cairn.Abi, kept out of the module so they can use #guard (a #guard in a module needs a meta import of what it evaluates): the frame encoder's font clamping, then concrete checks of the runtime on a small app, laid out by Cairn.Layout.layout.

Imports Cairn.Runtime.Abi, Cairn.Abi

Order

Structures 1

structure

Cairn.Runtime.Tests.TState

lean/Cairn/Abi/Tests.lean:25
TState : Type

Records every action it is given, so tests can read what the runtime delivered.

Fields
count : Nat
text : String
caret : Nat
log : List Action
Instances

Inhabited

Definitions 26

def

Cairn.Runtime.Tests.ref

lean/Cairn/Abi/Tests.lean:32
ref (n : Nat) : ControlRef
def

Cairn.Runtime.Tests.btn

lean/Cairn/Abi/Tests.lean:34
btn (n : Nat) (label : String) : Node
def

Cairn.Runtime.Tests.view

lean/Cairn/Abi/Tests.lean:40
view (s : TState) (ui : UI) : Node

^1 increment, ^2 a field, ^3 a button with a static label (no control role), ^4 reset when the count is positive, and ^5 a delete button shown only while ^1 is hovered.

def

Cairn.Runtime.Tests.update

lean/Cairn/Abi/Tests.lean:49
update (s : TState) (a : Action) : TState × List Effect
def

Cairn.Runtime.Tests.app

lean/Cairn/Abi/Tests.lean:59
app : App TState
def

Cairn.Runtime.Tests.cfg

lean/Cairn/Abi/Tests.lean:60
cfg : Config
def

Cairn.Runtime.Tests.s0

lean/Cairn/Abi/Tests.lean:61
s0 : State TState
def

Cairn.Runtime.Tests.run

lean/Cairn/Abi/Tests.lean:63
run (es : List Event) : State TState × List Effect
def

Cairn.Runtime.Tests.log

lean/Cairn/Abi/Tests.lean:64
log (es : List Event) : List Action
def

Cairn.Runtime.Tests.ui

lean/Cairn/Abi/Tests.lean:65
ui (es : List Event) : UI
def

Cairn.Runtime.Tests.down

lean/Cairn/Abi/Tests.lean:67
down (x y : Int) (clicks : Nat := 1) (mods : Mods := { }) : Event
def

Cairn.Runtime.Tests.up

lean/Cairn/Abi/Tests.lean:68
up (x y : Int) : Event
def

Cairn.Runtime.Tests.click

lean/Cairn/Abi/Tests.lean:69
click (x y : Int) : List Event
def

Cairn.Runtime.Tests.tab

lean/Cairn/Abi/Tests.lean:138
tab (back : Bool := false) : Event
def

Cairn.Runtime.Tests.resetByKey

lean/Cairn/Abi/Tests.lean:149
resetByKey : List Event
def

Cairn.Runtime.Tests.focusApp

lean/Cairn/Abi/Tests.lean:156
focusApp : App TState
def

Cairn.Runtime.Tests.runF

lean/Cairn/Abi/Tests.lean:164
runF (es : List Event) : State TState × List Effect
def

Cairn.Runtime.Tests.evBytes

lean/Cairn/Abi/Tests.lean:183
evBytes : ByteArray
def

Cairn.Runtime.Tests.boundary

lean/Cairn/Abi/Tests.lean:184
boundary : Boundary
def

Cairn.Runtime.Tests.scrollView

lean/Cairn/Abi/Tests.lean:192
scrollView : TState → (ui : UI) → Node
def

Cairn.Runtime.Tests.scrollApp

lean/Cairn/Abi/Tests.lean:198
scrollApp : App TState
def

Cairn.Runtime.Tests.runS

lean/Cairn/Abi/Tests.lean:199
runS (es : List Event) : State TState × List Effect
def

Cairn.Runtime.Tests.offS

lean/Cairn/Abi/Tests.lean:201
offS (es : List Event) : Int
def

Cairn.Runtime.Tests.wheelAt

lean/Cairn/Abi/Tests.lean:202
wheelAt (dy : Int) : Event
def

Cairn.Runtime.Tests.appears

lean/Cairn/Abi/Tests.lean:203
appears (es : List Event) : Nat
def

Cairn.Runtime.Tests.batchesS

lean/Cairn/Abi/Tests.lean:233
batchesS (bs : List (List Event)) : State TState

Instances 1

instance

Cairn.Runtime.Tests.instInhabitedTState

lean/Cairn/Abi/Tests.lean:30
instInhabitedTState : Inhabited TState