Skip to content

Testing

Cursor Agent edited this page May 4, 2026 · 13 revisions

Open Cap Table Protocol Test Suite

DAML Script tests live in Test/ at the repo root. Run them with npm run test from the repository root (not from Test/ alone).

CI runs npm run verify-package after codegen: verify-package-imports, verify-merged-lib (required bundled files, optional Nft/Reference cycle guard if present, require('./lib/index.js'), root OCP_TEMPLATES, subpath openCapTableDarPath, no Nft / CantonPayments on root index, no DAR helpers on root), test:imports. The workflow runs npm run check-upgrade-compat after DAML build and before codegen. See DAR path resolution on Home for resolveOpenCapTableDarPath / OPEN_CAP_TABLE_DAR_PATH. CantonPayments/splice verification scripts live with fairmint/daml / consumer repos when applicable — not in this CI file.

Test Requirements

  • External template choices should be 100% covered. External templates created may be less than 100% due to external dependencies.
    • This requires a test of the Archive command which is implicitly available on all templates.
  • When Optional fields are included, the test file should include at least 2 separate tests, one with None for all Optional fields and another with Some for all Optional fields.

Running Tests

# From the root directory
npm run test

Tests live under Test/daml/ (DAML Script). Test/daml.yaml depends on the built OpenCapTable-v34 DAR only (see data-dependencies). Integration with NFT, CantonPayments, or equity certificate contracts is exercised where tests import those packages via DARs built from fairmint/daml, not from this repo’s source tree.

Clone this wiki locally