Run unit and integration tests for Catalyst-Relay. Use when asked to test, run tests, verify changes, or check if code works.
bun test # All tests
bun test --watch # Watch mode
bun test src/__tests__/core # Specific directory
Before publishing, verify library imports work in Node:
node --experimental-strip-types -e "import('.')"
Integration tests require SAP credentials and connect to a live SAP system.
There are two ways credentials can be provided:
SAP_TEST_SYSTEM_ALIAS is set in .env (e.g. TKO-DS4), the test helpers automatically read the password from the OS keyring where Catalyst-CLI stores it. No manual password entry needed.SAP_PASSWORD can be set directly or passed to ./test.bat <password>.The keyring lookup uses the Catalyst-CLI service name and key format ({alias}:basic:password). If both are available, SAP_PASSWORD takes priority.
.env exists with system connection details (URL, client, username)bun test (credentials resolve from keyring) or ./test.bat <SAP_PASSWORD>test.output for integration test results if using test.bat| Variable | Required | Description |
|----------|----------|-------------|
| SAP_TEST_ADT_URL | Yes | SAP ADT server URL |
| SAP_TEST_CLIENT | Yes | SAP client number |
| SAP_TEST_USERNAME | Yes | SAP username |
| SAP_TEST_SYSTEM_ALIAS | No | System alias for keyring credential lookup |
| SAP_PASSWORD | No* | SAP password (not needed if keyring is configured) |
| SAP_TEST_PACKAGE | No | Target package (default: $TMP) |
| SAP_TEST_TRANSPORT | No | Transport request |
See .env.templ for a template.
| Test File | Coverage |
|-----------|----------|
| cds-workflow.test.ts | CDS View + Access Control lifecycle |
| abap-class-workflow.test.ts | ABAP Class CRAUD |
| abap-program-workflow.test.ts | ABAP Program CRAUD |
| table-workflow.test.ts | Table + data preview |
| discovery-workflow.test.ts | Packages, tree, transports |
| search-workflow.test.ts | Search + where-used |
| data-preview-workflow.test.ts | Preview on T000 table |
| upsert-workflow.test.ts | Create vs update detection |
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer