mirror of
https://github.com/SamyRai/turash.git
synced 2025-12-26 23:01:33 +00:00
Some checks failed
CI/CD Pipeline / frontend-lint (push) Successful in 1m38s
CI/CD Pipeline / backend-lint (push) Failing after 1m41s
CI/CD Pipeline / backend-build (push) Has been skipped
CI/CD Pipeline / frontend-build (push) Failing after 26s
CI/CD Pipeline / e2e-test (push) Has been skipped
- Update .gitignore to selectively ignore pkg/ directories at the root level - Modify CI workflow to verify all Go packages can be listed - Introduce configuration management with a new config package, including loading environment variables - Add comprehensive tests for configuration loading and environment variable handling - Implement Neo4j database interaction functions with corresponding tests for data extraction
155 lines
3.7 KiB
Go
155 lines
3.7 KiB
Go
package database
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGetString(t *testing.T) {
|
|
t.Run("existing string key", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": "value"}
|
|
result := GetString(m, "key")
|
|
assert.Equal(t, "value", result)
|
|
})
|
|
|
|
t.Run("non-existing key", func(t *testing.T) {
|
|
m := map[string]interface{}{}
|
|
result := GetString(m, "key")
|
|
assert.Equal(t, "", result)
|
|
})
|
|
|
|
t.Run("non-string value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": 123}
|
|
result := GetString(m, "key")
|
|
assert.Equal(t, "", result)
|
|
})
|
|
}
|
|
|
|
func TestGetFloat64(t *testing.T) {
|
|
t.Run("float64 value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": 3.14}
|
|
result := GetFloat64(m, "key")
|
|
assert.Equal(t, 3.14, result)
|
|
})
|
|
|
|
t.Run("int64 value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": int64(42)}
|
|
result := GetFloat64(m, "key")
|
|
assert.Equal(t, 42.0, result)
|
|
})
|
|
|
|
t.Run("int value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": 42}
|
|
result := GetFloat64(m, "key")
|
|
assert.Equal(t, 42.0, result)
|
|
})
|
|
|
|
t.Run("non-existing key", func(t *testing.T) {
|
|
m := map[string]interface{}{}
|
|
result := GetFloat64(m, "key")
|
|
assert.Equal(t, 0.0, result)
|
|
})
|
|
|
|
t.Run("non-numeric value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": "string"}
|
|
result := GetFloat64(m, "key")
|
|
assert.Equal(t, 0.0, result)
|
|
})
|
|
}
|
|
|
|
func TestGetInt(t *testing.T) {
|
|
t.Run("int64 value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": int64(42)}
|
|
result := GetInt(m, "key")
|
|
assert.Equal(t, 42, result)
|
|
})
|
|
|
|
t.Run("int value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": 42}
|
|
result := GetInt(m, "key")
|
|
assert.Equal(t, 42, result)
|
|
})
|
|
|
|
t.Run("float64 value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": 42.0}
|
|
result := GetInt(m, "key")
|
|
assert.Equal(t, 42, result)
|
|
})
|
|
|
|
t.Run("non-existing key", func(t *testing.T) {
|
|
m := map[string]interface{}{}
|
|
result := GetInt(m, "key")
|
|
assert.Equal(t, 0, result)
|
|
})
|
|
|
|
t.Run("non-numeric value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": "string"}
|
|
result := GetInt(m, "key")
|
|
assert.Equal(t, 0, result)
|
|
})
|
|
}
|
|
|
|
func TestGetBool(t *testing.T) {
|
|
t.Run("true value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": true}
|
|
result := GetBool(m, "key")
|
|
assert.True(t, result)
|
|
})
|
|
|
|
t.Run("false value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": false}
|
|
result := GetBool(m, "key")
|
|
assert.False(t, result)
|
|
})
|
|
|
|
t.Run("non-existing key", func(t *testing.T) {
|
|
m := map[string]interface{}{}
|
|
result := GetBool(m, "key")
|
|
assert.False(t, result)
|
|
})
|
|
|
|
t.Run("non-bool value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": "string"}
|
|
result := GetBool(m, "key")
|
|
assert.False(t, result)
|
|
})
|
|
}
|
|
|
|
func TestGetTime(t *testing.T) {
|
|
testTime := time.Now()
|
|
|
|
t.Run("time.Time value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": testTime}
|
|
result := GetTime(m, "key")
|
|
assert.Equal(t, testTime, result)
|
|
})
|
|
|
|
t.Run("RFC3339 string value", func(t *testing.T) {
|
|
timeStr := "2023-01-01T12:00:00Z"
|
|
m := map[string]interface{}{"key": timeStr}
|
|
result := GetTime(m, "key")
|
|
expected, _ := time.Parse(time.RFC3339, timeStr)
|
|
assert.Equal(t, expected, result)
|
|
})
|
|
|
|
t.Run("invalid string value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": "invalid"}
|
|
result := GetTime(m, "key")
|
|
assert.True(t, result.IsZero())
|
|
})
|
|
|
|
t.Run("non-existing key", func(t *testing.T) {
|
|
m := map[string]interface{}{}
|
|
result := GetTime(m, "key")
|
|
assert.True(t, result.IsZero())
|
|
})
|
|
|
|
t.Run("non-time value", func(t *testing.T) {
|
|
m := map[string]interface{}{"key": 123}
|
|
result := GetTime(m, "key")
|
|
assert.True(t, result.IsZero())
|
|
})
|
|
}
|