diff --git a/internal/event/event_type.go b/internal/event/event_type.go index a691f7d4d..d7dcfd3ad 100644 --- a/internal/event/event_type.go +++ b/internal/event/event_type.go @@ -16,12 +16,13 @@ const ( AuditType Type = "audit" // AuditType represents audit events ErrorType Type = "error" // ErrorType represents error events SystemType Type = "system" // SysType represents system events + StorageType Type = "storage" // StorageType represents storage events ) func (et Type) Validate() error { const op = "event.(Type).Validate" switch et { - case EveryType, ObservationType, AuditType, ErrorType, SystemType: + case EveryType, ObservationType, AuditType, ErrorType, SystemType, StorageType: return nil default: return fmt.Errorf("%s: '%s' is not a valid event type: %w", op, et, ErrInvalidParameter) diff --git a/internal/event/event_type_test.go b/internal/event/event_type_test.go new file mode 100644 index 000000000..0e1c16db2 --- /dev/null +++ b/internal/event/event_type_test.go @@ -0,0 +1,66 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: BUSL-1.1 + +package event + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestType_Validate(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + eventType Type + wantErrMsg string + }{ + { + name: "invalid-event-type", + eventType: Type("INVALID_EVENT_TYPE"), + wantErrMsg: "event.(Type).Validate: 'INVALID_EVENT_TYPE' is not a valid event type: invalid parameter", + }, + { + name: "all-event-types", + eventType: EveryType, + }, + { + name: "observation-event-type", + eventType: ObservationType, + }, + { + name: "audit-event-type", + eventType: AuditType, + }, + { + name: "error-event-type", + eventType: ErrorType, + }, + { + name: "system-event-type", + eventType: SystemType, + }, + { + name: "storage-event-type", + eventType: StorageType, + }, + } + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + assert, require := assert.New(t), require.New(t) + + err := tt.eventType.Validate() + if tt.wantErrMsg != "" { + require.Error(err) + assert.ErrorContains(err, tt.wantErrMsg) + return + } + + require.NoError(err) + }) + } +}