raea app
Run, check headless and package a desktop app written as one TSX file on @raea/ui.
raea app takes a desktop app written in React on @raea/ui and runs it in a window (run), runs it headless
through scripted steps and writes a PNG after each one (check), or packages it as a Mac app (bundle). The web
target draws it with Blitz on Bevy; the native target with Rune. The app's export const app picks the target, and
--target overrides it.
raea app run signin.tsx
raea app check signin.tsx --png out/ # 00-mount.png, a PNG after each step, tree.json
raea app check signin.tsx --target native --script steps.json --png out/native/
raea app bundle signin.tsx -o "Sign In.app"The check's steps find elements by data-testid. Read the PNGs it writes: tree.json gives each element's role,
label, text and box.
Usage
raea app run|check|bundle APP.tsx [--target web|native] [--size WxH] [--script steps.json] [--png DIR] [-o App.app] (a TSX app on @raea/ui: its window, the headless check, a Mac app; web is Blitz on Bevy, native is Rune; the app's `export const app` sets the target, web when it doesn't; raea rune ... is --target native)Headless: it needs nothing running and opens no window. Takes up to 2 arguments besides its flags.
Flags
| Flag | Takes | What it does |
|---|---|---|
--png | DIR | Where check writes its PNGs and tree.json. |
--script | steps.json | The steps check runs, when they aren't in the app's own file. |
--size | WxH | The window's size in pixels. |
--target | web|native | Draw with Blitz on Bevy (web) or with Rune (native), over what the app's export const app says. |
-o | App.app | Where bundle writes the Mac app. |
See also
- Apps walks through writing, checking and bundling an app on both targets.