blob: 9510b3e4c01918aeb5975a3cee410c27a6032023 [file] [log] [blame]
package eventtest
import (
"context"
"golang.org/x/exp/event"
)
type CaptureHandler struct {
Got []event.Event
}
func (h *CaptureHandler) Event(ctx context.Context, ev *event.Event) context.Context {
h.Got = append(h.Got, *ev)
got := &h.Got[len(h.Got)-1]
got.Labels = make([]event.Label, len(ev.Labels))
copy(got.Labels, ev.Labels)
return ctx
}
func (h *CaptureHandler) Reset() {
if len(h.Got) > 0 {
h.Got = h.Got[:0]
}
}
func NewCapture() (context.Context, *CaptureHandler) {
h := &CaptureHandler{}
ctx := event.WithExporter(context.Background(), event.NewExporter(h, ExporterOptions()))
return ctx, h
}