feat(event): new storage event type (#3719)

This commit is contained in:
Damian Debkowski authored and GitHub committed 2023-09-14 10:31:01 -07:00
1 parent 0f05b19e04
commit e3e848d847
2 files changed
+68 -1

No files matched your search

+2 -1
View File
@@ -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)
+66
View File
@@ -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)
})
}
}