@@ -7,6 +7,7 @@ const request = require('request');
77const spawn = require ( 'child_process' ) . spawn ;
88const path = require ( 'path' ) ;
99const portfinder = require ( 'portfinder' ) ;
10+ const httpServer = require ( '../lib/http-server' ) ;
1011
1112const node = process . execPath ;
1213const defaultPort = 8080 ;
@@ -46,6 +47,8 @@ const getPort = () => new Promise((resolve, reject) => {
4647 } ) ;
4748} ) ;
4849
50+ const stripAnsi = ( str ) => str . replace ( / \u001b \[ [ 0 - 9 ; ] * m / g, '' ) ;
51+
4952test ( 'setting port via cli - custom port' , ( t ) => {
5053 t . plan ( 2 ) ;
5154
@@ -115,6 +118,60 @@ test('--proxy requires you to specify a protocol', (t) => {
115118 } ) ;
116119} ) ;
117120
121+ test ( '--proxy-all requires --proxy' , ( t ) => {
122+ t . plan ( 1 ) ;
123+
124+ const options = [ '.' , '--proxy-all' , 'true' ] ;
125+ const server = startServer ( options ) ;
126+
127+ tearDown ( server , t ) ;
128+
129+ server . on ( 'exit' , ( code ) => {
130+ t . equal ( code , 1 ) ;
131+ } ) ;
132+ } ) ;
133+
134+ test ( '--proxy-all does not consume following positional args' , ( t ) => {
135+ t . plan ( 4 ) ;
136+
137+ const root = path . resolve ( __dirname , 'fixtures' , 'root' ) ;
138+ const targetServer = httpServer . createServer ( { root } ) ;
139+
140+ targetServer . listen ( 0 , ( ) => {
141+ const targetPort = targetServer . address ( ) . port ;
142+ getPort ( ) . then ( ( port ) => {
143+ const options = [
144+ '--proxy' , `http://localhost:${ targetPort } ` ,
145+ '--proxy-all' ,
146+ root ,
147+ '--port' , port
148+ ] ;
149+ const server = startServer ( options ) ;
150+
151+ tearDown ( server , t ) ;
152+ t . teardown ( ( ) => targetServer . close ( ) ) ;
153+
154+ let sawRootLog = false ;
155+
156+ server . stdout . on ( 'data' , ( msg ) => {
157+ const text = stripAnsi ( msg . toString ( ) ) ;
158+ if ( text . includes ( root ) ) {
159+ sawRootLog = true ;
160+ }
161+ checkServerIsRunning ( `http://localhost:${ port } ` , msg , t , ( err , res ) => {
162+ if ( err ) {
163+ t . fail ( err . toString ( ) ) ;
164+ return ;
165+ }
166+
167+ t . ok ( sawRootLog , 'root path should remain positional argument' ) ;
168+ t . equal ( res . statusCode , 200 , 'proxied request should succeed' ) ;
169+ } ) ;
170+ } ) ;
171+ } ) ;
172+ } ) ;
173+ } ) ;
174+
118175function doHeaderOptionTest ( t , argv , obj ) {
119176 const options = [ '.' , '--port' , defaultPort ] . concat ( argv ) ;
120177 const server = startServer ( options ) ;
0 commit comments