@@ -1834,6 +1834,93 @@ describe('Client posting complex body', () => {
18341834 } ) ;
18351835 } , baseUrl ) ;
18361836 } ) ;
1837+
1838+
1839+ it ( 'should resolve promise on async invoke postProcess' , function ( done ) {
1840+ soap . createClient ( __dirname + '/wsdl/complex/registration-common.wsdl' , function ( err , client ) {
1841+ if ( err ) {
1842+ return void done ( err ) ;
1843+ }
1844+ assert . ok ( client ) ;
1845+
1846+ var requestBody = {
1847+ id : 'ID00000000000000000000000000000000' ,
1848+ lastName : 'Doe' ,
1849+ firstName : 'John' ,
1850+ dateOfBirth : '1970-01-01' ,
1851+ correspondenceLanguage : 'ENG' ,
1852+ emailAddress :
'[email protected] ' , 1853+ lookupPermission : 'ALLOWED' ,
1854+ companyAddress : {
1855+ address : {
1856+ streetName : 'Street' ,
1857+ postalCode : 'Code' ,
1858+ city : 'City' ,
1859+ countryCode : 'US'
1860+ } ,
1861+ companyName : 'ACME'
1862+ }
1863+ }
1864+
1865+ client . registerUser ( requestBody , {
1866+ postProcess : async ( xml ) => {
1867+ const testString = await new Promise ( resolve => setTimeout ( ( ) => resolve ( "Jane" ) , 50 ) ) ;
1868+
1869+ xml = xml . replace ( "John" , testString )
1870+ return xml ;
1871+ }
1872+ } , function ( err , result ) {
1873+ assert . ok ( client . lastRequest ) ;
1874+ const expectedBody = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://test-soap.com/api/registration" xmlns:registrationMessages="http://test-soap.com/api/registration/messages" xmlns:commonMessages="http://test-soap.com/api/common/messages"><soap:Body><registrationMessages:registerUserRequest xmlns:registrationMessages="http://test-soap.com/api/registration/messages" xmlns="http://test-soap.com/api/registration/messages"><registrationMessages:id>ID00000000000000000000000000000000</registrationMessages:id><registrationMessages:lastName>Doe</registrationMessages:lastName><registrationMessages:firstName>Jane</registrationMessages:firstName><registrationMessages:dateOfBirth>1970-01-01</registrationMessages:dateOfBirth><registrationMessages:correspondenceLanguage>ENG</registrationMessages:correspondenceLanguage><registrationMessages:emailAddress>[email protected] </registrationMessages:emailAddress><registrationMessages:lookupPermission>ALLOWED</registrationMessages:lookupPermission><registrationMessages:companyAddress><ct:address xmlns:ct="http://test-soap.com/api/common/types"><ct:streetName>Street</ct:streetName><ct:postalCode>Code</ct:postalCode><ct:city>City</ct:city><ct:countryCode>US</ct:countryCode></ct:address><ct:companyName xmlns:ct="http://test-soap.com/api/common/types">ACME</ct:companyName></registrationMessages:companyAddress></registrationMessages:registerUserRequest></soap:Body></soap:Envelope>' 1875+ assert . strictEqual ( client . lastRequest , expectedBody ) ;
1876+
1877+ done ( ) ;
1878+ } ) ;
1879+ } , baseUrl ) ;
1880+ } )
1881+
1882+ it ( 'should resolve sync invoke postProcess' , function ( done ) {
1883+ soap . createClient ( __dirname + '/wsdl/complex/registration-common.wsdl' , function ( err , client ) {
1884+ if ( err ) {
1885+ return void done ( err ) ;
1886+ }
1887+ assert . ok ( client ) ;
1888+
1889+ var requestBody = {
1890+ id : 'ID00000000000000000000000000000000' ,
1891+ lastName : 'Doe' ,
1892+ firstName : 'John' ,
1893+ dateOfBirth : '1970-01-01' ,
1894+ correspondenceLanguage : 'ENG' ,
1895+ emailAddress :
'[email protected] ' , 1896+ lookupPermission : 'ALLOWED' ,
1897+ companyAddress : {
1898+ address : {
1899+ streetName : 'Street' ,
1900+ postalCode : 'Code' ,
1901+ city : 'City' ,
1902+ countryCode : 'US'
1903+ } ,
1904+ companyName : 'ACME'
1905+ }
1906+ }
1907+
1908+ client . registerUser ( requestBody , {
1909+ postProcess : ( xml ) => {
1910+ const testString = "Jane"
1911+
1912+ xml = xml . replace ( "John" , testString )
1913+ return xml ;
1914+ }
1915+ } , function ( err , result ) {
1916+ assert . ok ( client . lastRequest ) ;
1917+ const expectedBody = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://test-soap.com/api/registration" xmlns:registrationMessages="http://test-soap.com/api/registration/messages" xmlns:commonMessages="http://test-soap.com/api/common/messages"><soap:Body><registrationMessages:registerUserRequest xmlns:registrationMessages="http://test-soap.com/api/registration/messages" xmlns="http://test-soap.com/api/registration/messages"><registrationMessages:id>ID00000000000000000000000000000000</registrationMessages:id><registrationMessages:lastName>Doe</registrationMessages:lastName><registrationMessages:firstName>Jane</registrationMessages:firstName><registrationMessages:dateOfBirth>1970-01-01</registrationMessages:dateOfBirth><registrationMessages:correspondenceLanguage>ENG</registrationMessages:correspondenceLanguage><registrationMessages:emailAddress>[email protected] </registrationMessages:emailAddress><registrationMessages:lookupPermission>ALLOWED</registrationMessages:lookupPermission><registrationMessages:companyAddress><ct:address xmlns:ct="http://test-soap.com/api/common/types"><ct:streetName>Street</ct:streetName><ct:postalCode>Code</ct:postalCode><ct:city>City</ct:city><ct:countryCode>US</ct:countryCode></ct:address><ct:companyName xmlns:ct="http://test-soap.com/api/common/types">ACME</ct:companyName></registrationMessages:companyAddress></registrationMessages:registerUserRequest></soap:Body></soap:Envelope>' 1918+ assert . strictEqual ( client . lastRequest , expectedBody ) ;
1919+
1920+ done ( ) ;
1921+ } ) ;
1922+ } , baseUrl ) ;
1923+ } )
18371924} ) ;
18381925
18391926describe ( 'Connection header' , ( ) => {
0 commit comments