github.com/abolfazlbeh/zhycan@v0.0.0-20230819144214-24cf38237387/internal/config/wrapper_test.go (about)

     1  package config
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  	"time"
     7  )
     8  
     9  func createWrapper(configPath, name, envPrefix string) (*ViperWrapper, error) {
    10  	v := &ViperWrapper{
    11  		ConfigPath:          []string{configPath},
    12  		ConfigName:          name,
    13  		ConfigEnvPrefix:     envPrefix,
    14  		ConfigResourcePlace: "",
    15  	}
    16  	err := v.Load()
    17  	return v, err
    18  }
    19  
    20  func TestWrapperCreation(t *testing.T) {
    21  	err := createManager()
    22  	if err == nil {
    23  		time.Sleep(3 * time.Second)
    24  
    25  		actualWrapper, err := createWrapper("../../configs/test/",
    26  			"logger",
    27  			"")
    28  		if err != nil {
    29  			t.Errorf("Cannot create wrapper object --> expected %v, but got %v", nil, err)
    30  		}
    31  
    32  		expectedWrapper, err := GetManager().GetConfigWrapper("logger")
    33  		if err != nil {
    34  			t.Errorf("Cannot create wrapper object from manager --> expected %v, but got %v", nil, err)
    35  		}
    36  
    37  		if !reflect.DeepEqual(actualWrapper, expectedWrapper) {
    38  			t.Errorf("cannot create wrapper object --> Expected %v, but got %v", expectedWrapper, actualWrapper)
    39  		}
    40  	}
    41  }
    42  
    43  func TestGetExistValue(t *testing.T) {
    44  	actualWrapper, err := createWrapper("../../configs/test/",
    45  		"logger",
    46  		"")
    47  	if err != nil {
    48  		t.Errorf("Cannot create wrapper object --> expected %v, but got %v", nil, err)
    49  	}
    50  
    51  	expectedVal := "zap"
    52  	actualVal, _ := actualWrapper.Get("type", false)
    53  	if expectedVal != actualVal {
    54  		t.Errorf("Get the key for the `type` --> Expected: %v, got %v", expectedVal, actualVal)
    55  	}
    56  }