github.com/jackc/pgx/v5@v5.5.5/pgconn/errors_test.go (about) 1 package pgconn_test 2 3 import ( 4 "testing" 5 6 "github.com/jackc/pgx/v5/pgconn" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestConfigError(t *testing.T) { 11 tests := []struct { 12 name string 13 err error 14 expectedMsg string 15 }{ 16 { 17 name: "url with password", 18 err: pgconn.NewParseConfigError("postgresql://foo:password@host", "msg", nil), 19 expectedMsg: "cannot parse `postgresql://foo:xxxxx@host`: msg", 20 }, 21 { 22 name: "dsn with password unquoted", 23 err: pgconn.NewParseConfigError("host=host password=password user=user", "msg", nil), 24 expectedMsg: "cannot parse `host=host password=xxxxx user=user`: msg", 25 }, 26 { 27 name: "dsn with password quoted", 28 err: pgconn.NewParseConfigError("host=host password='pass word' user=user", "msg", nil), 29 expectedMsg: "cannot parse `host=host password=xxxxx user=user`: msg", 30 }, 31 { 32 name: "weird url", 33 err: pgconn.NewParseConfigError("postgresql://foo::pasword@host:1:", "msg", nil), 34 expectedMsg: "cannot parse `postgresql://foo:xxxxx@host:1:`: msg", 35 }, 36 { 37 name: "weird url with slash in password", 38 err: pgconn.NewParseConfigError("postgres://user:pass/word@host:5432/db_name", "msg", nil), 39 expectedMsg: "cannot parse `postgres://user:xxxxxx@host:5432/db_name`: msg", 40 }, 41 { 42 name: "url without password", 43 err: pgconn.NewParseConfigError("postgresql://other@host/db", "msg", nil), 44 expectedMsg: "cannot parse `postgresql://other@host/db`: msg", 45 }, 46 } 47 for _, tt := range tests { 48 tt := tt 49 t.Run(tt.name, func(t *testing.T) { 50 t.Parallel() 51 assert.EqualError(t, tt.err, tt.expectedMsg) 52 }) 53 } 54 }