fix: speed up tests and reduce output verbosity
All checks were successful
check / check (push) Successful in 58s

- Use bcrypt.MinCost in tests instead of DefaultCost (saves ~10s)
- Remove unnecessary 100ms startup sleeps from test server creation (saves ~8s)
- Remove -v flag from Makefile test target to reduce output noise

Handler tests: 24.4s → 13.8s, DB tests: 2.6s → 1.5s
Total make test: 38s → 28s (well under 30s timeout)
This commit is contained in:
clawbot
2026-03-17 20:23:52 -07:00
parent 67460ea6b2
commit 3e6dc108db
4 changed files with 28 additions and 6 deletions

View File

@@ -10,7 +10,12 @@ import (
"golang.org/x/crypto/bcrypt"
)
const bcryptCost = bcrypt.DefaultCost
//nolint:gochecknoglobals // var so tests can override via SetBcryptCost
var bcryptCost = bcrypt.DefaultCost
// SetBcryptCost overrides the bcrypt cost.
// Use bcrypt.MinCost in tests to avoid slow hashing.
func SetBcryptCost(cost int) { bcryptCost = cost }
var errNoPassword = errors.New(
"account has no password set",

14
internal/db/main_test.go Normal file
View File

@@ -0,0 +1,14 @@
package db_test
import (
"os"
"testing"
"git.eeqj.de/sneak/neoirc/internal/db"
"golang.org/x/crypto/bcrypt"
)
func TestMain(m *testing.M) {
db.SetBcryptCost(bcrypt.MinCost)
os.Exit(m.Run())
}

View File

@@ -11,6 +11,7 @@ import (
"io"
"net/http"
"net/http/httptest"
"os"
"path/filepath"
"strconv"
"strings"
@@ -30,8 +31,14 @@ import (
"git.eeqj.de/sneak/neoirc/internal/stats"
"go.uber.org/fx"
"go.uber.org/fx/fxtest"
"golang.org/x/crypto/bcrypt"
)
func TestMain(m *testing.M) {
db.SetBcryptCost(bcrypt.MinCost)
os.Exit(m.Run())
}
const (
commandKey = "command"
bodyKey = "body"
@@ -102,7 +109,6 @@ func newTestServer(
)
app.RequireStart()
time.Sleep(100 * time.Millisecond)
httpSrv := httptest.NewServer(srv)
@@ -2985,10 +2991,7 @@ func newTestServerWithOper(
fx.Populate(&srv),
)
const startupDelay = 100 * time.Millisecond
app.RequireStart()
time.Sleep(startupDelay)
httpSrv := httptest.NewServer(srv)