@@ -288,6 +288,19 @@ describe('Result.Ok', () => {
288
288
expect ( errMapper ) . not . toHaveBeenCalled ( )
289
289
} )
290
290
291
+ it ( 'Forks on an Ok' , ( ) => {
292
+ const okMapper = vitest . fn ( ( _val ) => ok ( 'weeeeee' ) )
293
+ const errMapper = vitest . fn ( ( _val ) => err ( 'wooooo' ) )
294
+
295
+ const forked = ok ( 12 ) . fork ( okMapper , errMapper )
296
+
297
+ expect ( forked . isOk ( ) ) . toBe ( true )
298
+ expect ( forked ) . toBeInstanceOf ( Ok )
299
+ expect ( forked . _unsafeUnwrap ( ) ) . toBe ( 'weeeeee' )
300
+ expect ( okMapper ) . toHaveBeenCalledTimes ( 1 )
301
+ expect ( errMapper ) . not . toHaveBeenCalled ( )
302
+ } )
303
+
291
304
it ( 'Unwraps without issue' , ( ) => {
292
305
const okVal = ok ( 12 )
293
306
@@ -450,6 +463,19 @@ describe('Result.Err', () => {
450
463
expect ( errMapper ) . toHaveBeenCalledTimes ( 1 )
451
464
} )
452
465
466
+ it ( 'Forks on an Err' , ( ) => {
467
+ const okMapper = vitest . fn ( ( _val ) => ok ( 'weeeeee' ) )
468
+ const errMapper = vitest . fn ( ( _val ) => err ( 'wooooo' ) )
469
+
470
+ const forked = err ( 12 ) . fork ( okMapper , errMapper )
471
+
472
+ expect ( forked . isErr ( ) ) . toBe ( true )
473
+ expect ( forked ) . toBeInstanceOf ( Err )
474
+ expect ( forked . _unsafeUnwrapErr ( ) ) . toBe ( 'wooooo' )
475
+ expect ( okMapper ) . not . toHaveBeenCalled ( )
476
+ expect ( errMapper ) . toHaveBeenCalledTimes ( 1 )
477
+ } )
478
+
453
479
it ( 'Throws when you unwrap an Err' , ( ) => {
454
480
const errVal = err ( 'woopsies' )
455
481
@@ -1171,6 +1197,32 @@ describe('ResultAsync', () => {
1171
1197
} )
1172
1198
} )
1173
1199
1200
+ describe ( 'fork' , ( ) => {
1201
+ it ( 'Forks on an Ok' , async ( ) => {
1202
+ const okMapper = vitest . fn ( ( _val ) => ok ( 'weeeeee' ) )
1203
+ const errMapper = vitest . fn ( ( _val ) => err ( 'wooooo' ) )
1204
+
1205
+ const forked = await okAsync ( 12 ) . fork ( okMapper , errMapper )
1206
+
1207
+ expect ( forked . isOk ( ) ) . toBe ( true )
1208
+ expect ( forked . _unsafeUnwrap ( ) ) . toBe ( 'weeeeee' )
1209
+ expect ( okMapper ) . toHaveBeenCalledTimes ( 1 )
1210
+ expect ( errMapper ) . not . toHaveBeenCalled ( )
1211
+ } )
1212
+
1213
+ it ( 'Forks on an Error' , async ( ) => {
1214
+ const okMapper = vitest . fn ( ( _val ) => ok ( 'weeeeee' ) )
1215
+ const errMapper = vitest . fn ( ( _val ) => err ( 'wooooo' ) )
1216
+
1217
+ const forked = await errAsync ( 'bad' ) . fork ( okMapper , errMapper )
1218
+
1219
+ expect ( forked . isErr ( ) ) . toBe ( true )
1220
+ expect ( forked . _unsafeUnwrapErr ( ) ) . toBe ( 'wooooo' )
1221
+ expect ( okMapper ) . not . toHaveBeenCalled ( )
1222
+ expect ( errMapper ) . toHaveBeenCalledTimes ( 1 )
1223
+ } )
1224
+ } )
1225
+
1174
1226
describe ( 'unwrapOr' , ( ) => {
1175
1227
it ( 'returns a promise to the result value on an Ok' , async ( ) => {
1176
1228
const unwrapped = await okAsync ( 12 ) . unwrapOr ( 10 )
0 commit comments