@@ -498,3 +498,62 @@ it('should return a valid error if the server stops responding': function(done)
498498*/
499499
500500} ) ;
501+
502+ describe ( 'SOAP Server Options' , function ( ) {
503+ before ( function ( done ) {
504+ fs . readFile ( __dirname + '/wsdl/strict/stockquote.wsdl' , 'utf8' , function ( err , data ) {
505+ assert . ok ( ! err ) ;
506+ test . wsdl = data ;
507+ done ( ) ;
508+ } ) ;
509+ } ) ;
510+
511+ var startServer = function ( optionsOverride ) {
512+ test . server = http . createServer ( function ( req , res ) {
513+ res . statusCode = 404 ;
514+ res . end ( ) ;
515+ } ) ;
516+
517+ var options = {
518+ path : '/stockquote' ,
519+ services : test . service ,
520+ xml : test . wsdl ,
521+ ...optionsOverride
522+ } ;
523+
524+ test . server . listen ( 15099 , null , null , function ( ) {
525+ test . soapServer = soap . listen ( test . server , options ) ;
526+ test . baseUrl =
527+ 'http://' + test . server . address ( ) . address + ":" + test . server . address ( ) . port ;
528+
529+ //windows return 0.0.0.0 as address and that is not
530+ //valid to use in a request
531+ if ( test . server . address ( ) . address === '0.0.0.0' || test . server . address ( ) . address === '::' ) {
532+ test . baseUrl =
533+ 'http://127.0.0.1:' + test . server . address ( ) . port ;
534+ }
535+ } ) ;
536+ } ;
537+
538+ afterEach ( function ( done ) {
539+ test . server . close ( function ( ) {
540+ test . server = null ;
541+ delete test . soapServer ;
542+ test . soapServer = null ;
543+ done ( ) ;
544+ } ) ;
545+ } ) ;
546+
547+ it ( 'should return response without newlines and white spaces' , function ( done ) {
548+ startServer ( { prettyResponse : false } ) ;
549+ soap . createClient ( test . baseUrl + '/stockquote?wsdl' , function ( err , client ) {
550+ assert . ok ( ! err ) ;
551+ var expectedBody = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header/><soap:Body><ns1:TradePrice xmlns:ns1="http://example.com/stockquote.xsd"><price>19.56</price></ns1:TradePrice></soap:Body></soap:Envelope>' ;
552+ client . GetLastTradePrice ( { TradePriceRequest : { tickerSymbol : 'AAPL' } } , function ( err , res , body ) {
553+ assert . ok ( ! err ) ;
554+ assert . strictEqual ( body . toString ( ) , expectedBody ) ;
555+ done ( ) ;
556+ } ) ;
557+ } ) ;
558+ } ) ;
559+ } ) ;
0 commit comments