# Test an event (dry run)

> See exactly what your rules would do with an event, live, without sending or storing anything.

Web page: https://infrainbox.app/docs/notifications/dry-run/

Open **Notifications → Dry run** (dashboard screen `/rules/dry-run`), or click **Test an event** from Routing or a rule's editor — same feature, the dialog is just the quick version that opens over whatever rule you're already looking at. From a rule's editor it tests your **unsaved edit** in that rule's place, so you can check a change before you save it. From a preset rule it tests the saved preset: apply and save the edit first.

Nothing here is sent, nothing is stored, no incident moves, and no rule version changes. Run it as many times as you're editing.

## Picking what to try

Either:

- **A recent event** — pick one your workspace actually received, and it's run through the rules exactly as it originally would have been.
- **A sample you compose** — set the source, severity, title, type, resource, dedup key, tags and body yourself, to test a case you haven't seen yet.

## Reading the answer

The result walks through everything [How notifications work](https://infrainbox.app/docs/notifications.md#the-path) describes, for this one event:

- **Which rule decided it**, and the trace of every rule that ran before it — matched and modified it, matched and continued past it, or didn't match at all.
- **The route** it landed on, and the destinations it would reach, each with whether it would be silent and whether it gets recoveries.
- **What it would do to an incident** — open one, add an occurrence, or resolve one — and which.
- **Any gate that would hold it back right now** — quiet hours, a silence, a cooldown — exactly as it would happen for real, because dry run reads your workspace's actual silences, quiet hours and destination state live.

A recovery or a resolve always shows what it would resolve, even when the rule it matched routes to `drop` — ending an incident isn't optional the way opening one is.

## Why it needs admin or owner

Running it needs to be limited to whoever can already see the workspace's destinations, quiet hours and silences, since the answer shows all three. Every member can still read the rules themselves.

## Next

- [Routing rules](https://infrainbox.app/docs/notifications/routing.md) — what you're testing
- [Coverage](https://infrainbox.app/docs/notifications/routing.md#seeing-what-actually-happens) — the same idea, one severity at a time, for every destination at once
