Skip to content

Commit 9d404da

Browse files
committed
GODRIVER-407: add test for readPreference implicit
includes reviewer's requested change
1 parent 2381ee4 commit 9d404da

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

mongo/client.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,20 @@ func newClient(cs connstring.ConnString, opts *ClientOptions) (*Client, error) {
118118
if err != nil {
119119
return nil, err
120120
}
121-
122121
client.topology = topo
122+
123123
client.readConcern = readConcernFromConnString(&client.connString)
124124
client.writeConcern = writeConcernFromConnString(&client.connString)
125-
client.readPreference, err = readPreferenceFromConnString(&client.connString)
125+
126+
rp, err := readPreferenceFromConnString(&client.connString)
126127
if err != nil {
127128
return nil, err
128129
}
130+
if rp != nil {
131+
client.readPreference = rp
132+
} else {
133+
client.readPreference = readpref.Primary()
134+
}
129135

130136
return client, nil
131137
}
@@ -201,7 +207,7 @@ func readPreferenceFromConnString(cs *connstring.ConnString) (*readpref.ReadPref
201207
}
202208
}
203209

204-
return readPref.Primary();
210+
return rp, nil
205211
}
206212

207213
// Database returns a handle for a given database.

mongo/client_internal_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,5 +331,17 @@ func TestClient_ReadPreference(t *testing.T) {
331331
d, flag := c.readPreference.MaxStaleness()
332332
require.True(t, flag)
333333
require.Equal(t, time.Duration(5)*time.Second, d)
334+
}
335+
336+
func TestClient_ReadPreferenceAbsent(t *testing.T) {
337+
t.Parallel()
334338

339+
cs := testutil.ConnString(t)
340+
c, err := NewClient(cs.String())
341+
require.NoError(t, err)
342+
require.NotNil(t, c)
343+
require.Equal(t, readpref.PrimaryMode, c.readPreference.Mode())
344+
require.Empty(t, c.readPreference.TagSets())
345+
_, flag := c.readPreference.MaxStaleness()
346+
require.False(t, flag)
335347
}

0 commit comments

Comments
 (0)