94 lines
2.1 KiB
Go
94 lines
2.1 KiB
Go
package logger
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestDynamicLogging(t *testing.T) {
|
|
// Pastikan direktori data ada
|
|
os.RemoveAll("pkg/logger/data")
|
|
|
|
t.Run("TestSaveLogText", testSaveLogText)
|
|
t.Run("TestSaveLogJSON", testSaveLogJSON)
|
|
t.Run("TestSaveLogToDatabase", testSaveLogToDatabase)
|
|
}
|
|
|
|
func testSaveLogText(t *testing.T) {
|
|
logger := New("test-service", INFO, false)
|
|
|
|
entry := LogEntry{
|
|
Timestamp: time.Now().Format(time.RFC3339),
|
|
Level: "INFO",
|
|
Service: "test-service",
|
|
Message: "Test log message",
|
|
File: "test.go",
|
|
Line: 10,
|
|
Fields: map[string]interface{}{
|
|
"test_field": "test_value",
|
|
"number": 42,
|
|
},
|
|
}
|
|
|
|
err := logger.SaveLogText(entry)
|
|
if err != nil {
|
|
t.Errorf("SaveLogText failed: %v", err)
|
|
}
|
|
|
|
// Verifikasi file dibuat
|
|
if _, err := os.Stat("pkg/logger/data/logs.txt"); os.IsNotExist(err) {
|
|
t.Error("Text log file was not created")
|
|
}
|
|
}
|
|
|
|
func testSaveLogJSON(t *testing.T) {
|
|
logger := New("test-service", INFO, false)
|
|
|
|
entry := LogEntry{
|
|
Timestamp: time.Now().Format(time.RFC3339),
|
|
Level: "INFO",
|
|
Service: "test-service",
|
|
Message: "Test JSON log message",
|
|
File: "test.go",
|
|
Line: 20,
|
|
Fields: map[string]interface{}{
|
|
"json_field": "json_value",
|
|
"count": 100,
|
|
},
|
|
}
|
|
|
|
err := logger.SaveLogJSON(entry)
|
|
if err != nil {
|
|
t.Errorf("SaveLogJSON failed: %v", err)
|
|
}
|
|
|
|
// Verifikasi file dibuat
|
|
if _, err := os.Stat("pkg/logger/data/logs.json"); os.IsNotExist(err) {
|
|
t.Error("JSON log file was not created")
|
|
}
|
|
}
|
|
|
|
func testSaveLogToDatabase(t *testing.T) {
|
|
logger := New("test-service", INFO, false)
|
|
|
|
entry := LogEntry{
|
|
Timestamp: time.Now().Format(time.RFC3339),
|
|
Level: "INFO",
|
|
Service: "test-service",
|
|
Message: "Test database log message",
|
|
File: "test.go",
|
|
Line: 30,
|
|
}
|
|
|
|
err := logger.SaveLogToDatabase(entry)
|
|
if err != nil {
|
|
t.Errorf("SaveLogToDatabase failed: %v", err)
|
|
}
|
|
|
|
// Verifikasi file dibuat (placeholder untuk database)
|
|
if _, err := os.Stat("pkg/logger/data/database_logs.txt"); os.IsNotExist(err) {
|
|
t.Error("Database log file was not created")
|
|
}
|
|
}
|