@@ -29,14 +29,14 @@ describe('result type tests', () => {
29
29
} )
30
30
31
31
it ( 'handles failed synchronous operations' , ( ) => {
32
- const result = trySafe ( ( ) => {
32
+ const result = trySafe < never , Error > ( ( ) => {
33
33
throw new Error ( 'test' )
34
34
} )
35
35
expect ( result ) . toBeInstanceOf ( Err )
36
36
assertErr ( result )
37
37
expect ( result . error ) . toBeInstanceOf ( Error )
38
- expect ( ( result as Err < Error > ) . error . message ) . toBe ( 'test' )
39
- expectTypeOf ( result ) . toMatchTypeOf < Err < unknown > > ( )
38
+ expect ( result . error . message ) . toBe ( 'test' )
39
+ expectTypeOf ( result ) . toMatchTypeOf < Err < unknown > > ( )
40
40
} )
41
41
42
42
it ( 'handles successful asynchronous operations' , async ( ) => {
@@ -48,11 +48,11 @@ describe('result type tests', () => {
48
48
} )
49
49
50
50
it ( 'handles failed asynchronous operations' , async ( ) => {
51
- const result = await trySafe ( Promise . reject ( new Error ( 'test' ) ) )
51
+ const result = await trySafe < never , Error > ( Promise . reject ( new Error ( 'test' ) ) )
52
52
expect ( result ) . toBeInstanceOf ( Err )
53
53
assertErr ( result )
54
54
expect ( result . error ) . toBeInstanceOf ( Error )
55
- expect ( ( result as Err < Error > ) . error . message ) . toBe ( 'test' )
55
+ expect ( result . error . message ) . toBe ( 'test' )
56
56
expectTypeOf ( result ) . toMatchTypeOf < Err < unknown > > ( )
57
57
} )
58
58
@@ -84,19 +84,26 @@ describe('result type tests', () => {
84
84
} )
85
85
86
86
it ( 'unwraps an Ok result' , ( ) => {
87
- const result = ok ( 42 )
87
+ const result = ok ( 1 )
88
88
const unwrapped = unwrap ( result )
89
- expect ( unwrapped ) . toEqual ( { value : 42 , error : undefined } )
89
+ expect ( unwrapped ) . toEqual ( { value : 1 , error : undefined } )
90
90
expectTypeOf ( unwrapped ) . toMatchTypeOf < { value : number , error : undefined } > ( )
91
91
} )
92
92
93
93
it ( 'unwraps an Err result' , ( ) => {
94
- const error = new Error ( 'test error ' )
94
+ const error = new Error ( 'test' )
95
95
const result = err ( error )
96
96
const unwrapped = unwrap ( result )
97
97
expect ( unwrapped ) . toEqual ( { value : undefined , error } )
98
98
expectTypeOf ( unwrapped ) . toMatchTypeOf < { value : undefined , error : Error } > ( )
99
99
} )
100
+
101
+ it ( 'unwraps a result with type inference' , ( ) => {
102
+ const result = trySafe ( ( ) => 1 )
103
+ const unwrapped = unwrap ( result )
104
+ expect ( unwrapped ) . toEqual ( { value : 1 , error : undefined } )
105
+ expectTypeOf ( unwrapped ) . toMatchTypeOf < { value : unknown , error : unknown } > ( )
106
+ } )
100
107
} )
101
108
102
109
function assertOk < T , E > ( result : Result < T , E > ) : asserts result is Ok < T > {
0 commit comments