@@ -6,44 +6,34 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
66
77import { Config } from "../config.ts" ;
88import { createMiddleware } from "../middleware.ts" ;
9- import { mockLogger } from "./mocks.ts" ;
9+ import { createMockReq , createMockRes , mockLogger , mockNext } from "./mocks.ts" ;
1010
1111vi . mock ( "fs" ) ;
1212const mockCreateReadStream = vi . mocked ( fs . createReadStream ) ;
1313const mockStatSync = vi . mocked ( fs . statSync ) ;
1414const mockPipe = vi . fn ( ) ;
1515
16- const mockConfig : Config = [
16+ const testConfig : Config = [
1717 {
1818 pattern : / \/ t e s t - d a t a \/ ( .* ) / ,
1919 resolve : ( groups ) => `../test-data/${ groups [ 1 ] } ` ,
2020 } ,
2121] ;
2222
23- function mockReq ( opts ?: Partial < Connect . IncomingMessage > ) {
24- return { url : "/test-data/hello" , ...opts } as Connect . IncomingMessage ;
25- }
26-
27- function mockRes ( opts ?: Partial < ServerResponse < Connect . IncomingMessage > > ) {
28- return { end : vi . fn ( ) , writeHead : vi . fn ( ) , ...opts } as ServerResponse < Connect . IncomingMessage > ;
29- }
30-
31- const mockNext = vi . fn ( ) as Connect . NextFunction ;
32-
3323function expectedHeaders ( length : number , type ?: string ) {
3424 return {
3525 "Content-Length" : length ,
3626 ...( type && { "Content-Type" : type } ) ,
3727 } ;
3828}
3929
40- function expectYield ( res : ReturnType < typeof mockRes > ) {
30+ function expectYield ( res : ServerResponse < Connect . IncomingMessage > ) {
4131 expect ( mockNext ) . toHaveBeenCalledOnce ( ) ;
4232 expect ( res . writeHead ) . not . toHaveBeenCalled ( ) ;
4333 expect ( res . end ) . not . toHaveBeenCalled ( ) ;
4434}
4535
46- function expectNotFound ( res : ReturnType < typeof mockRes > ) {
36+ function expectNotFound ( res : ServerResponse < Connect . IncomingMessage > ) {
4737 expect ( res . writeHead ) . toHaveBeenCalledWith ( 404 ) ;
4838 expect ( res . end ) . toHaveBeenCalledOnce ( ) ;
4939 expect ( mockNext ) . not . toHaveBeenCalled ( ) ;
@@ -65,8 +55,8 @@ describe("middleware", () => {
6555 } ,
6656 ] ;
6757 const middleware = createMiddleware ( config , mockLogger ) ;
68- const req = mockReq ( { url : "/hello" } ) ;
69- const res = mockRes ( ) ;
58+ const req = createMockReq ( { url : "/hello" } ) ;
59+ const res = createMockRes ( ) ;
7060
7161 // when
7262 middleware ( req , res , mockNext ) ;
@@ -110,8 +100,8 @@ describe("middleware", () => {
110100 for ( const test of tests ) {
111101 // given
112102 mockStatSync . mockReturnValue ( { size : test . size , isFile : ( ) => true } as Stats ) ;
113- const req = mockReq ( { url : test . url } ) ;
114- const res = mockRes ( ) ;
103+ const req = createMockReq ( { url : test . url } ) ;
104+ const res = createMockRes ( ) ;
115105
116106 // when
117107 middleware ( req , res , mockNext ) ;
@@ -127,9 +117,9 @@ describe("middleware", () => {
127117 it ( "returns a 404 if the resolved path cannot be opened" , ( ) => {
128118 // given
129119 mockStatSync . mockReturnValue ( undefined ) ;
130- const middleware = createMiddleware ( mockConfig , mockLogger ) ;
131- const req = mockReq ( ) ;
132- const res = mockRes ( ) ;
120+ const middleware = createMiddleware ( testConfig , mockLogger ) ;
121+ const req = createMockReq ( ) ;
122+ const res = createMockRes ( ) ;
133123
134124 // when
135125 middleware ( req , res , mockNext ) ;
@@ -141,9 +131,9 @@ describe("middleware", () => {
141131 it ( "returns a 404 if the resolved path does not point to a file" , ( ) => {
142132 // given
143133 mockStatSync . mockReturnValue ( { isFile : ( ) => false } as Stats ) ;
144- const middleware = createMiddleware ( mockConfig , mockLogger ) ;
145- const req = mockReq ( ) ;
146- const res = mockRes ( ) ;
134+ const middleware = createMiddleware ( testConfig , mockLogger ) ;
135+ const req = createMockReq ( ) ;
136+ const res = createMockRes ( ) ;
147137
148138 // when
149139 middleware ( req , res , mockNext ) ;
@@ -154,9 +144,9 @@ describe("middleware", () => {
154144
155145 it ( "yields if the url is undefined" , ( ) => {
156146 // given
157- const middleware = createMiddleware ( mockConfig , mockLogger ) ;
158- const req = mockReq ( { url : undefined } ) ;
159- const res = mockRes ( ) ;
147+ const middleware = createMiddleware ( testConfig , mockLogger ) ;
148+ const req = createMockReq ( { url : undefined } ) ;
149+ const res = createMockRes ( ) ;
160150
161151 // when
162152 middleware ( req , res , mockNext ) ;
@@ -168,8 +158,8 @@ describe("middleware", () => {
168158 it ( "yields if the config is empty" , ( ) => {
169159 // given
170160 const middleware = createMiddleware ( [ ] , mockLogger ) ;
171- const req = mockReq ( ) ;
172- const res = mockRes ( ) ;
161+ const req = createMockReq ( ) ;
162+ const res = createMockRes ( ) ;
173163
174164 // when
175165 middleware ( req , res , mockNext ) ;
@@ -180,9 +170,9 @@ describe("middleware", () => {
180170
181171 it ( "yields if none of the config patterns match" , ( ) => {
182172 // given
183- const middleware = createMiddleware ( mockConfig , mockLogger ) ;
184- const req = mockReq ( { url : "/index.html" } ) ;
185- const res = mockRes ( ) ;
173+ const middleware = createMiddleware ( testConfig , mockLogger ) ;
174+ const req = createMockReq ( { url : "/index.html" } ) ;
175+ const res = createMockRes ( ) ;
186176
187177 // when
188178 middleware ( req , res , mockNext ) ;
0 commit comments