Skip to content

Commit 3fe56e6

Browse files
committed
Increase unit and integration test coverage for Consent Engine and PDP
1 parent 4bac6d9 commit 3fe56e6

23 files changed

Lines changed: 2821 additions & 1077 deletions

File tree

exchange/consent-engine/go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ require (
99
)
1010

1111
require (
12-
github.com/DATA-DOG/go-sqlmock v1.5.2
1312
github.com/gov-dx-sandbox/exchange/shared/monitoring v0.0.0
1413
github.com/stretchr/testify v1.11.1
1514
gorm.io/driver/postgres v1.6.0
@@ -58,6 +57,8 @@ require (
5857
gopkg.in/yaml.v3 v3.0.1 // indirect
5958
)
6059

60+
replace github.com/gov-dx-sandbox/exchange/shared/config => ../shared/config
61+
6162
replace github.com/gov-dx-sandbox/exchange/shared/monitoring => ../shared/monitoring
6263

6364
replace github.com/gov-dx-sandbox/exchange/shared/utils => ../shared/utils

exchange/consent-engine/go.sum

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU=
2-
github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU=
31
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
42
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
53
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
@@ -34,7 +32,6 @@ github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD
3432
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
3533
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
3634
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
37-
github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE=
3835
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
3936
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
4037
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package database
2+
3+
import (
4+
"os"
5+
"testing"
6+
"time"
7+
8+
"github.com/gov-dx-sandbox/exchange/consent-engine/internal/config"
9+
"github.com/stretchr/testify/assert"
10+
)
11+
12+
func TestNewDatabaseConfig(t *testing.T) {
13+
// Clear environment variables
14+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_HOSTNAME")
15+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_PORT")
16+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_USERNAME")
17+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_PASSWORD")
18+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_DATABASENAME")
19+
os.Unsetenv("DB_SSLMODE")
20+
21+
dbConfigs := &config.DBConfigs{
22+
Host: "localhost",
23+
Port: "5432",
24+
Username: "postgres",
25+
Password: "password",
26+
Database: "testdb",
27+
SSLMode: "prefer",
28+
}
29+
config := NewDatabaseConfig(dbConfigs)
30+
31+
assert.Equal(t, "localhost", config.Host)
32+
assert.Equal(t, "5432", config.Port)
33+
assert.Equal(t, "postgres", config.Username)
34+
assert.Equal(t, "password", config.Password)
35+
assert.Equal(t, "testdb", config.Database)
36+
assert.Equal(t, "prefer", config.SSLMode)
37+
assert.Equal(t, 25, config.MaxOpenConns)
38+
assert.Equal(t, 5, config.MaxIdleConns)
39+
assert.Equal(t, time.Hour, config.ConnMaxLifetime)
40+
assert.Equal(t, 30*time.Minute, config.ConnMaxIdleTime)
41+
assert.Equal(t, 5, config.MaxRetries)
42+
}
43+
44+
func TestNewDatabaseConfig_WithEnvVars(t *testing.T) {
45+
os.Setenv("CHOREO_OPENDIF_DATABASE_HOSTNAME", "test-host")
46+
os.Setenv("CHOREO_OPENDIF_DATABASE_PORT", "5433")
47+
os.Setenv("CHOREO_OPENDIF_DATABASE_USERNAME", "test-user")
48+
os.Setenv("CHOREO_OPENDIF_DATABASE_PASSWORD", "test-password")
49+
os.Setenv("CHOREO_OPENDIF_DATABASE_DATABASENAME", "test-db")
50+
os.Setenv("DB_SSLMODE", "require")
51+
defer func() {
52+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_HOSTNAME")
53+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_PORT")
54+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_USERNAME")
55+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_PASSWORD")
56+
os.Unsetenv("CHOREO_OPENDIF_DATABASE_DATABASENAME")
57+
os.Unsetenv("DB_SSLMODE")
58+
}()
59+
60+
dbConfigs := &config.DBConfigs{
61+
Host: "test-host",
62+
Port: "5433",
63+
Username: "test-user",
64+
Password: "test-password",
65+
Database: "test-db",
66+
SSLMode: "require",
67+
}
68+
config := NewDatabaseConfig(dbConfigs)
69+
70+
assert.Equal(t, "test-host", config.Host)
71+
assert.Equal(t, "5433", config.Port)
72+
assert.Equal(t, "test-user", config.Username)
73+
assert.Equal(t, "test-password", config.Password)
74+
assert.Equal(t, "test-db", config.Database)
75+
assert.Equal(t, "require", config.SSLMode)
76+
}
77+
78+
// NOTE: Tests for ConnectGormDB with real database connections have been moved to
79+
// tests/integration/database/database_test.go as integration tests.
80+
// Unit tests should not use real database connections.
81+

0 commit comments

Comments
 (0)