Skip to main content

Testing

Testing support inside ixtable is planned and not implemented.

This page reserves the documentation structure for project-level tests. The repository already tests the ixtable application itself, but an ixtable project cannot define or run its own test suite yet.

:::warning Work in progress

Testing is a documentation stub. There is no testing workspace in the app.

:::

Planned scope​

Project tests should cover data rules and designed workflows. The exact test model, runner, and result format are still open.

:::note TODO

Define the test file format, fixtures, assertions, runner, result history, and continuous integration interface.

:::

Repository tests​

Contributors can test the ixtable codebase from the repository root. npm test first builds the Rust core as a Node module, then runs the unit tests and the integration tests. Integration tests render the real interface and send every command to the real Rust code.

npm test
cd src-tauri && cargo test --lib

The screenshot suite renders the real React app, drives its controls, and captures checked states:

npm run screenshot

Continuous integration runs these suites on Windows, macOS, and Linux. It also runs the PostgreSQL conformance suite and the 500 MB archive test on all three systems. Both are off by default on your machine. Set a database URL to run the PostgreSQL tests, or a flag to run the large archive test:

IXTABLE_TEST_POSTGRES_URL='postgresql://user:pass@localhost:5432/db?sslmode=disable' npm test
cd src-tauri && IXTABLE_HEAVY_TESTS=1 cargo test --lib durability_tests::heavy

node scripts/ci/start-postgres.mjs starts a throwaway local server and prints its URL. The large archive test takes about a minute and needs 1.5 GB of free disk.

These commands test ixtable itself. They do not test a user-created ixtable project.

Next steps​