Skip to content
Snippets Groups Projects
postgres_test.go 1.27 KiB
Newer Older
  • Learn to ignore specific revisions
  • // +build go1.11
    
    package sql
    
    import (
    	"os"
    	"testing"
    )
    
    func TestPostgresTunables(t *testing.T) {
    	host := os.Getenv(testPostgresEnv)
    	if host == "" {
    		t.Skipf("test environment variable %q not set, skipping", testPostgresEnv)
    	}
    	baseCfg := &Postgres{
    		Database: getenv("DEX_POSTGRES_DATABASE", "postgres"),
    		User:     getenv("DEX_POSTGRES_USER", "postgres"),
    		Password: getenv("DEX_POSTGRES_PASSWORD", "postgres"),
    		Host:     host,
    		SSL: PostgresSSL{
    			Mode: sslDisable, // Postgres container doesn't support SSL.
    		}}
    
    	t.Run("with nothing set, uses defaults", func(t *testing.T) {
    		cfg := *baseCfg
    		c, err := cfg.open(logger, cfg.createDataSourceName())
    		if err != nil {
    			t.Fatalf("error opening connector: %s", err.Error())
    		}
    		defer c.db.Close()
    		if m := c.db.Stats().MaxOpenConnections; m != 5 {
    			t.Errorf("expected MaxOpenConnections to have its default (5), got %d", m)
    		}
    	})
    
    	t.Run("with something set, uses that", func(t *testing.T) {
    		cfg := *baseCfg
    		cfg.MaxOpenConns = 101
    		c, err := cfg.open(logger, cfg.createDataSourceName())
    		if err != nil {
    			t.Fatalf("error opening connector: %s", err.Error())
    		}
    		defer c.db.Close()
    		if m := c.db.Stats().MaxOpenConnections; m != 101 {
    			t.Errorf("expected MaxOpenConnections to be set to 101, got %d", m)
    		}
    	})
    }