; cn tests (ppx_expect)
(library
 (name cn_test)
 (modules cn_test)
 (libraries cn_lib)
 (inline_tests)
 (preprocess (pps ppx_expect)))

(library
 (name cn_json_test)
 (modules cn_json_test)
 (libraries cn_lib)
 (inline_tests)
 (preprocess (pps ppx_expect)))

; cn_sha256 tests (ppx_expect) — NIST test vectors
(library
 (name cn_sha256_test)
 (modules cn_sha256_test)
 (libraries cn_lib)
 (inline_tests)
 (preprocess (pps ppx_expect)))

; cn_package tests (ppx_expect) — pure package manifest / lockfile /
; index types + JSON round-trips + lookup + is_first_party (#182 Move 2)
(library
 (name cn_package_test)
 (modules cn_package_test)
 (libraries cn_lib)
 (inline_tests)
 (preprocess (pps ppx_expect)))

; cn_contract pure-type tests (ppx_expect) — pure runtime contract
; types + activation_entry + zone_to_string (#182 Move 2 slice 2).
; Library name suffixed `_pure_test` to avoid collision with the
; pre-existing `cn_contract_test` library in test/cmd/dune which
; covers a different contract (protocol-contract.json, I2 invariant).
(library
 (name cn_contract_pure_test)
 (modules cn_contract_pure_test)
 (libraries cn_lib)
 (inline_tests)
 (preprocess (pps ppx_expect)))

; cn_workflow_ir tests (ppx_expect) — pure orchestrator IR types,
; parser, validator, and helpers (#182 Move 2 slice 3). Library name
; `cn_workflow_ir_test` is distinct from the pre-existing
; `cn_workflow_test` in test/cmd/dune (which covers the executor
; surface); §2.5b check 7 grep verified before naming.
(library
 (name cn_workflow_ir_test)
 (modules cn_workflow_ir_test)
 (libraries cn_lib)
 (inline_tests)
 (preprocess (pps ppx_expect)))

; cn_frontmatter tests (ppx_expect) — pure SKILL.md frontmatter
; parser + activation validation types (#182 Move 2 slice 4 — final
; slice). Library name `cn_frontmatter_test` is distinct from the
; pre-existing `cn_activation_test` in test/cmd/dune (which covers
; the IO-side build_index/validate); §2.5b check 7 grep verified
; before naming.
(library
 (name cn_frontmatter_test)
 (modules cn_frontmatter_test)
 (libraries cn_lib)
 (inline_tests)
 (preprocess (pps ppx_expect)))
