@@ -288,6 +288,19 @@ describe('Result.Ok', () => {
288288 expect ( errMapper ) . not . toHaveBeenCalled ( )
289289 } )
290290
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+
291304 it ( 'Unwraps without issue' , ( ) => {
292305 const okVal = ok ( 12 )
293306
@@ -450,6 +463,19 @@ describe('Result.Err', () => {
450463 expect ( errMapper ) . toHaveBeenCalledTimes ( 1 )
451464 } )
452465
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+
453479 it ( 'Throws when you unwrap an Err' , ( ) => {
454480 const errVal = err ( 'woopsies' )
455481
@@ -1171,6 +1197,32 @@ describe('ResultAsync', () => {
11711197 } )
11721198 } )
11731199
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+
11741226 describe ( 'unwrapOr' , ( ) => {
11751227 it ( 'returns a promise to the result value on an Ok' , async ( ) => {
11761228 const unwrapped = await okAsync ( 12 ) . unwrapOr ( 10 )
0 commit comments