- store/sqlite: 75.4% (repos + db coverage) - host/sub2api: 80.8% (httptest mock server, pure function tests) - app: 74.2% (handler error paths, NewActionSet closures) - pack: 72.4% - provision: 75.2% - access: 77.3% - config: 94.7% (lookup mock tests) All tests pass: build, vet, race, coverage gates.
21 lines
440 B
Go
21 lines
440 B
Go
package app
|
|
|
|
import (
|
|
"context"
|
|
|
|
"sub2api-cn-relay-manager/internal/config"
|
|
)
|
|
|
|
func Bootstrap(_ context.Context) (*Server, error) {
|
|
cfg, err := config.LoadStartupFromEnv()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
adminToken, err := config.LoadAdminTokenFromEnv()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
handler := NewAPIHandler(adminToken, NewActionSet(cfg.Database.SQLiteDSN))
|
|
return NewServer(cfg.Server.ListenAddr, handler, nil), nil
|
|
}
|