mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-30 18:17:55 +00:00 
			
		
		
		
	 9ca558c303
			
		
	
	9ca558c303
	
	
	
		
			
			* Add grace period calculation logic to renewer * Update lease renewer logic. It is believed by myself and members of the Nomad team that this logic should be much more robust in terms of causing large numbers of new secret acquisitions caused by a static grace period. See comments in the code for details. Fixes #3414 * Fix some commenting and fix tests * Add more time to test so that integ tests don't time out * Fix some review feedback
		
			
				
	
	
		
			85 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package api
 | |
| 
 | |
| import (
 | |
| 	"reflect"
 | |
| 	"testing"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| func TestRenewer_NewRenewer(t *testing.T) {
 | |
| 	t.Parallel()
 | |
| 
 | |
| 	client, err := NewClient(DefaultConfig())
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	cases := []struct {
 | |
| 		name string
 | |
| 		i    *RenewerInput
 | |
| 		e    *Renewer
 | |
| 		err  bool
 | |
| 	}{
 | |
| 		{
 | |
| 			"nil",
 | |
| 			nil,
 | |
| 			nil,
 | |
| 			true,
 | |
| 		},
 | |
| 		{
 | |
| 			"missing_secret",
 | |
| 			&RenewerInput{
 | |
| 				Secret: nil,
 | |
| 			},
 | |
| 			nil,
 | |
| 			true,
 | |
| 		},
 | |
| 		{
 | |
| 			"default_grace",
 | |
| 			&RenewerInput{
 | |
| 				Secret: &Secret{},
 | |
| 			},
 | |
| 			&Renewer{
 | |
| 				secret: &Secret{},
 | |
| 			},
 | |
| 			false,
 | |
| 		},
 | |
| 		{
 | |
| 			"custom_grace",
 | |
| 			&RenewerInput{
 | |
| 				Secret: &Secret{},
 | |
| 				Grace:  30 * time.Second,
 | |
| 			},
 | |
| 			&Renewer{
 | |
| 				secret: &Secret{},
 | |
| 				grace:  30 * time.Second,
 | |
| 			},
 | |
| 			false,
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for _, tc := range cases {
 | |
| 		t.Run(tc.name, func(t *testing.T) {
 | |
| 			v, err := client.NewRenewer(tc.i)
 | |
| 			if (err != nil) != tc.err {
 | |
| 				t.Fatal(err)
 | |
| 			}
 | |
| 
 | |
| 			if v == nil {
 | |
| 				return
 | |
| 			}
 | |
| 
 | |
| 			// Zero-out channels because reflect
 | |
| 			v.client = nil
 | |
| 			v.random = nil
 | |
| 			v.doneCh = nil
 | |
| 			v.renewCh = nil
 | |
| 			v.stopCh = nil
 | |
| 
 | |
| 			if !reflect.DeepEqual(tc.e, v) {
 | |
| 				t.Errorf("not equal\nexp: %#v\nact: %#v", tc.e, v)
 | |
| 			}
 | |
| 		})
 | |
| 	}
 | |
| }
 |