2.6 KiB
Testing
This document describes the test setup, the run commands, and the known gaps.
Unit tests
The pure daemon logic has unit tests. The tests cover the ring buffers, the mention helpers, the command parser, the trust check, and the pacing range.
cd poc
pnpm test:comm
The file is poc/src/test-communication.ts. The tests do not need Discord or Vesktop.
Type checks
cd poc && pnpm check # daemon and spike code
cd .. && pnpm testTypes # Vesktop core
Both commands must pass before a change is complete.
Build
pnpm build
The build writes the application to dist/.
CDP probe
The probe checks the current CDP transport. Start the client with
--remote-debugging-port=9222 first.
cd poc
pnpm cdp:probe
A good result shows the Vencord global, the Flux dispatcher, the current user, and one binding event.
Live test setup
The container has no display and no PipeWire. Use a virtual display.
# 1. Start a virtual display. On Linux, install Xvfb or extract it locally.
Xvfb :99 -screen 0 1280x720x24 &
# 2. Start the stock client with a pinned profile and remote debugging.
DISPLAY=:99 \
VENCORD_USER_DATA_DIR=~/.config/veskslop \
electron . --no-sandbox --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222
# 3. Start the daemon.
cd poc && pnpm control:bridge
# 4. Check the health endpoint.
curl http://127.0.0.1:8788/health
Notes:
VENCORD_USER_DATA_DIRpins the Electron profile. The profile holds the client session.- Write
{"firstLaunch": false}to<DATA_DIR>/state.jsonbefore the first start. This step skips the first-launch window. TheVESKSLOP_HEADLESS=1flag does the same job when it is in the tree. - The container needs
libasound.so.2for Electron. Extract the library locally when the system package is not available.
Sanctioned live target
The only permitted live-send target is user zzib (177117296140091393). Send a test message
with this command:
cd poc
pnpm poc:dm
CDP live results
The CDP transport was verified on 2026-09-11:
get_statereturned the real account and 7 guilds.send_dmdelivered a real DM to zzib.- The client ran headless under Xvfb.
- The token was seeded from the token file.
Known gaps
| Gap | Effect |
|---|---|
| Mock core is not in the tree. | The daemon tests need the real client. |
| The trigger event path needs an incoming message. | Use zzib's account for a live test. |
message.read is cache-only. |
A channel that the client never opened returns zero messages. |
| Voice, audio, and video are not started. | No test coverage. |