From 49adc4e5bbf5177726f235271928a39f9008bf08 Mon Sep 17 00:00:00 2001 From: "m.nabokikh" Date: Sat, 15 May 2021 08:32:43 +0400 Subject: [PATCH] Fix ent-based postgres storage tests Signed-off-by: m.nabokikh --- .github/workflows/ci.yaml | 11 +++++++++++ storage/ent/postgres.go | 3 ++- storage/ent/postgres_test.go | 26 +++++++++++++++++--------- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d4140108..63ed06ab 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,6 +20,12 @@ jobs: - 5432 options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + postgres-ent: + image: postgres:10.8 + ports: + - 5432 + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + mysql: image: mysql:5.7 env: @@ -70,6 +76,11 @@ jobs: DEX_POSTGRES_PASSWORD: postgres DEX_POSTGRES_HOST: localhost DEX_POSTGRES_PORT: ${{ job.services.postgres.ports[5432] }} + DEX_POSTGRES_ENT_DATABASE: postgres + DEX_POSTGRES_ENT_USER: postgres + DEX_POSTGRES_ENT_PASSWORD: postgres + DEX_POSTGRES_ENT_HOST: localhost + DEX_POSTGRES_ENT_PORT: ${{ job.services.postgres-ent.ports[5432] }} DEX_ETCD_ENDPOINTS: http://localhost:${{ job.services.etcd.ports[2379] }} DEX_LDAP_HOST: localhost DEX_LDAP_PORT: 389 diff --git a/storage/ent/postgres.go b/storage/ent/postgres.go index d2197893..83aca96c 100644 --- a/storage/ent/postgres.go +++ b/storage/ent/postgres.go @@ -11,10 +11,11 @@ import ( "strings" "time" + entSQL "entgo.io/ent/dialect/sql" + // Register postgres driver. _ "github.com/lib/pq" - entSQL "entgo.io/ent/dialect/sql" "github.com/dexidp/dex/pkg/log" "github.com/dexidp/dex/storage" "github.com/dexidp/dex/storage/ent/client" diff --git a/storage/ent/postgres_test.go b/storage/ent/postgres_test.go index d9395880..8021e3a1 100644 --- a/storage/ent/postgres_test.go +++ b/storage/ent/postgres_test.go @@ -12,6 +12,14 @@ import ( "github.com/dexidp/dex/storage/conformance" ) +const ( + PostgresEntHostEnv = "DEX_POSTGRES_ENT_HOST" + PostgresEntPortEnv = "DEX_POSTGRES_ENT_PORT" + PostgresEntDatabaseEnv = "DEX_POSTGRES_ENT_DATABASE" + PostgresEntUserEnv = "DEX_POSTGRES_ENT_USER" + PostgresEntPasswordEnv = "DEX_POSTGRES_ENT_PASSWORD" +) + func getenv(key, defaultVal string) string { if val := os.Getenv(key); val != "" { return val @@ -22,9 +30,9 @@ func getenv(key, defaultVal string) string { func postgresTestConfig(host string, port uint64) *Postgres { return &Postgres{ NetworkDB: NetworkDB{ - Database: getenv("DEX_POSTGRES_DATABASE", "postgres"), - User: getenv("DEX_POSTGRES_USER", "postgres"), - Password: getenv("DEX_POSTGRES_PASSWORD", "postgres"), + Database: getenv(PostgresEntDatabaseEnv, "postgres"), + User: getenv(PostgresEntUserEnv, "postgres"), + Password: getenv(PostgresEntPasswordEnv, "postgres"), Host: host, Port: uint16(port), }, @@ -50,13 +58,13 @@ func newPostgresStorage(host string, port uint64) storage.Storage { } func TestPostgres(t *testing.T) { - host := os.Getenv("DEX_POSTGRES_HOST") + host := os.Getenv(PostgresEntHostEnv) if host == "" { - t.Skipf("test environment variable DEX_POSTGRES_HOST not set, skipping") + t.Skipf("test environment variable %s not set, skipping", PostgresEntHostEnv) } port := uint64(5432) - if rawPort := os.Getenv("DEX_POSTGRES_PORT"); rawPort != "" { + if rawPort := os.Getenv(PostgresEntPortEnv); rawPort != "" { var err error port, err = strconv.ParseUint(rawPort, 10, 32) @@ -138,13 +146,13 @@ func TestPostgresDSN(t *testing.T) { } func TestPostgresDriver(t *testing.T) { - host := os.Getenv("DEX_POSTGRES_HOST") + host := os.Getenv(PostgresEntHostEnv) if host == "" { - t.Skipf("test environment variable DEX_POSTGRES_HOST not set, skipping") + t.Skipf("test environment variable %s not set, skipping", PostgresEntHostEnv) } port := uint64(5432) - if rawPort := os.Getenv("DEX_POSTGRES_PORT"); rawPort != "" { + if rawPort := os.Getenv(PostgresEntPortEnv); rawPort != "" { var err error port, err = strconv.ParseUint(rawPort, 10, 32)