Skip to content

Commit 79b34b8

Browse files
committed
Merge pull request #617 from estolfo/RUBY-907-parser
RUBY-907 writeConcernError is a document
2 parents b88d171 + a5d7ee0 commit 79b34b8

File tree

2 files changed

+7
-27
lines changed

2 files changed

+7
-27
lines changed

lib/mongo/error/parser.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ def parse!
4848
parse_single(@message, ERROR)
4949
parse_single(@message, ERRMSG)
5050
parse_multiple(@message, WRITE_ERRORS)
51-
parse_multiple(@message, WRITE_CONCERN_ERROR)
51+
parse_single(@message, ERRMSG,
52+
document[WRITE_CONCERN_ERROR]) if document[WRITE_CONCERN_ERROR]
5253
end
5354

5455
def parse_single(message, key, doc = document)

spec/mongo/error/parser_spec.rb

+5-26
Original file line numberDiff line numberDiff line change
@@ -84,35 +84,14 @@
8484
end
8585
end
8686

87-
context 'when the document contains writeConcernErrors' do
87+
context 'when the document contains a writeConcernError' do
8888

89-
context 'when a single error exists' do
90-
91-
let(:document) do
92-
{ 'writeConcernError' => [{ 'errmsg' => 'not authorized for query', 'code' => 13 }]}
93-
end
94-
95-
it 'returns the message' do
96-
expect(parser.message).to eq('not authorized for query (13)')
97-
end
89+
let(:document) do
90+
{ 'writeConcernError' => { 'code' => 100, 'errmsg' => 'Not enough data-bearing nodes' } }
9891
end
9992

100-
context 'when multiple errors exist' do
101-
102-
let(:document) do
103-
{
104-
'writeConcernError' => [
105-
{ 'code' => 9, 'errmsg' => 'Unknown modifier: $st' },
106-
{ 'code' => 9, 'errmsg' => 'Unknown modifier: $bl' }
107-
]
108-
}
109-
end
110-
111-
it 'returns the messages concatenated' do
112-
expect(parser.message).to eq(
113-
'Unknown modifier: $st (9), Unknown modifier: $bl (9)'
114-
)
115-
end
93+
it 'returns the message' do
94+
expect(parser.message).to eq('Not enough data-bearing nodes (100)')
11695
end
11796
end
11897
end

0 commit comments

Comments
 (0)