Public test suite for the
@digitalsubstrate/dsviper
npm package — the Node.js binding over the Viper C++ runtime. The Node twin of
dsviper-tests (the Python
wheel's suite).
This repository serves two purposes:
- Regression net / release gate. Run as a CI check against the
@digitalsubstrate/dsviperpackage to catch behavioural regressions in the Node binding. A red cell blocks the npm publish. - Reference material. Every public
@digitalsubstrate/dsviperAPI surface is exercised here. Theunit/directory is the canonical place to read working examples — useful for human contributors and autonomous agents alike.
Node 18+ and the @digitalsubstrate/dsviper package:
npm install @digitalsubstrate/dsviperThe suite uses the built-in node:test runner — no test-framework dependency.
From the repository root:
./run_test.sh # macOS / Linux
run_test.bat # WindowsThese both wrap node --test (auto-discovers unit/*.test.mjs). To run a single
file:
node --test unit/test_value_double.test.mjsunit/ # node:test modules covering the package API
run_test.sh, run_test.bat # convenience launchers
This suite tracks the Viper 1.2.x line of @digitalsubstrate/dsviper. The
canonical branch is LTS-1.2, pinned to the 1.2.x package releases; main is a
mirror of it. Future major lines may live on dedicated branches.
This project is licensed under the MIT License — see LICENSE.
At runtime, this project depends on the @digitalsubstrate/dsviper npm package,
which is proprietary (the Viper runtime is under the Digital Substrate
Commercial License). See
the package on npm for
its licensing posture and contact information.