11import { App , Request } from '../packages/app/src/index'
22import supertest from 'supertest'
3+ import { InitAppAndTest } from './app.test'
34
45// From https://gist.github.com/nicbell/6081098
56const compare = ( obj1 : any , obj2 : any ) => {
@@ -32,19 +33,13 @@ const compare = (obj1: any, obj2: any) => {
3233
3334describe ( 'Request extensions' , ( ) => {
3435 it ( 'should have default HTTP Request properties' , done => {
35- const app = new App ( )
36-
37- app . get ( '/' , ( req : Request , res ) => {
36+ const { request, server } = InitAppAndTest ( ( req , res ) => {
3837 res . status ( 200 ) . json ( {
3938 url : req . url ,
4039 complete : req . complete
4140 } )
4241 } )
4342
44- const server = app . listen ( )
45-
46- const request : any = supertest ( server )
47-
4843 request
4944 . get ( '/' )
5045 . expect ( 200 , { url : '/' , complete : false } )
@@ -72,14 +67,8 @@ describe('Request extensions', () => {
7267 done ( )
7368 } )
7469 } )
75- it ( 'query params are being parsed properly' , done => {
76- const app = new App ( )
77-
78- app . use ( ( req , res ) => void res . send ( req . query ) )
79-
80- const server = app . listen ( )
81-
82- const request : any = supertest ( server )
70+ it ( 'req.query is being parsed properly' , done => {
71+ const { request, server } = InitAppAndTest ( ( req , res ) => void res . send ( req . query ) )
8372
8473 request
8574 . get ( '/?param1=val1¶m2=val2' )
@@ -93,14 +82,8 @@ describe('Request extensions', () => {
9382 done ( )
9483 } )
9584 } )
96- it ( 'request params are being parsed properly' , done => {
97- const app = new App ( )
98-
99- app . get ( '/:param1/:param2' , ( req , res ) => void res . send ( req . params ) )
100-
101- const server = app . listen ( )
102-
103- const request : any = supertest ( server )
85+ it ( 'req.params is being parsed properly' , done => {
86+ const { request, server } = InitAppAndTest ( ( req , res ) => void res . send ( req . params ) , '/:param1/:param2' )
10487
10588 request
10689 . get ( '/val1/val2' )
@@ -114,4 +97,58 @@ describe('Request extensions', () => {
11497 done ( )
11598 } )
11699 } )
100+ it ( 'default req.protocol is HTTP' , done => {
101+ const { request, server } = InitAppAndTest ( ( req , res ) => void res . send ( req . protocol ) )
102+
103+ request
104+ . get ( '/' )
105+ . expect ( 200 , `http` )
106+ . end ( ( err : Error ) => {
107+ server . close ( )
108+ if ( err ) return done ( err )
109+ done ( )
110+ } )
111+ } )
112+ // TODO: add the same test but for HTTPS
113+ it ( 'req.secure is false on HTTP' , done => {
114+ const { request, server } = InitAppAndTest ( ( req , res ) => void res . send ( `HTTPS: ${ req . secure ? 'yes' : 'no' } ` ) )
115+
116+ request
117+ . get ( '/' )
118+ . expect ( 200 , `HTTPS: no` )
119+ . end ( ( err : Error ) => {
120+ server . close ( )
121+ if ( err ) return done ( err )
122+ done ( )
123+ } )
124+ } )
125+ it ( 'req.set sets the header and req.get returns a header' , done => {
126+ const { request, server } = InitAppAndTest ( ( req , res ) => {
127+ req . set ( 'X-Header' , '123' )
128+ res . send ( req . get ( 'X-Header' ) )
129+ } )
130+
131+ request
132+ . get ( '/' )
133+ . expect ( 200 , `123` )
134+ . end ( ( err : Error ) => {
135+ server . close ( )
136+ if ( err ) return done ( err )
137+ done ( )
138+ } )
139+ } )
140+ it ( 'req.xhr is false because of node-superagent' , done => {
141+ const { request, server } = InitAppAndTest ( ( req , res ) => {
142+ res . send ( `XMLHttpRequest: ${ req . xhr ? 'yes' : 'no' } ` )
143+ } )
144+
145+ request
146+ . get ( '/' )
147+ . expect ( 200 , `XMLHttpRequest: no` )
148+ . end ( ( err : Error ) => {
149+ server . close ( )
150+ if ( err ) return done ( err )
151+ done ( )
152+ } )
153+ } )
117154} )
0 commit comments