package merrors import ( "errors" "testing" ) func TestChainExecutionPreconditionCarriesClassAndReason(t *testing.T) { err := ChainExecutionPrecondition(ReasonChainExecutionInsufficientBalance, "source balance is insufficient") if !errors.Is(err, ErrFailedPrecondition) { t.Fatal("expected failed-precondition classification") } reason, ok := Reason(err) if !ok || reason != ReasonChainExecutionInsufficientBalance { t.Fatalf("unexpected reason: %q", reason) } }