github.com/abolfazlbeh/zhycan@v0.0.0-20230819144214-24cf38237387/internal/logger/zap_wrapper_test.go (about) 1 package logger 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "github.com/abolfazlbeh/zhycan/internal/config" 7 "os" 8 "testing" 9 "time" 10 ) 11 12 func Test_ZapFileLogger(t *testing.T) { 13 path := "../.." 14 initialMode := "test" 15 prefix := "ZHYCAN" 16 17 err := config.CreateManager(path, initialMode, prefix) 18 if err != nil { 19 t.Errorf("Initializig Config without error, but got %v", err) 20 return 21 } 22 23 logg := &ZapWrapper{} 24 logg.Constructor("logger") 25 26 expectedModule := "tester" 27 expectedService := "zhycan" 28 expectedLogType := "FUNC_MAINT" 29 expectedM := "TEST" 30 expectedL := "\\u001b[35mDEBUG\\u001b[0m" 31 32 logg.Log(NewLogObject( 33 DEBUG, "tester", FuncMaintenanceType, time.Now().UTC(), "TEST", nil)) 34 logg.Sync() 35 36 // read a log file to ensure it writes ok --> for now it must be written to /tmp folder 37 file, err := os.OpenFile("/tmp/zhycan.log", os.O_RDONLY, 0) 38 if err != nil { 39 t.Errorf("Opening the logs file in /tmp folder, but got %v", err) 40 return 41 } 42 defer file.Close() 43 44 if file.Name() != "/tmp/zhycan.log" { 45 t.Errorf("Expected the name of the log file be %v, but got %v", "/tmp/zhycan.log", file.Name()) 46 return 47 } 48 49 buf := new(bytes.Buffer) 50 buf.ReadFrom(file) 51 contents := buf.String() 52 53 // encode str to json 54 var result map[string]any 55 err = json.Unmarshal([]byte(contents), &result) 56 if err != nil { 57 // json deserialize error 58 t.Errorf("Expected json content able to be deserialized, but got %v", err) 59 return 60 } 61 62 if !(result["L"] != expectedL && result["M"] == expectedM && result["module"] == expectedModule && 63 result["service"] == expectedService && result["log_type"] == expectedLogType && result["additional"] == nil) { 64 65 t.Errorf("Expected Value Is Not Correct: ") 66 t.Errorf("Expected %v, but got %v --", result["L"], expectedL) 67 t.Errorf("Expected %v, but got %v --", result["M"], expectedM) 68 t.Errorf("Expected %v, but got %v --", result["module"], expectedModule) 69 t.Errorf("Expected %v, but got %v --", result["service"], expectedService) 70 t.Errorf("Expected %v, but got %v --", result["log_type"], expectedLogType) 71 t.Errorf("Expected %v, but got %v --", result["additional"], nil) 72 return 73 } 74 75 }