@@ -214,6 +214,26 @@ describe('@types/container', () => {
214
214
expect ( c_cannot_resolveAsync_anything ) . toBe ( true )
215
215
} )
216
216
217
+ it ( 'assigns the correct type to sync resolved values' , ( ) => {
218
+ type C = Container < { a : number } , { } >
219
+
220
+ // Checking the type for the resolved value
221
+ type C_resolve_ReturnType = ReturnType < C [ 'resolve' ] >
222
+ type C_resolve_ReturnType_extends_number =
223
+ C_resolve_ReturnType extends number ? true : false
224
+ type C_number_extends_resolve_ReturnType =
225
+ number extends C_resolve_ReturnType ? true : false
226
+ type C_resolve_ReturnType_is_number =
227
+ C_resolve_ReturnType_extends_number extends true
228
+ ? C_number_extends_resolve_ReturnType extends true
229
+ ? true
230
+ : false
231
+ : false
232
+
233
+ const c_resolves_number : C_resolve_ReturnType_is_number = true
234
+ expect ( c_resolves_number ) . toBe ( true )
235
+ } )
236
+
217
237
it ( 'only resolves the async registered dependency' , ( ) => {
218
238
type C = Container < { } , { b : number } >
219
239
@@ -236,6 +256,26 @@ describe('@types/container', () => {
236
256
expect ( c_can_only_resolve_b ) . toBe ( true )
237
257
} )
238
258
259
+ it ( 'assigns the correct type to async resolved values' , ( ) => {
260
+ type C = Container < { } , { a : number } >
261
+
262
+ // Checking the type for the resolved value
263
+ type C_resolveAsync_ReturnType = ReturnType < C [ 'resolveAsync' ] >
264
+ type C_resolveAsync_ReturnType_extends_number =
265
+ C_resolveAsync_ReturnType extends Promise < number > ? true : false
266
+ type C_number_extends_resolve_ReturnType =
267
+ Promise < number > extends C_resolveAsync_ReturnType ? true : false
268
+ type C_resolveAsync_ReturnType_is_number =
269
+ C_resolveAsync_ReturnType_extends_number extends true
270
+ ? C_number_extends_resolve_ReturnType extends true
271
+ ? true
272
+ : false
273
+ : false
274
+
275
+ const c_resolvesAsync_number : C_resolveAsync_ReturnType_is_number = true
276
+ expect ( c_resolvesAsync_number ) . toBe ( true )
277
+ } )
278
+
239
279
it ( 'only resolves the sync registered groups' , ( ) => {
240
280
type C = Container <
241
281
{
0 commit comments