...

Source file src/github.com/jackc/pgconn/errors_test.go

Documentation: github.com/jackc/pgconn

     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