...
1 package pgconn_test
2
3 import (
4 "testing"
5
6 "github.com/jackc/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 }
55
View as plain text