DEVELOPMENT / TESTING

Native project tests

Place literal Dowe tests wherever they best describe the contract. Dowe discovers them without requiring a test folder or a filename convention.

1 / UNRESTRICTED PLACEMENT

Use the folder that fits the project

A test-only .dowe file can be below verification, checks, test, or any other project directory. The runner scans eligible Dowe files and executes only files that declare tests.

dowe
verification/release/metadata.dowe
checks/theme-contract.dowe
test/navigation.dowe
Rule
What it means

No data

There are no records to display

2 / LITERAL ASSERTIONS

Start with deterministic contracts

Tests use a quoted name and direct assert declarations. Equal compares Dowe literals structurally without evaluating application code.

dowe
test "release metadata"
  assert true value:true
  assert false value:false
  assert equal actual:{ name:"dowe" channels:["stable" "canary"] } expected:{ name:"dowe" channels:["stable" "canary"] }
Assertion
Pass condition

No data

There are no records to display

3 / RUNNER

Run all tests or select a path

Use JSON for agents and CI. A failed assertion returns a non-zero status with its source location.

dowe
dowe test
dowe test verification
dowe test checks/theme-contract.dowe
dowe test --json
This native runner does not execute views, handlers, HTTP, databases, or target runtime code. Use target-specific validation alongside literal tests when a contract needs runtime behavior.