# List available recipes
default:
@just --list
# Run all tests
test *args:
cargo nextest run {{ args }}
# Run all tests (CI mode: no fail-fast, verbose)
test-ci *args:
cargo nextest run --profile ci {{ args }}
# Run a specific test file (e.g. just test-file integration)
test-file name *args:
cargo nextest run --test {{ name }} {{ args }}
# Build (debug)
build *args:
cargo build {{ args }}
# Build (release)
release *args:
cargo build --release {{ args }}
# Run clippy and fmt check
lint:
cargo +nightly fmt -- --check
cargo clippy --locked --all-targets --all-features -- -D warnings
# Run clippy with auto-fix
fix *args:
cargo clippy --fix --all-targets --all-features --allow-dirty --allow-staged -- -D warnings {{ args }}
# Format code
fmt:
cargo +nightly fmt
# Run the CLI
run *args:
cargo run -- {{ args }}
# Run MMDS conformance checks (semantic/layout/visual tiers)
conformance *args:
cargo nextest run --test mmds_conformance --success-output immediate {{ args }}
# Check that everything compiles, passes lint, and tests
check: lint test
# Build wasm bindings for browser and bundler targets
wasm-build:
wasm-pack build crates/mmdflux-wasm --target web --dev --out-dir ../../target/wasm-pkg-web
wasm-pack build crates/mmdflux-wasm --target bundler --dev --out-dir ../../target/wasm-pkg-bundler
# Run browser-executed wasm-bindgen contract tests
wasm-test:
just wasm-build
./scripts/run-wasm-browser-tests.sh
# Build release wasm artifacts and enforce CI-equivalent size budgets
wasm-size *args:
./scripts/check-wasm-size.sh {{ args }}