Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func TestIntegration_App_Connect(t *testing.T) {
_, connectionString, cleanup := setupTestContainer(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand All @@ -165,7 +165,7 @@ func TestIntegration_App_ConnectWithEnvironmentVariable(t *testing.T) {
os.Setenv("POSTGRES_URL", connectionString)
defer os.Unsetenv("POSTGRES_URL")

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand All @@ -185,7 +185,7 @@ func TestIntegration_App_ListDatabases(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -214,7 +214,7 @@ func TestIntegration_App_ListSchemas(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand All @@ -241,7 +241,7 @@ func TestIntegration_App_ListTables(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -276,7 +276,7 @@ func TestIntegration_App_ListTablesWithSize(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -308,7 +308,7 @@ func TestIntegration_App_DescribeTable(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -355,7 +355,7 @@ func TestIntegration_App_ExecuteQuery(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -390,7 +390,7 @@ func TestIntegration_App_ExecuteQueryWithLimit(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -418,7 +418,7 @@ func TestIntegration_App_ListIndexes(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -503,7 +503,7 @@ func TestIntegration_App_ListIndexes_SpecialCharacters(t *testing.T) {
require.NoError(t, err)

// Test with app
appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -554,7 +554,7 @@ func TestIntegration_App_ExplainQuery(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand All @@ -577,7 +577,7 @@ func TestIntegration_App_GetTableStats(t *testing.T) {
_, connectionString, cleanup := setupTestDatabase(t)
defer cleanup()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand All @@ -604,7 +604,7 @@ func TestIntegration_App_ErrorHandling(t *testing.T) {
os.Setenv("POSTGRES_URL", connectionString)
defer os.Unsetenv("POSTGRES_URL")

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -635,7 +635,7 @@ func TestIntegration_App_ConnectionValidation(t *testing.T) {
defer cleanup()

// Test validation without environment variable
appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(t, err)

ctx := context.Background()
Expand All @@ -648,7 +648,7 @@ func TestIntegration_App_ConnectionValidation(t *testing.T) {
defer os.Unsetenv("POSTGRES_URL")

// Create new instance with environment variable set
appInstance2, err := app.New()
appInstance2, err := app.NewDefault()
require.NoError(t, err)
defer appInstance2.Disconnect()

Expand All @@ -670,7 +670,7 @@ func BenchmarkIntegration_ListTables(b *testing.B) {

ctx := context.Background()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(b, err)
defer appInstance.Disconnect()

Expand Down Expand Up @@ -702,7 +702,7 @@ func BenchmarkIntegration_ExecuteQuery(b *testing.B) {

ctx := context.Background()

appInstance, err := app.New()
appInstance, err := app.NewDefault()
require.NoError(b, err)
defer appInstance.Disconnect()

Expand Down
18 changes: 15 additions & 3 deletions internal/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,23 @@ type App struct {
logger *slog.Logger
}

// New creates a new App instance without establishing a connection.
// New creates a new App instance with the provided PostgreSQLClient.
// This constructor accepts a client implementation for dependency injection,
// making it easy to inject mocks or alternative implementations for testing.
func New(client PostgreSQLClient) *App {
return &App{
client: client,
logger: logger.NewLogger("info"),
}
}

// NewDefault creates a new App instance with a default PostgreSQLClient.
// Use Connect() method or connect_database tool to establish connection.
func New() (*App, error) {
// This is a convenience constructor for production use.
func NewDefault() (*App, error) {
client := NewPostgreSQLClient()
app := &App{
client: NewPostgreSQLClient(),
client: client,
logger: logger.NewLogger("info"),
}

Expand Down
Loading
Loading