---
title: Testing against EmpoorioChain
description: The testing rules the ecosystem learned on the live testnet — run against the real node, regenerate metadata, count what finalizes.
---

# Testing on EmpoorioChain

## Rule 1 — the suite is not the chain

Failures that kill a chain are not seen by unit tests. Eoonia's rule: **nothing is marked working without a test that exercises it against the live node**. 100/100 integration tests against runtime 220; skipped only those that need validators.

## Rule 2 — a local dev node first

`empooriochain --dev` starts a single-authority chain for fast iteration. Move to the public testnet once stable; it bans an IP for an hour above 10 req/s.

## Rule 3 — regenerate metadata after every upgrade

The spec version lives in the metadata. Tests that decoded fine on 213 broke on 217 until the SDK was regenerated; compare `System::Version` at startup.

## Rule 4 — count what finalizes

The May 2026 benchmark reported 700 of 700 transactions **finalized**, with inclusion p50 3.5 s and GRANDPA p50 17 s. "Submitted" is not a result; "included" can still be `ExtrinsicFailed`.

## Rule 5 — test the money paths with real precision

18 decimals: no floating point anywhere near a balance (`scale_precision_test`). A 2¹²⁰ DMS transfer must fail as `ExtrinsicFailed`, not as a silent success.

## Rule 6 — fund the test account from CI, not from the founder

Each matrix run signs from a fresh account funded by CI (30,000 DMS on 10 Sep 2026). The testnet faucet (`pallet-faucet`, index 50) pays 10 DMS per claim, ≤ 3/day, only to balances under 100 DMS.

## Rule 7 — mutation before "done"

A guard that cannot fail is decoration. Ask what would have to happen for the check to be false; if the answer is "nothing", rewrite the test.
