# testing/transitions

## Purpose

Verifies `core:transitions` — the FSM/workflow graph layer. Covers: `DefaultTransitionResolver` correctness, transition event serialization round-trips, and fuzz coverage over random graph topologies.

## Ownership

Tests in this submodule. Production modules exercised: `core:transitions`, `core:events`, `core:inference`.

## Local Contracts

- `TransitionEventSerializationTest` pins that every transition event survives a serialize → deserialize round-trip without data loss; must be updated when new transition event types are added.
- `TransitionFuzzTest` generates random graphs; add new resolver logic → extend the fuzz domain.

## Work Guidance

- Suspend tests use `runBlocking { ... }`.
- This is a narrow module — keep tests focused on graph resolution and serialization; cross-cutting concerns belong in `testing:integration` or `testing:deterministic`.

## Verification

```
./gradlew :testing:transitions:test --rerun-tasks
```

## Child DOX Index

No child AGENTS.md (leaf module).
