mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-02 19:47:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright (c) HashiCorp, Inc.
 | 
						|
// SPDX-License-Identifier: MPL-2.0
 | 
						|
 | 
						|
package command
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
	"reflect"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func getDefaultCliHeaders(t *testing.T) http.Header {
 | 
						|
	bc := &BaseCommand{}
 | 
						|
	cli, err := bc.Client()
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	return cli.Headers()
 | 
						|
}
 | 
						|
 | 
						|
func TestClient_FlagHeader(t *testing.T) {
 | 
						|
	defaultHeaders := getDefaultCliHeaders(t)
 | 
						|
 | 
						|
	cases := []struct {
 | 
						|
		Input map[string]string
 | 
						|
		Valid bool
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			map[string]string{},
 | 
						|
			true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			map[string]string{"foo": "bar", "header2": "value2"},
 | 
						|
			true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			map[string]string{"X-Vault-foo": "bar", "header2": "value2"},
 | 
						|
			false,
 | 
						|
		},
 | 
						|
	}
 | 
						|
 | 
						|
	for _, tc := range cases {
 | 
						|
		expectedHeaders := defaultHeaders.Clone()
 | 
						|
		for key, val := range tc.Input {
 | 
						|
			expectedHeaders.Add(key, val)
 | 
						|
		}
 | 
						|
 | 
						|
		bc := &BaseCommand{flagHeader: tc.Input}
 | 
						|
		cli, err := bc.Client()
 | 
						|
 | 
						|
		if err == nil && !tc.Valid {
 | 
						|
			t.Errorf("No error for input[%#v], but not valid", tc.Input)
 | 
						|
			continue
 | 
						|
		}
 | 
						|
 | 
						|
		if err != nil {
 | 
						|
			if tc.Valid {
 | 
						|
				t.Errorf("Error[%v] with input[%#v], but valid", err, tc.Input)
 | 
						|
			}
 | 
						|
			continue
 | 
						|
		}
 | 
						|
 | 
						|
		if cli == nil {
 | 
						|
			t.Error("client should not be nil")
 | 
						|
		}
 | 
						|
 | 
						|
		actualHeaders := cli.Headers()
 | 
						|
		if !reflect.DeepEqual(expectedHeaders, actualHeaders) {
 | 
						|
			t.Errorf("expected [%#v] but got [%#v]", expectedHeaders, actualHeaders)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |