|
95 | 95 | end |
96 | 96 | end |
97 | 97 | end |
98 | | - |
| 98 | + |
99 | 99 | describe '#code' do |
100 | 100 | let(:parser) do |
101 | 101 | described_class.new(document) |
|
105 | 105 | let(:document) do |
106 | 106 | { 'ok' => 0, 'errmsg' => 'not master', 'code' => 10107, 'codeName' => 'NotMaster' } |
107 | 107 | end |
108 | | - |
| 108 | + |
109 | 109 | it 'returns the code' do |
110 | 110 | expect(parser.code).to eq(10107) |
111 | 111 | end |
|
115 | 115 | let(:document) do |
116 | 116 | { 'ok' => 0, 'errmsg' => 'not master' } |
117 | 117 | end |
118 | | - |
| 118 | + |
119 | 119 | it 'returns nil' do |
120 | 120 | expect(parser.code).to eq(nil) |
121 | 121 | end |
|
143 | 143 | end |
144 | 144 | end |
145 | 145 | end |
146 | | - |
| 146 | + |
147 | 147 | describe '#code_name' do |
148 | 148 | let(:parser) do |
149 | 149 | described_class.new(document) |
|
153 | 153 | let(:document) do |
154 | 154 | { 'ok' => 0, 'errmsg' => 'not master', 'code' => 10107, 'codeName' => 'NotMaster' } |
155 | 155 | end |
156 | | - |
| 156 | + |
157 | 157 | it 'returns the code name' do |
158 | 158 | expect(parser.code_name).to eq('NotMaster') |
159 | 159 | end |
|
163 | 163 | let(:document) do |
164 | 164 | { 'ok' => 0, 'errmsg' => 'not master' } |
165 | 165 | end |
166 | | - |
| 166 | + |
167 | 167 | it 'returns nil' do |
168 | 168 | expect(parser.code_name).to eq(nil) |
169 | 169 | end |
|
192 | 192 | end |
193 | 193 | end |
194 | 194 | end |
195 | | - |
| 195 | + |
196 | 196 | describe '#document' do |
197 | 197 | let(:parser) do |
198 | 198 | described_class.new(document) |
|
201 | 201 | let(:document) do |
202 | 202 | { 'ok' => 0, 'errmsg' => 'not master', 'code' => 10107, 'codeName' => 'NotMaster' } |
203 | 203 | end |
204 | | - |
| 204 | + |
205 | 205 | it 'returns the document' do |
206 | 206 | expect(parser.document).to eq(document) |
207 | 207 | end |
208 | 208 | end |
209 | | - |
| 209 | + |
210 | 210 | describe '#replies' do |
211 | 211 | let(:parser) do |
212 | 212 | described_class.new(document) |
|
216 | 216 | let(:document) do |
217 | 217 | { 'ok' => 0, 'errmsg' => 'not master', 'code' => 10107, 'codeName' => 'NotMaster' } |
218 | 218 | end |
219 | | - |
| 219 | + |
220 | 220 | it 'returns nil' do |
221 | 221 | expect(parser.replies).to eq(nil) |
222 | 222 | end |
223 | 223 | end |
224 | 224 | end |
| 225 | + |
| 226 | + describe '#labels' do |
| 227 | + let(:parser) do |
| 228 | + described_class.new(document) |
| 229 | + end |
| 230 | + |
| 231 | + let(:document) do |
| 232 | + { |
| 233 | + 'code' => 251, |
| 234 | + 'codeName' => 'NoSuchTransaction', |
| 235 | + 'errorLabels' => labels, |
| 236 | + } |
| 237 | + end |
| 238 | + |
| 239 | + context 'when there are no labels' do |
| 240 | + let(:labels) do |
| 241 | + [] |
| 242 | + end |
| 243 | + |
| 244 | + it 'has the correct labels' do |
| 245 | + expect(parser.labels).to eq(labels) |
| 246 | + end |
| 247 | + end |
| 248 | + |
| 249 | + context 'when there are labels' do |
| 250 | + let(:labels) do |
| 251 | + [ Mongo::Error::TRANSIENT_TRANSACTION_ERROR_LABEL ] |
| 252 | + end |
| 253 | + |
| 254 | + it 'has the correct labels' do |
| 255 | + expect(parser.labels).to eq(labels) |
| 256 | + end |
| 257 | + end |
| 258 | + end |
225 | 259 | end |
0 commit comments