test(coderd): close metricscache and avoid background context (#7996)

This commit is contained in:
Mathias Fredriksson
2023-06-13 20:18:31 +03:00
committed by GitHub
parent 2e7e99b135
commit 51226c55ab
6 changed files with 33 additions and 7 deletions

View File

@ -35,7 +35,7 @@ import (
// New constructs an Enterprise coderd API instance.
// This handler is designed to wrap the AGPL Coder code and
// layer Enterprise functionality on top as much as possible.
func New(ctx context.Context, options *Options) (*API, error) {
func New(ctx context.Context, options *Options) (_ *API, err error) {
if options.EntitlementsUpdateInterval == 0 {
options.EntitlementsUpdateInterval = 10 * time.Minute
}
@ -59,6 +59,11 @@ func New(ctx context.Context, options *Options) (*API, error) {
AGPL: coderd.New(options.Options),
Options: options,
}
defer func() {
if err != nil {
_ = api.Close()
}
}()
api.AGPL.Options.SetUserGroups = api.setUserGroups
@ -312,8 +317,12 @@ type API struct {
func (api *API) Close() error {
api.cancel()
_ = api.replicaManager.Close()
_ = api.derpMesh.Close()
if api.replicaManager != nil {
_ = api.replicaManager.Close()
}
if api.derpMesh != nil {
_ = api.derpMesh.Close()
}
return api.AGPL.Close()
}
@ -410,6 +419,7 @@ func (api *API) updateEntitlements(ctx context.Context) error {
// is actually changing.
changed = false
} else {
_ = coordinator.Close()
coordinator = haCoordinator
}