@@ -203,7 +203,7 @@ describe('result', () => {
203
203
describe ( 'tap' , ( ) => {
204
204
it ( 'should tap.ok' , done => {
205
205
const sut = ok ( 1 )
206
-
206
+
207
207
sut . tap ( {
208
208
ok : num => {
209
209
expect ( num ) . toEqual ( 1 )
@@ -215,7 +215,7 @@ describe('result', () => {
215
215
216
216
it ( 'should tap.ok' , done => {
217
217
const sut = fail < number , string > ( 'failed' )
218
-
218
+
219
219
sut . tap ( {
220
220
fail : str => {
221
221
expect ( str ) . toEqual ( 'failed' )
@@ -227,7 +227,7 @@ describe('result', () => {
227
227
228
228
it ( 'should tapOk' , done => {
229
229
const sut = ok < number , string > ( 1 )
230
-
230
+
231
231
sut . tapOk ( num => {
232
232
expect ( num ) . toEqual ( 1 )
233
233
done ( )
@@ -241,7 +241,7 @@ describe('result', () => {
241
241
242
242
it ( 'should tapFail' , done => {
243
243
const sut = fail < number , string > ( 'failed' )
244
-
244
+
245
245
sut . tapFail ( err => {
246
246
expect ( err ) . toEqual ( 'failed' )
247
247
done ( )
@@ -252,5 +252,122 @@ describe('result', () => {
252
252
done ( )
253
253
} )
254
254
} )
255
+
256
+ it ( 'should tapThru' , done => {
257
+ const result = ok < number , string > ( 1 )
258
+
259
+ let sideEffect = 0
260
+
261
+ const sut = result . tapOkThru ( v => {
262
+ sideEffect = v
263
+ } ) . map ( a => a + 2 )
264
+
265
+ expect ( sut . unwrap ( ) ) . toEqual ( 3 )
266
+ expect ( sideEffect ) . toEqual ( 1 )
267
+
268
+ done ( )
269
+ } )
270
+
271
+ it ( 'should tapThru failed side' , done => {
272
+ const result = fail < number , string > ( 'failed' )
273
+
274
+ let sideEffect = 0
275
+
276
+ const sut = result . tapOkThru ( v => {
277
+ sideEffect = v
278
+ } ) . map ( a => a + 2 )
279
+
280
+ expect ( sut . unwrapFail ( ) ) . toEqual ( 'failed' )
281
+ expect ( sideEffect ) . toEqual ( 0 )
282
+
283
+ done ( )
284
+ } )
285
+
286
+ it ( 'should tapFailThru' , done => {
287
+ const result = fail < number , string > ( 'failed' )
288
+
289
+ let sideEffect = ''
290
+
291
+ const sut = result . tapFailThru ( v => {
292
+ sideEffect = v + ' inside'
293
+ } ) . map ( a => a + 2 )
294
+
295
+ expect ( sut . unwrapFail ( ) ) . toEqual ( 'failed' )
296
+ expect ( sideEffect ) . toEqual ( 'failed inside' )
297
+
298
+ done ( )
299
+ } )
300
+
301
+ it ( 'should tapFailThru Ok side' , done => {
302
+ const result = ok < number , string > ( 1 )
303
+
304
+ let sideEffect = ''
305
+
306
+ const sut = result . tapFailThru ( v => {
307
+ sideEffect = v + ' inside'
308
+ } ) . map ( a => a + 2 )
309
+
310
+ expect ( sut . unwrap ( ) ) . toEqual ( 3 )
311
+ expect ( sideEffect ) . toEqual ( '' )
312
+
313
+ done ( )
314
+ } )
315
+
316
+ it ( 'should tapThru' , done => {
317
+ const result = ok < number , string > ( 1 )
318
+
319
+ let sideEffect = 0
320
+
321
+ const sut = result . tapThru ( {
322
+ ok : v => {
323
+ sideEffect = v
324
+ }
325
+ } ) . map ( a => a + 2 )
326
+
327
+ expect ( sut . unwrap ( ) ) . toEqual ( 3 )
328
+ expect ( sideEffect ) . toEqual ( 1 )
329
+
330
+ done ( )
331
+ } )
332
+
333
+ it ( 'should tapThru' , done => {
334
+ const result = ok < number , string > ( 1 )
335
+
336
+ let sideEffect = 0
337
+
338
+ const sut = result . tapThru ( {
339
+ ok : v => {
340
+ sideEffect = v
341
+ } ,
342
+ fail : f => {
343
+ sideEffect = + f
344
+ }
345
+ } ) . map ( a => a + 2 )
346
+
347
+ expect ( sut . unwrap ( ) ) . toEqual ( 3 )
348
+ expect ( sideEffect ) . toEqual ( 1 )
349
+
350
+ done ( )
351
+ } )
352
+
353
+ it ( 'should tapThru' , done => {
354
+ const result = fail < number , string > ( 'failed' )
355
+
356
+ let sideEffect = ''
357
+
358
+ const sut = result . tapThru ( {
359
+ ok : v => {
360
+ sideEffect = v + ''
361
+ } ,
362
+ fail : f => {
363
+ sideEffect = f + ' in here'
364
+ }
365
+ } ) . map ( a => a + 2 )
366
+
367
+ expect ( sut . unwrapFail ( ) ) . toEqual ( 'failed' )
368
+ expect ( sideEffect ) . toEqual ( 'failed in here' )
369
+
370
+ done ( )
371
+ } )
255
372
} )
256
373
} )
0 commit comments