@@ -664,6 +664,58 @@ test('setting absolute URL in hook does not concatenate with prefixUrl', withSer
664664 t . is ( body , 'changed' ) ;
665665} ) ;
666666
667+ test ( 'allows colon in path segment with prefixUrl (CouchDB user URLs)' , withServer , async ( t , server , serverGot ) => {
668+ server . get ( '/_users/org.couchdb.user:[email protected] ' , ( _request , response ) => { 669+ response . end ( 'user document' ) ;
670+ } ) ;
671+
672+ const client = serverGot . extend ( {
673+ prefixUrl : `${ server . url } /_users/` ,
674+ } ) ;
675+
676+ const { body
} = await client . get ( 'org.couchdb.user:[email protected] ' ) ; 677+ t . is ( body , 'user document' ) ;
678+ } ) ;
679+
680+ test ( 'allows multiple colons in path with prefixUrl' , withServer , async ( t , server , serverGot ) => {
681+ server . get ( '/api/ns:type:id' , ( _request , response ) => {
682+ response . end ( 'namespaced' ) ;
683+ } ) ;
684+
685+ const client = serverGot . extend ( {
686+ prefixUrl : `${ server . url } /api/` ,
687+ } ) ;
688+
689+ const { body} = await client . get ( 'ns:type:id' ) ;
690+ t . is ( body , 'namespaced' ) ;
691+ } ) ;
692+
693+ test ( 'allows mailto-like patterns in path with prefixUrl' , withServer , async ( t , server , serverGot ) => {
694+ server . get ( '/users/mailto:[email protected] ' , ( _request , response ) => { 695+ response . end ( 'email user' ) ;
696+ } ) ;
697+
698+ const client = serverGot . extend ( {
699+ prefixUrl : `${ server . url } /users/` ,
700+ } ) ;
701+
702+ const { body
} = await client . get ( 'mailto:[email protected] ' ) ; 703+ t . is ( body , 'email user' ) ;
704+ } ) ;
705+
706+ test ( 'allows URN-like patterns in path with prefixUrl' , withServer , async ( t , server , serverGot ) => {
707+ server . get ( '/resources/urn:isbn:123' , ( _request , response ) => {
708+ response . end ( 'book' ) ;
709+ } ) ;
710+
711+ const client = serverGot . extend ( {
712+ prefixUrl : `${ server . url } /resources/` ,
713+ } ) ;
714+
715+ const { body} = await client . get ( 'urn:isbn:123' ) ;
716+ t . is ( body , 'book' ) ;
717+ } ) ;
718+
667719test ( 'afterResponse is called with response' , withServer , async ( t , server , got ) => {
668720 server . get ( '/' , echoHeaders ) ;
669721
0 commit comments