@@ -655,18 +655,18 @@ describe('Router', function () {
655
655
it ( 'should work following a partial capture group' , function ( done ) {
656
656
var cb = after ( 2 , done )
657
657
var router = new Router ( )
658
- var route = router . route ( '/user(s)? /:user/:op' )
658
+ var route = router . route ( '/user(s?) /:user/:op' )
659
659
var server = createServer ( router )
660
660
661
661
route . all ( sendParams )
662
662
663
663
request ( server )
664
664
. get ( '/user/tj/edit' )
665
- . expect ( 200 , { 'user' : 'tj' , 'op' : 'edit' } , cb )
665
+ . expect ( 200 , { 0 : '' , user : 'tj' , op : 'edit' } , cb )
666
666
667
667
request ( server )
668
668
. get ( '/users/tj/edit' )
669
- . expect ( 200 , { '0' : 's' , ' user' : 'tj' , 'op' : 'edit' } , cb )
669
+ . expect ( 200 , { 0 : 's' , user : 'tj' , op : 'edit' } , cb )
670
670
} )
671
671
672
672
it ( 'should work inside literal paranthesis' , function ( done ) {
@@ -699,132 +699,127 @@ describe('Router', function () {
699
699
} )
700
700
} )
701
701
702
- describe ( 'using "*"' , function ( ) {
703
- it ( 'should capture everything' , function ( done ) {
702
+ describe ( 'using ":name?"' , function ( ) {
703
+ it ( 'should name an optional parameter' , function ( done ) {
704
+ var cb = after ( 2 , done )
704
705
var router = new Router ( )
705
- var route = router . route ( '* ' )
706
+ var route = router . route ( '/:foo? ' )
706
707
var server = createServer ( router )
707
708
708
709
route . all ( sendParams )
709
710
710
711
request ( server )
711
- . get ( '/foo/bar/baz' )
712
- . expect ( 200 , { '0' : '/foo/bar/baz' } , done )
713
- } )
714
-
715
- it ( 'should decode the capture' , function ( done ) {
716
- var router = new Router ( )
717
- var route = router . route ( '*' )
718
- var server = createServer ( router )
719
-
720
- route . all ( sendParams )
712
+ . get ( '/bar' )
713
+ . expect ( 200 , { foo : 'bar' } , cb )
721
714
722
715
request ( server )
723
- . get ( '/foo/%20/baz ' )
724
- . expect ( 200 , { '0' : '/foo/ /baz' } , done )
716
+ . get ( '/' )
717
+ . expect ( 200 , { } , cb )
725
718
} )
726
719
727
- it ( 'should capture everything with pre- and post-fixes' , function ( done ) {
720
+ it ( 'should work in any segment' , function ( done ) {
721
+ var cb = after ( 2 , done )
728
722
var router = new Router ( )
729
- var route = router . route ( '/foo/*/bar ' )
723
+ var route = router . route ( '/user/: foo?/delete ' )
730
724
var server = createServer ( router )
731
725
732
726
route . all ( sendParams )
733
727
734
728
request ( server )
735
- . get ( '/foo/1/2/3/bar' )
736
- . expect ( 200 , { '0' : '1/2/3' } , done )
729
+ . get ( '/user/bar/delete' )
730
+ . expect ( 200 , { foo : 'bar' } , cb )
731
+
732
+ request ( server )
733
+ . get ( '/user/delete' )
734
+ . expect ( 200 , { } , cb )
737
735
} )
736
+ } )
738
737
739
- it ( 'should capture greedly' , function ( done ) {
738
+ describe ( 'using ":name*"' , function ( ) {
739
+ it ( 'should name a zero-or-more repeated parameter' , function ( done ) {
740
+ var cb = after ( 3 , done )
740
741
var router = new Router ( )
741
- var route = router . route ( '/foo/*/bar ' )
742
+ var route = router . route ( '/: foo* ' )
742
743
var server = createServer ( router )
743
744
744
745
route . all ( sendParams )
745
746
746
747
request ( server )
747
- . get ( '/foo/bar/bar/bar' )
748
- . expect ( 200 , { '0' : 'bar/bar' } , done )
749
- } )
750
-
751
- it ( 'should be an optional capture' , function ( done ) {
752
- var router = new Router ( )
753
- var route = router . route ( '/foo*' )
754
- var server = createServer ( router )
748
+ . get ( '/' )
749
+ . expect ( 200 , { } , cb )
755
750
756
- route . all ( sendParams )
751
+ request ( server )
752
+ . get ( '/bar' )
753
+ . expect ( 200 , { foo : 'bar' } , cb )
757
754
758
755
request ( server )
759
- . get ( '/foo ' )
760
- . expect ( 200 , { '0' : '' } , done )
756
+ . get ( '/fizz/buzz ' )
757
+ . expect ( 200 , { foo : 'fizz/buzz' } , cb )
761
758
} )
762
759
763
- it ( 'should require preceeding / ' , function ( done ) {
764
- var cb = after ( 2 , done )
760
+ it ( 'should work in any segment ' , function ( done ) {
761
+ var cb = after ( 3 , done )
765
762
var router = new Router ( )
766
- var route = router . route ( '/foo/* ' )
763
+ var route = router . route ( '/user/:foo*/delete ' )
767
764
var server = createServer ( router )
768
765
769
766
route . all ( sendParams )
770
767
771
768
request ( server )
772
- . get ( '/foo' )
773
- . expect ( 404 , cb )
769
+ . get ( '/user/delete' )
770
+ . expect ( 200 , { } , cb )
771
+
772
+ request ( server )
773
+ . get ( '/user/bar/delete' )
774
+ . expect ( 200 , { foo : 'bar' } , cb )
774
775
775
776
request ( server )
776
- . get ( '/foo/ ' )
777
- . expect ( 200 , cb )
777
+ . get ( '/user/fizz/buzz/delete ' )
778
+ . expect ( 200 , { foo : 'fizz/buzz' } , cb )
778
779
} )
780
+ } )
779
781
780
- it ( 'should work in a named parameter' , function ( done ) {
781
- var cb = after ( 2 , done )
782
+ describe ( 'using ":name+"' , function ( ) {
783
+ it ( 'should name a one-or-more repeated parameter' , function ( done ) {
784
+ var cb = after ( 3 , done )
782
785
var router = new Router ( )
783
- var route = router . route ( '/:foo(*) ' )
786
+ var route = router . route ( '/:foo+ ' )
784
787
var server = createServer ( router )
785
788
786
789
route . all ( sendParams )
787
790
788
791
request ( server )
789
- . get ( '/bar ' )
790
- . expect ( 200 , { '0' : 'bar' , 'foo' : 'bar' } , cb )
792
+ . get ( '/' )
793
+ . expect ( 404 , cb )
791
794
792
795
request ( server )
793
- . get ( '/fizz/buzz' )
794
- . expect ( 200 , { '0' : 'fizz/buzz' , 'foo' : 'fizz/buzz' } , cb )
795
- } )
796
-
797
- it ( 'should work before a named parameter' , function ( done ) {
798
- var router = new Router ( )
799
- var route = router . route ( '/*/user/:id' )
800
- var server = createServer ( router )
801
-
802
- route . all ( sendParams )
796
+ . get ( '/bar' )
797
+ . expect ( 200 , { foo : 'bar' } , cb )
803
798
804
799
request ( server )
805
- . get ( '/poke/user/42 ' )
806
- . expect ( 200 , { '0' : 'poke' , 'id' : '42' } , done )
800
+ . get ( '/fizz/buzz ' )
801
+ . expect ( 200 , { foo : 'fizz/buzz' } , cb )
807
802
} )
808
803
809
- it ( 'should work within arrays ' , function ( done ) {
804
+ it ( 'should work in any segment ' , function ( done ) {
810
805
var cb = after ( 3 , done )
811
806
var router = new Router ( )
812
- var route = router . route ( [ '/user/:id' , '/ foo/*' , '/:action' ] )
807
+ var route = router . route ( '/user/:foo+/delete' )
813
808
var server = createServer ( router )
814
809
815
810
route . all ( sendParams )
816
811
817
812
request ( server )
818
- . get ( '/user/42 ' )
819
- . expect ( 200 , { 'id' : '42' } , cb )
813
+ . get ( '/user/delete ' )
814
+ . expect ( 404 , cb )
820
815
821
816
request ( server )
822
- . get ( '/foo /bar' )
823
- . expect ( 200 , { '0' : 'bar' } , cb )
817
+ . get ( '/user /bar/delete ' )
818
+ . expect ( 200 , { foo : 'bar' } , cb )
824
819
825
820
request ( server )
826
- . get ( '/poke ' )
827
- . expect ( 200 , { 'action' : 'poke' } , cb )
821
+ . get ( '/user/fizz/buzz/delete ' )
822
+ . expect ( 200 , { foo : 'fizz/buzz' } , cb )
828
823
} )
829
824
} )
830
825
} )
0 commit comments