-
Notifications
You must be signed in to change notification settings - Fork 0
Testing
RGX-Hello is two things in one install:
-
The reference addon —
data/core.luais the canonical hello-world: the smallest complete RGX addon, written in the declarativeRGXAddonstyle you should copy when starting your own. -
The framework's in-game test suite —
data/visualtest.luaexercises every user-facing framework module through the manual API, and doubles as the reference for going beyond the declarative surface.
| Command | Opens |
|---|---|
/rgxhello |
RGX-Hello's own options panel (the hello-world addon) |
/rgxvisual or /rgxviz
|
The full test suite |
/rgxcolor or /rgxcp
|
The color picker directly |
| Tab | Framework features exercised |
|---|---|
| Colors |
RGXColorPicker (SV box, hue bar, HEX/RGB, presets), UI:CreateColorPicker swatches + Reset |
| Controls |
UI:CreateToggle / CreateSlider / CreateVolumeSlider, reset buttons, label word-wrap |
| Dropdowns |
RGXDropdowns:CreateNestedDropdown (groups, separators, checked state) |
| Media |
RGXFonts font dropdown, RGXTextures statusbar textures |
| Tooltip |
Tip:Attach builder, manual Show/Hide, HookNative("item") injection |
| Auras |
IterateAuras scan, WatchUnit + OnApplied/OnRemoved live log with unsubscribe |
| Minimap |
MM:Create (icon, tooltip, drag, persistent angle), Toggle/IsShown
|
| Design |
RGX:Font one-call styling, RGXDesign primitives, theme tokens |
| System | declarative every self-cancellation, RGX:After, RGX:Every, RGX:CancelTimer
|
Sound is intentionally untested here — the sound module is a per-addon registry that BLU exercises in production, which is a more honest test than a synthetic registration.
When a framework module ships or changes, its test tab lands in RGX-Hello in the same cycle. Contract-side, the loop closes from the other direction too: the framework's RGX-MCP end-to-end test validates and audits RGX-Hello on every run.
CI also executes focused declarative behavior in a real Lua 5.1 VM.
tools/ci/declarative-every-runtime-test.lua verifies strict validation before
resource registration, ADDON_LOADED setup ordering, deterministic dispatch,
owner/name metadata, self-cancellation, duplicate rejection, and callback
failure isolation. This headless fixture is not in-game validation and does not
model Blizzard UI, combat lockdown, taint, or secret values.