mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-30 02:02:43 +00:00 
			
		
		
		
	 8bee54c89d
			
		
	
	8bee54c89d
	
	
	
		
			
			* Refactor audit code into audit package * remove builtin/audit * removed unrequired files
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (c) HashiCorp, Inc.
 | |
| // SPDX-License-Identifier: BUSL-1.1
 | |
| 
 | |
| package audit
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/hashicorp/eventlogger"
 | |
| 	"github.com/hashicorp/vault/internal/observability/event"
 | |
| 	"github.com/stretchr/testify/require"
 | |
| )
 | |
| 
 | |
| // TestNewSinkMetricTimer ensures that parameters are checked correctly and errors
 | |
| // reported as expected when attempting to create a sinkMetricTimer.
 | |
| func TestNewSinkMetricTimer(t *testing.T) {
 | |
| 	t.Parallel()
 | |
| 
 | |
| 	tests := map[string]struct {
 | |
| 		name                 string
 | |
| 		node                 eventlogger.Node
 | |
| 		isErrorExpected      bool
 | |
| 		expectedErrorMessage string
 | |
| 	}{
 | |
| 		"happy": {
 | |
| 			name:            "foo",
 | |
| 			node:            &event.FileSink{},
 | |
| 			isErrorExpected: false,
 | |
| 		},
 | |
| 		"no-name": {
 | |
| 			name:                 "",
 | |
| 			isErrorExpected:      true,
 | |
| 			expectedErrorMessage: "name is required: invalid internal parameter",
 | |
| 		},
 | |
| 		"no-node": {
 | |
| 			name:                 "foo",
 | |
| 			node:                 nil,
 | |
| 			isErrorExpected:      true,
 | |
| 			expectedErrorMessage: "sink node is required: invalid internal parameter",
 | |
| 		},
 | |
| 		"bad-node": {
 | |
| 			name:                 "foo",
 | |
| 			node:                 &entryFormatter{},
 | |
| 			isErrorExpected:      true,
 | |
| 			expectedErrorMessage: "sink node must be of type 'sink': invalid internal parameter",
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for name, tc := range tests {
 | |
| 		name := name
 | |
| 		tc := tc
 | |
| 		t.Run(name, func(t *testing.T) {
 | |
| 			t.Parallel()
 | |
| 
 | |
| 			m, err := newSinkMetricTimer(tc.name, tc.node)
 | |
| 
 | |
| 			switch {
 | |
| 			case tc.isErrorExpected:
 | |
| 				require.Error(t, err)
 | |
| 				require.EqualError(t, err, tc.expectedErrorMessage)
 | |
| 				require.Nil(t, m)
 | |
| 			default:
 | |
| 				require.NoError(t, err)
 | |
| 				require.NotNil(t, m)
 | |
| 			}
 | |
| 		})
 | |
| 	}
 | |
| }
 |