primitives for writing tests

[?]
Apr 12, 2023, 4:33 AM
HXH4AIF2YG5QYNJEDZOSJLFTMWSDERW7XJBQX5ZDQ2TXM222TXYQC

Dependencies

  • [2] N2NUGNN4 include a brief reference enabling many useful apps
  • [3] AD34IX2Z couple more tests
  • [4] KKMFQDR4 editing source code from within the app
  • [5] AVTNUQYR basic test-enabled framework
  • [*] 3QNOKBFM beginnings of a test harness

Change contents

  • edit in reference.md at line 314
    [2.12596]
    ### writing tests
    * `App.screen.init{width=.., height=..}` -- creates a fake screen for a test
    * `App.screen.check(y, expected_contents, msg)` -- verifies text written to
    the fake screen at `y`. This isn't very realistic; `y` must exactly match
    what was displayed, and the expected contents show everything printed to
    that `y` in chronological order, regardless of `x` coordinate. In spite of
    these limitations, you can write lots of useful tests with this.
    * `App.run_after_textinput(t)` -- mimics keystrokes resulting in `t` and then
    draws one frame.
    * `App.run_after_keychord(chord)` -- mimics keystrokes resulting in `chord`
    and then draws one frame.
    * `App.run_after_mouse_press(x,y, mouse_button)` -- mimics a mouse press down
    followed by drawing a frame.
    * `App.run_after_mouse_release(x,y, mouse_button)` -- mimics a mouse release
    up followed by drawing a frame.
    * `App.run_after_mouse_click(x,y, mouse_button)` -- mimics a mouse press down
    and mouse release up followed by drawing a frame.
    * `App.wait_fake_time(t)` -- simulates the passage of time for `App.getTime()`.
  • replacement in app.lua at line 148
    [3.5884][3.5884:5926]()
    App.screen.init({width=100, height=50})
    [3.5884]
    [3.5926]
    App.screen.init{width=100, height=50}