feat(event): new storage event type (#3719)
This commit is contained in:
1 parent
0f05b19e04
commit
e3e848d847
2 files changed
+68
-1
No files matched your search
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user