@@ -202,11 +202,11 @@ describe('Request template',() => {
202202 var result = new Template ( requestTemplate ) . expand ( {
203203 request : {
204204 params : {
205- uri : 'en.wikipedia.org/path1/test1/test2/test3'
205+ uri : 'https:// en.wikipedia.org/path1/test1/test2/test3'
206206 }
207207 }
208208 } ) ;
209- assert . deepEqual ( result . uri . toString ( ) , 'en.wikipedia.org/path1/test1/test2/test3' ) ;
209+ assert . deepEqual ( result . uri . toString ( ) , 'https:// en.wikipedia.org/path1/test1/test2/test3' ) ;
210210 } ) ;
211211
212212 it ( 'absolute templates in URI' , ( ) => {
@@ -220,7 +220,7 @@ describe('Request template',() => {
220220 } ,
221221 body : 'a'
222222 } ;
223- assert . deepEqual ( template . expand ( { request :request } ) . uri , '/path/test/a' ) ;
223+ assert . deepEqual ( template . expand ( { request :request } ) . uri . toString ( ) , '/path/test/a' ) ;
224224 } ) ;
225225
226226 it ( 'allows req.method to be templated' , ( ) => {
@@ -251,7 +251,7 @@ describe('Request template',() => {
251251 }
252252 }
253253 } ) ;
254- assert . deepEqual ( evaluatedNoDefaults . uri , '/path/value' ) ;
254+ assert . deepEqual ( evaluatedNoDefaults . uri . toString ( ) , '/path/value' ) ;
255255 assert . deepEqual ( evaluatedNoDefaults . body . complete , 'value' ) ;
256256 assert . deepEqual ( evaluatedNoDefaults . body . partial , '/test/value' ) ;
257257 assert . deepEqual ( evaluatedNoDefaults . body . withObject , 'value' ) ;
@@ -261,7 +261,7 @@ describe('Request template',() => {
261261 body : { }
262262 }
263263 } ) ;
264- assert . deepEqual ( evaluatedDefaults . uri , '/path/foo%2Fbar' ) ;
264+ assert . deepEqual ( evaluatedDefaults . uri . toString ( ) , '/path/foo%2Fbar' ) ;
265265 assert . deepEqual ( evaluatedDefaults . body . complete , 'default' ) ;
266266 assert . deepEqual ( evaluatedDefaults . body . partial , '/test/default' ) ;
267267 assert . deepEqual ( evaluatedDefaults . body . withObject , { temp : 'default' } ) ;
@@ -452,12 +452,10 @@ describe('Request template',() => {
452452 }
453453 } ;
454454 var result = template . expand ( { request : request , options : { host : '/a/host' } } ) ;
455- assert . deepEqual ( result , {
456- uri : '/a/host/a%2Ffoo/' ,
457- headers : {
455+ assert . deepEqual ( result . uri . toString ( ) , '/a/host/a%2Ffoo/' ) ;
456+ assert . deepEqual ( result . headers , {
458457 bar : 'a/bar' ,
459458 baz : 'a%2Fbaz' ,
460- }
461459 } ) ;
462460 } ) ;
463461
@@ -481,12 +479,10 @@ describe('Request template',() => {
481479 }
482480 } ;
483481 var result = template . expand ( { request : request , options : { host : '/a/host' } } ) ;
484- assert . deepEqual ( result , {
485- uri : '/a/host/a%2Ffoo/' ,
486- headers : {
487- bar : 'a/bar' ,
488- baz : 'a/baz' ,
489- }
482+ assert . deepEqual ( result . uri . toString ( ) , '/a/host/a%2Ffoo/' ) ;
483+ assert . deepEqual ( result . headers , {
484+ bar : 'a/bar' ,
485+ baz : 'a/baz' ,
490486 } ) ;
491487 } ) ;
492488
@@ -510,42 +506,10 @@ describe('Request template',() => {
510506 }
511507 } ;
512508 var result = template . expand ( { request : request , options : { host : '/a/host' } } ) ;
513- assert . deepEqual ( result , {
514- uri : '/a/host/a%2Ffoo/' ,
515- headers : {
516- bar : 'a/bar' ,
517- baz : 'a/baz' ,
518- }
519- } ) ;
520- } ) ;
521-
522- it ( 'should support newlines in expressions' , ( ) => {
523- var template = new Template ( {
524- uri : '{{options.host}}/{foo}/' ,
525- headers : '{{filter(\nrequest.headers, \n["bar","baz"])\n }}' ,
526- } ) ;
527- var request = {
528- headers : {
529- bar : 'a/bar' ,
530- baz : 'a/baz' ,
531- boo : 'a/boo' ,
532- } ,
533- uri : 'test.com' ,
534- body : {
535- field : 'method'
536- } ,
537- params : {
538- foo : 'a/foo' ,
539- }
540- } ;
541- var result = template . expand ( { request : request , options : { host : '/a/host' } } ) ;
542- assert . deepEqual ( result , {
543- uri : '/a/host/a%2Ffoo/' ,
544- headers : {
545- bar : 'a/bar' ,
546- // FIXME: This will change in the future!
547- baz : 'a/baz' ,
548- }
509+ assert . deepEqual ( result . uri . toString ( ) , '/a/host/a%2Ffoo/' ) ;
510+ assert . deepEqual ( result . headers , {
511+ bar : 'a/bar' ,
512+ baz : 'a/baz' ,
549513 } ) ;
550514 } ) ;
551515
@@ -564,10 +528,8 @@ describe('Request template',() => {
564528 }
565529 }
566530 } ) ;
567- assert . deepEqual ( result , {
568- uri : 'http://test.com/0' ,
569- headers : 'test_0'
570- } ) ;
531+ assert . deepEqual ( result . uri . toString ( ) , 'http://test.com/0' ) ;
532+ assert . deepEqual ( result . headers , 'test_0' ) ;
571533 } ) ;
572534
573535 it ( 'should support date formats' , ( ) => {
@@ -604,4 +566,28 @@ describe('Request template',() => {
604566 }
605567 } ) ;
606568 } ) ;
569+ it ( 'should return URI object for non-templated URIs' , ( ) => {
570+ const TEST_URI = '/test/wiki/uri' ;
571+ const template = new Template ( {
572+ uri : TEST_URI
573+ } ) ;
574+ const result = template . expand ( { request : { } } ) ;
575+ assert . deepEqual ( result . uri . constructor . name , 'URI' ) ;
576+ assert . deepEqual ( result . uri . toString ( ) , TEST_URI ) ;
577+ } ) ;
578+ it ( 'should return URI object for complex templated URIs' , ( ) => {
579+ const template = new Template ( {
580+ uri : '/test/{param1}.{param2}'
581+ } ) ;
582+ const result = template . expand ( {
583+ request : {
584+ params : {
585+ param1 : '1' ,
586+ param2 : '2'
587+ }
588+ }
589+ } ) ;
590+ assert . deepEqual ( result . uri . constructor . name , 'URI' ) ;
591+ assert . deepEqual ( result . uri . toString ( ) , '/test/1.2' ) ;
592+ } ) ;
607593} ) ;
0 commit comments