1
1
import { catchAsyncError } from "@tsed/core" ;
2
+ import { inject } from "@tsed/di" ;
2
3
import { Exception } from "@tsed/exceptions" ;
3
4
import { MulterError } from "multer" ;
4
5
5
6
import { PlatformTest } from "../../testing/PlatformTest.js" ;
6
7
import { MulterOptions } from "../decorators/multer/multerOptions.js" ;
7
8
import { MultipartFile } from "../decorators/multer/multipartFile.js" ;
8
9
import { EndpointMetadata } from "../domain/EndpointMetadata.js" ;
10
+ import { PlatformAdapter } from "../services/PlatformAdapter.js" ;
9
11
import { PlatformApplication } from "../services/PlatformApplication.js" ;
10
12
import { PlatformMulterMiddleware } from "./PlatformMulterMiddleware.js" ;
11
13
@@ -19,20 +21,16 @@ async function build(options = {}) {
19
21
const multer = {
20
22
fields : vi . fn ( ) . mockReturnValue ( multerMiddleware )
21
23
} ;
22
- const app = {
23
- multer : vi . fn ( ) . mockReturnValue ( multer )
24
- } ;
25
24
26
- const middleware = await PlatformTest . invoke < PlatformMulterMiddleware > ( PlatformMulterMiddleware , [
27
- {
28
- token : PlatformApplication ,
29
- use : app
30
- }
31
- ] ) ;
25
+ const middleware = inject ( PlatformMulterMiddleware ) ;
32
26
const ctx : any = PlatformTest . createRequestContext ( ) ;
33
27
ctx . endpoint = EndpointMetadata . get ( Test , "upload" ) ;
34
28
35
- return { middleware, ctx, multer, app, multerMiddleware} ;
29
+ const adapter = inject ( PlatformAdapter ) ;
30
+
31
+ vi . spyOn ( adapter , "multipart" ) . mockReturnValue ( multer as any ) ;
32
+
33
+ return { middleware, ctx, multer, adapter, multerMiddleware} ;
36
34
}
37
35
38
36
describe ( "PlatformMulterMiddleware" , ( ) => {
@@ -45,24 +43,24 @@ describe("PlatformMulterMiddleware", () => {
45
43
) ;
46
44
afterEach ( ( ) => PlatformTest . reset ( ) ) ;
47
45
it ( "should create middleware" , async ( ) => {
48
- const { middleware, ctx, multer, app , multerMiddleware} = await build ( { } ) ;
46
+ const { middleware, ctx, multer, adapter , multerMiddleware} = await build ( { } ) ;
49
47
50
48
await middleware . use ( ctx ) ;
51
49
52
- expect ( app . multer ) . toHaveBeenCalledWith ( {
50
+ expect ( adapter . multipart ) . toHaveBeenCalledWith ( {
53
51
dest : "/dest"
54
52
} ) ;
55
53
expect ( multer . fields ) . toHaveBeenCalledWith ( [ { maxCount : undefined , name : "file1" } ] ) ;
56
54
expect ( multerMiddleware ) . toHaveBeenCalledWith ( ctx . request . raw , ctx . response . raw ) ;
57
55
} ) ;
58
56
it ( "should create middleware with storage" , async ( ) => {
59
- const { middleware, ctx, multer, app , multerMiddleware} = await build ( {
57
+ const { middleware, ctx, multer, adapter , multerMiddleware} = await build ( {
60
58
storage : "storage"
61
59
} ) ;
62
60
63
61
await middleware . use ( ctx ) ;
64
62
65
- expect ( app . multer ) . toHaveBeenCalledWith ( {
63
+ expect ( adapter . multipart ) . toHaveBeenCalledWith ( {
66
64
storage : "storage"
67
65
} ) ;
68
66
expect ( multer . fields ) . toHaveBeenCalledWith ( [ { maxCount : undefined , name : "file1" } ] ) ;
0 commit comments