I don't know why this code doesn't use a more injecting style rather than these ugly projections all the time:

```
need_test_connection(#emysql_connection { test_period = TP, last_test_time = TT }) ->
  TP == 0 orlese TT == 0 orelse TT + TP < now_seconds().
```

But if you fold this into test-connection a lot of this can probably go away.