Skip to content

Fix sequence ordering - #1519

Draft
smokhov wants to merge 7 commits into
vpulim:masterfrom
smokhov:rjordakiev-feat/sequence-ordering
Draft

Fix sequence ordering#1519
smokhov wants to merge 7 commits into
vpulim:masterfrom
smokhov:rjordakiev-feat/sequence-ordering

Conversation

@smokhov

@smokhov smokhov commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

This PR pulls from @rjordakiev / @pseudogode, reformats, lints the code so far. It requires some work to be completed. This is builds on top of their PR #1348.

I'd like to also incorporate the snippet from @kouak in the issue here #1267 in utils.ts for tests and examples later.

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 72b0901d-188d-4c05-9d83-59abc66db619

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@smokhov

smokhov commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

It seems PR breaks 17 existing tests that mostly have to do with parsing or exact match. Since it actually sorts the sequences, I think many tests can be fixed simply by ordering the expected output per their sequence definition since they were not ordered originally in the first place. Others will require extra digging.

5 newly introduced tests in this PR pass, and 2 are skipped:

  WSDL sequence ordering (sequence / choice / group)
    - respects <sequence> + same-namespace <group ref> order
    ✔ keeps a single <choice> alternative in the correct slot
    ✔ when (invalidly) providing two <choice> alternatives, keeps them adjacent in the slot
    ✔ does NOT reorder members of <all>
    ✔ handles a nested <choice> whose alternative is a <group ref>
    ✔ puts unknown properties (not in schema) at the end
    - respects order when a <group ref> points to ANOTHER namespace

The failing tests are:

17 failing

  1) SOAP Client schema does not change
       should not change the schema:
     Uncaught TypeError: Cannot convert undefined or null to object
      at Function.keys (<anonymous>)
      at WSDL._orderElementKeys (lib/wsdl/index.js:103:2475)
      at WSDL.objectToXML (lib/wsdl/index.js:65:1199)
      at WSDL.objectToXML (lib/wsdl/index.js:77:60)
      at WSDL.objectToXML (lib/wsdl/index.js:77:60)
      at WSDL.objectToXML (lib/wsdl/index.js:69:1266)
      at WSDL.objectToDocumentXML (lib/wsdl/index.js:39:821)
      at Client._invoke (lib/client.js:18:44)
      at Client.RetrieveFareQuoteDateRange (lib/client.js:6:9116)
      at cbCaller (test/client-schema-does-not-change-on-request-test.js:111:21)
      at /home/runner/work/node-soap/node-soap/test/client-schema-does-not-change-on-request-test.js:100:9
      at WSDL.callback (lib/soap.js:5:10271)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:94
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.callback (lib/wsdl/index.js:94:1576)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:94
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.callback (lib/wsdl/index.js:94:1576)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:94
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.processIncludes (lib/wsdl/index.js:9:784)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1088
      at process.processTicksAndRejections (node:internal/process/task_queues:84:11)

  2) SOAP Client
       Method invocation
         shall generate correct payload for recursively-defined types:
     Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/node-soap/node-soap/test/client-test.js)
      at listOnTimeout (node:internal/timers:585:17)
      at process.processTimers (node:internal/timers:521:7)

  3) SOAP Client (with streaming)
       Method invocation
         shall generate correct payload for recursively-defined types:
     Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/node-soap/node-soap/test/client-test.js)
      at listOnTimeout (node:internal/timers:585:17)
      at process.processTimers (node:internal/timers:521:7)

  4) Client posting complex body
       should serialize complex body:
     Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/node-soap/node-soap/test/client-test.js)
      at listOnTimeout (node:internal/timers:585:17)
      at process.processTimers (node:internal/timers:521:7)

  5) Request Response Sampling
       complex extension with array attributes:

      Uncaught AssertionError [ERR_ASSERTION]: '<?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="urn:platform_2013_2.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2013_2.platform.webservices.netsuite.com"><soap:Body><platformMsgs:update xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns="urn:messages_2013_2.platf... == '<?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="urn:platform_2013_2.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2013_2.platform.webservices.netsuite.com"><soap:Body><platformMsgs:update xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns="urn:messages_2013_2.platf...
      + expected - actual

      -<?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="urn:platform_2013_2.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2013_2.platform.webservices.netsuite.com"><soap:Body><platformMsgs:update xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns="urn:messages_2013_2.platform.webservices.netsuite.com"><platformMsgs:record internalId="42" externalId="Alex Dniprovskyy" xsi:type="ns1:Contact" xmlns:ns1="urn:relationships_2013_2.lists.webservices.netsuite.com"><platformCore:nullFieldList xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>officephone</platformCore:name><platformCore:name>mobilephone</platformCore:name></platformCore:nullFieldList><ns1:firstName xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com">Allister</ns1:firstName><ns1:lastName xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com">Sullivan</ns1:lastName><ns1:phone xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com">800-555-2819</ns1:phone><ns1:subscriptionsList xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><ns1:replaceAll>false</ns1:replaceAll><ns1:subscriptions tempId="34"><ns1:subscribed>true</ns1:subscribed><ns1:subscription internalId="2" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>Billing Communication</platformCore:name></ns1:subscription></ns1:subscriptions><ns1:subscriptions><ns1:subscribed>true</ns1:subscribed><ns1:subscription internalId="1" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>Marketing</platformCore:name></ns1:subscription></ns1:subscriptions></ns1:subscriptionsList></platformMsgs:record></platformMsgs:update></soap:Body></soap:Envelope>
      +<?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="urn:platform_2013_2.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2013_2.platform.webservices.netsuite.com"><soap:Body><platformMsgs:update xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns="urn:messages_2013_2.platform.webservices.netsuite.com"><platformMsgs:record internalId="42" externalId="Alex Dniprovskyy" xsi:type="ns1:Contact" xmlns:ns1="urn:relationships_2013_2.lists.webservices.netsuite.com"><ns1:firstName>Allister</ns1:firstName><ns1:lastName>Sullivan</ns1:lastName><platformCore:nullFieldList xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>officephone</platformCore:name><platformCore:name>mobilephone</platformCore:name></platformCore:nullFieldList><ns1:phone xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com">800-555-2819</ns1:phone><ns1:subscriptionsList xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><ns1:replaceAll>false</ns1:replaceAll><ns1:subscriptions tempId="34"><ns1:subscribed>true</ns1:subscribed><ns1:subscription internalId="2" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>Billing Communication</platformCore:name></ns1:subscription></ns1:subscriptions><ns1:subscriptions><ns1:subscribed>true</ns1:subscribed><ns1:subscription internalId="1" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>Marketing</platformCore:name></ns1:subscription></ns1:subscriptions></ns1:subscriptionsList></platformMsgs:record></platformMsgs:update></soap:Body></soap:Envelope>
      
      at IncomingMessage.<anonymous> (test/request-response-samples-test.js:65:14)
      at IncomingMessage.emit (node:events:519:28)
      at endReadableNT (node:internal/streams/readable:1698:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:89:21)

  6) Request Response Sampling
       complex extension with array attributes (promisified):

      Uncaught AssertionError [ERR_ASSERTION]: '<?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="urn:platform_2013_2.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2013_2.platform.webservices.netsuite.com"><soap:Body><platformMsgs:update xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns="urn:messages_2013_2.platf... == '<?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="urn:platform_2013_2.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2013_2.platform.webservices.netsuite.com"><soap:Body><platformMsgs:update xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns="urn:messages_2013_2.platf...
      + expected - actual

      -<?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="urn:platform_2013_2.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2013_2.platform.webservices.netsuite.com"><soap:Body><platformMsgs:update xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns="urn:messages_2013_2.platform.webservices.netsuite.com"><platformMsgs:record internalId="42" externalId="Alex Dniprovskyy" xsi:type="ns1:Contact" xmlns:ns1="urn:relationships_2013_2.lists.webservices.netsuite.com"><platformCore:nullFieldList xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>officephone</platformCore:name><platformCore:name>mobilephone</platformCore:name></platformCore:nullFieldList><ns1:firstName xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com">Allister</ns1:firstName><ns1:lastName xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com">Sullivan</ns1:lastName><ns1:phone xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com">800-555-2819</ns1:phone><ns1:subscriptionsList xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><ns1:replaceAll>false</ns1:replaceAll><ns1:subscriptions tempId="34"><ns1:subscribed>true</ns1:subscribed><ns1:subscription internalId="2" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>Billing Communication</platformCore:name></ns1:subscription></ns1:subscriptions><ns1:subscriptions><ns1:subscribed>true</ns1:subscribed><ns1:subscription internalId="1" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>Marketing</platformCore:name></ns1:subscription></ns1:subscriptions></ns1:subscriptionsList></platformMsgs:record></platformMsgs:update></soap:Body></soap:Envelope>
      +<?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="urn:platform_2013_2.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:platformFaults="urn:faults_2013_2.platform.webservices.netsuite.com"><soap:Body><platformMsgs:update xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns="urn:messages_2013_2.platform.webservices.netsuite.com"><platformMsgs:record internalId="42" externalId="Alex Dniprovskyy" xsi:type="ns1:Contact" xmlns:ns1="urn:relationships_2013_2.lists.webservices.netsuite.com"><ns1:firstName>Allister</ns1:firstName><ns1:lastName>Sullivan</ns1:lastName><platformCore:nullFieldList xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>officephone</platformCore:name><platformCore:name>mobilephone</platformCore:name></platformCore:nullFieldList><ns1:phone xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com">800-555-2819</ns1:phone><ns1:subscriptionsList xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><ns1:replaceAll>false</ns1:replaceAll><ns1:subscriptions tempId="34"><ns1:subscribed>true</ns1:subscribed><ns1:subscription internalId="2" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>Billing Communication</platformCore:name></ns1:subscription></ns1:subscriptions><ns1:subscriptions><ns1:subscribed>true</ns1:subscribed><ns1:subscription internalId="1" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com"><platformCore:name>Marketing</platformCore:name></ns1:subscription></ns1:subscriptions></ns1:subscriptionsList></platformMsgs:record></platformMsgs:update></soap:Body></soap:Envelope>
      
      at IncomingMessage.<anonymous> (test/request-response-samples-test.js:65:14)
      at IncomingMessage.emit (node:events:519:28)
      at endReadableNT (node:internal/streams/readable:1698:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:89:21)

  7) Request Response Sampling
       correct ns context:

      Uncaught AssertionError [ERR_ASSERTION]: '<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www..../ == '<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www..../
      + expected - actual

      -<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID><c:UniqueID source="TESTSOURCE2" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID><c:UniqueID source="TESTSOURCE3" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID></n:IDs><n:Phones><n:NamePhone primary="true"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>123</c:PhoneNumber></c:PhoneData></n:NamePhone><n:NamePhone primary="false"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>456</c:PhoneNumber></c:PhoneData></n:NamePhone></n:Phones><n:Addresses><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">Another Address</c:AddressLine></n:NameAddress><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">My Address</c:AddressLine></n:NameAddress></n:Addresses></n:Profile></n:UpdateProfileRequest></soap:Body></soap:Envelope>
      +<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID><c:UniqueID source="TESTSOURCE2" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID><c:UniqueID source="TESTSOURCE3" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID></n:IDs><n:Addresses><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">Another Address</c:AddressLine></n:NameAddress><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">My Address</c:AddressLine></n:NameAddress></n:Addresses><n:Phones><n:NamePhone primary="true"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>123</c:PhoneNumber></c:PhoneData></n:NamePhone><n:NamePhone primary="false"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>456</c:PhoneNumber></c:PhoneData></n:NamePhone></n:Phones></n:Profile></n:UpdateProfileRequest></soap:Body></soap:Envelope>
      
      at IncomingMessage.<anonymous> (test/request-response-samples-test.js:65:14)
      at IncomingMessage.emit (node:events:519:28)
      at endReadableNT (node:internal/streams/readable:1698:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:89:21)

  8) Request Response Sampling
       correct ns context (promisified):

      Uncaught AssertionError [ERR_ASSERTION]: '<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www..../ == '<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www..../
      + expected - actual

      -<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID><c:UniqueID source="TESTSOURCE2" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID><c:UniqueID source="TESTSOURCE3" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID></n:IDs><n:Phones><n:NamePhone primary="true"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>123</c:PhoneNumber></c:PhoneData></n:NamePhone><n:NamePhone primary="false"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>456</c:PhoneNumber></c:PhoneData></n:NamePhone></n:Phones><n:Addresses><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">Another Address</c:AddressLine></n:NameAddress><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">My Address</c:AddressLine></n:NameAddress></n:Addresses></n:Profile></n:UpdateProfileRequest></soap:Body></soap:Envelope>
      +<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID><c:UniqueID source="TESTSOURCE2" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID><c:UniqueID source="TESTSOURCE3" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID></n:IDs><n:Addresses><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">Another Address</c:AddressLine></n:NameAddress><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">My Address</c:AddressLine></n:NameAddress></n:Addresses><n:Phones><n:NamePhone primary="true"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>123</c:PhoneNumber></c:PhoneData></n:NamePhone><n:NamePhone primary="false"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>456</c:PhoneNumber></c:PhoneData></n:NamePhone></n:Phones></n:Profile></n:UpdateProfileRequest></soap:Body></soap:Envelope>
      
      at IncomingMessage.<anonymous> (test/request-response-samples-test.js:65:14)
      at IncomingMessage.emit (node:events:519:28)
      at endReadableNT (node:internal/streams/readable:1698:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:89:21)

  9) Request Response Sampling
       correct namespaces for elements with base:

      Uncaught AssertionError [ERR_ASSERTION]: '<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www..../ == '<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www..../
      + expected - actual

      -<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID></n:IDs><n:Phones><n:NamePhone primary="true"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>123</c:PhoneNumber></c:PhoneData></n:NamePhone><n:NamePhone primary="false"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>456</c:PhoneNumber></c:PhoneData></n:NamePhone></n:Phones><n:Addresses><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">Another Address</c:AddressLine></n:NameAddress><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">My Address</c:AddressLine></n:NameAddress></n:Addresses></n:Profile></n:UpdateProfileRequest></soap:Body></soap:Envelope>
      +<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID></n:IDs><n:Addresses><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">Another Address</c:AddressLine></n:NameAddress><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">My Address</c:AddressLine></n:NameAddress></n:Addresses><n:Phones><n:NamePhone primary="true"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>123</c:PhoneNumber></c:PhoneData></n:NamePhone><n:NamePhone primary="false"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>456</c:PhoneNumber></c:PhoneData></n:NamePhone></n:Phones></n:Profile></n:UpdateProfileRequest></soap:Body></soap:Envelope>
      
      at IncomingMessage.<anonymous> (test/request-response-samples-test.js:65:14)
      at IncomingMessage.emit (node:events:519:28)
      at endReadableNT (node:internal/streams/readable:1698:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:89:21)

  10) Request Response Sampling
       correct namespaces for elements with base (promisified):

      Uncaught AssertionError [ERR_ASSERTION]: '<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www..../ == '<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www..../
      + expected - actual

      -<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID></n:IDs><n:Phones><n:NamePhone primary="true"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>123</c:PhoneNumber></c:PhoneData></n:NamePhone><n:NamePhone primary="false"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>456</c:PhoneNumber></c:PhoneData></n:NamePhone></n:Phones><n:Addresses><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">Another Address</c:AddressLine></n:NameAddress><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">My Address</c:AddressLine></n:NameAddress></n:Addresses></n:Profile></n:UpdateProfileRequest></soap:Body></soap:Envelope>
      +<?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://www.bigdatacollect.or/" xmlns:c="http://www.bigdatacollect.or/Common/Types" xmlns:n="http://www.bigdatacollect.or/Name/Types"><soap:Body><n:UpdateProfileRequest xmlns:n="http://www.bigdatacollect.or/Name/Types" xmlns="http://www.bigdatacollect.or/Name/Types"><n:Profile><n:IDs><c:UniqueID source="TESTSOURCE" xmlns:c="http://www.bigdatacollect.or/Common/Types">100</c:UniqueID></n:IDs><n:Addresses><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">Another Address</c:AddressLine></n:NameAddress><n:NameAddress><c:AddressLine xmlns:c="http://www.bigdatacollect.or/Common/Types">My Address</c:AddressLine></n:NameAddress></n:Addresses><n:Phones><n:NamePhone primary="true"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>123</c:PhoneNumber></c:PhoneData></n:NamePhone><n:NamePhone primary="false"><c:PhoneData xmlns:c="http://www.bigdatacollect.or/Common/Types"><c:PhoneNumber>456</c:PhoneNumber></c:PhoneData></n:NamePhone></n:Phones></n:Profile></n:UpdateProfileRequest></soap:Body></soap:Envelope>
      
      at IncomingMessage.<anonymous> (test/request-response-samples-test.js:65:14)
      at IncomingMessage.emit (node:events:519:28)
      at endReadableNT (node:internal/streams/readable:1698:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:89:21)

  11) Request Response Sampling
       should handle child namespaces:
     Uncaught TypeError: Cannot read properties of undefined (reading 'RetrieveFareQuoteDateRange')
      at /home/runner/work/node-soap/node-soap/test/request-response-samples-test.js:197:26
      at /home/runner/work/node-soap/node-soap/lib/soap.js:5:10271
      at WSDL.callback (lib/soap.js:5:8257)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1238
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at WSDL.callback (lib/wsdl/index.js:94:908)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1238
      at WSDL.callback (lib/wsdl/index.js:94:908)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:153
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.processIncludes (lib/wsdl/index.js:9:784)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1088
      at process.processTicksAndRejections (node:internal/process/task_queues:84:11)

  12) Request Response Sampling
       should parse nil:
     Uncaught TypeError: Cannot read properties of undefined (reading 'Dummy')
      at /home/runner/work/node-soap/node-soap/test/request-response-samples-test.js:197:26
      at /home/runner/work/node-soap/node-soap/lib/soap.js:5:10271
      at WSDL.callback (lib/soap.js:5:8257)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1238
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at WSDL.callback (lib/wsdl/index.js:94:908)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:153
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.<anonymous> (lib/wsdl/index.js:94:1576)
      at open_wsdl_recursive (lib/wsdl/index.js:103:5558)
      at WSDL._processNextInclude (lib/wsdl/index.js:94:738)
      at WSDL.processIncludes (lib/wsdl/index.js:9:784)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1088
      at process.processTicksAndRejections (node:internal/process/task_queues:84:11)

  13) Request Response Sampling
       should escape xml:
     Uncaught TypeError: Cannot read properties of undefined (reading 'Dummy')
      at /home/runner/work/node-soap/node-soap/test/request-response-samples-test.js:197:26
      at /home/runner/work/node-soap/node-soap/lib/soap.js:5:10271
      at WSDL.callback (lib/soap.js:5:8257)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1238
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at WSDL.callback (lib/wsdl/index.js:94:908)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:153
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.<anonymous> (lib/wsdl/index.js:94:1576)
      at open_wsdl_recursive (lib/wsdl/index.js:103:5558)
      at WSDL._processNextInclude (lib/wsdl/index.js:94:738)
      at WSDL.processIncludes (lib/wsdl/index.js:9:784)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1088
      at process.processTicksAndRejections (node:internal/process/task_queues:84:11)

  14) /home/runner/work/node-soap/node-soap/test/wsdl-parse-test.js
       should parse complex wsdls:

      AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected

+ '<msg:registerUserRequest xmlns:msg="http://test-soap.com/api/registration/messages" xmlns="http://test-soap.com/api/registration/messages"><msg:id>ID00000000000000000000000000000000</msg:id><msg:lastName>Doe</msg:lastName><msg:firstName>John</msg:firstName><msg:dateOfBirth>1970-01-01</msg:dateOfBirth><msg:correspondenceLanguage>ENG</msg:correspondenceLanguage><msg:emailAddress>jdoe@doe.com</msg:emailAddress><msg:lookupPermission>ALLOWED</msg:lookupPermission><msg:companyAddress><ct:companyName xmlns:ct="http://test-soap.com/api/common/types">ACME</ct:companyName><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></msg:companyAddress></msg:registerUserRequest>'
- '<msg:registerUserRequest xmlns:msg="http://test-soap.com/api/registration/messages" xmlns="http://test-soap.com/api/registration/messages"><msg:id>ID00000000000000000000000000000000</msg:id><msg:lastName>Doe</msg:lastName><msg:firstName>John</msg:firstName><msg:dateOfBirth>1970-01-01</msg:dateOfBirth><msg:correspondenceLanguage>ENG</msg:correspondenceLanguage><msg:emailAddress>jdoe@doe.com</msg:emailAddress><msg:lookupPermission>ALLOWED</msg:lookupPermission><msg: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></msg:companyAddress></msg:registerUserRequest>'

      + expected - actual

      -<msg:registerUserRequest xmlns:msg="http://test-soap.com/api/registration/messages" xmlns="http://test-soap.com/api/registration/messages"><msg:id>ID00000000000000000000000000000000</msg:id><msg:lastName>Doe</msg:lastName><msg:firstName>John</msg:firstName><msg:dateOfBirth>1970-01-01</msg:dateOfBirth><msg:correspondenceLanguage>ENG</msg:correspondenceLanguage><msg:emailAddress>jdoe@doe.com</msg:emailAddress><msg:lookupPermission>ALLOWED</msg:lookupPermission><msg:companyAddress><ct:companyName xmlns:ct="http://test-soap.com/api/common/types">ACME</ct:companyName><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></msg:companyAddress></msg:registerUserRequest>
      +<msg:registerUserRequest xmlns:msg="http://test-soap.com/api/registration/messages" xmlns="http://test-soap.com/api/registration/messages"><msg:id>ID00000000000000000000000000000000</msg:id><msg:lastName>Doe</msg:lastName><msg:firstName>John</msg:firstName><msg:dateOfBirth>1970-01-01</msg:dateOfBirth><msg:correspondenceLanguage>ENG</msg:correspondenceLanguage><msg:emailAddress>jdoe@doe.com</msg:emailAddress><msg:lookupPermission>ALLOWED</msg:lookupPermission><msg: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></msg:companyAddress></msg:registerUserRequest>
      
      at WSDL.callback (test/wsdl-parse-test.js:139:14)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:94
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:94:1660
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.<anonymous> (lib/wsdl/index.js:94:1576)
      at open_wsdl_recursive (lib/wsdl/index.js:103:5558)
      at WSDL._processNextInclude (lib/wsdl/index.js:94:738)
      at WSDL.callback (lib/wsdl/index.js:94:1576)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:94
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.processIncludes (lib/wsdl/index.js:9:784)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1088
      at process.processTicksAndRejections (node:internal/process/task_queues:84:11)

  15) /home/runner/work/node-soap/node-soap/test/wsdl-parse-test.js
       should parse complex wsdls with mixed choice and minOccurs maxOccurs with specified arrayWithChoiceTag tag key:

      AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected

+ '<acme:getDataResponse xmlns:acme="http://test-soap.com/api/mixedsequence" xmlns="http://test-soap.com/api/mixedsequence"><acme:getDataResult><acme:a>0</acme:a><acme:b>10</acme:b><acme:c><acme:value1>test 1</acme:value1><acme:id>1</acme:id></acme:c><acme:d><acme:value2>test 3</acme:value2><acme:id>3</acme:id></acme:d><acme:c><acme:value1>test 2</acme:value1><acme:id>2</acme:id></acme:c></acme:getDataResult></acme:getDataResponse>'
- '<acme:getDataResponse xmlns:acme="http://test-soap.com/api/mixedsequence" xmlns="http://test-soap.com/api/mixedsequence"><acme:getDataResult><acme:a>0</acme:a><acme:b>10</acme:b><acme:c><acme:id>1</acme:id><acme:value1>test 1</acme:value1></acme:c><acme:d><acme:id>3</acme:id><acme:value2>test 3</acme:value2></acme:d><acme:c><acme:id>2</acme:id><acme:value1>test 2</acme:value1></acme:c></acme:getDataResult></acme:getDataResponse>'

      + expected - actual

      -<acme:getDataResponse xmlns:acme="http://test-soap.com/api/mixedsequence" xmlns="http://test-soap.com/api/mixedsequence"><acme:getDataResult><acme:a>0</acme:a><acme:b>10</acme:b><acme:c><acme:value1>test 1</acme:value1><acme:id>1</acme:id></acme:c><acme:d><acme:value2>test 3</acme:value2><acme:id>3</acme:id></acme:d><acme:c><acme:value1>test 2</acme:value1><acme:id>2</acme:id></acme:c></acme:getDataResult></acme:getDataResponse>
      +<acme:getDataResponse xmlns:acme="http://test-soap.com/api/mixedsequence" xmlns="http://test-soap.com/api/mixedsequence"><acme:getDataResult><acme:a>0</acme:a><acme:b>10</acme:b><acme:c><acme:id>1</acme:id><acme:value1>test 1</acme:value1></acme:c><acme:d><acme:id>3</acme:id><acme:value2>test 3</acme:value2></acme:d><acme:c><acme:id>2</acme:id><acme:value1>test 2</acme:value1></acme:c></acme:getDataResult></acme:getDataResponse>
      
      at WSDL.callback (test/wsdl-parse-test.js:213:16)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:94
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.processIncludes (lib/wsdl/index.js:9:784)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1088
      at process.processTicksAndRejections (node:internal/process/task_queues:84:11)

  16) /home/runner/work/node-soap/node-soap/test/wsdl-parse-test.js
       should parse complex wsdls with mixed choice and minOccurs maxOccurs with omitted arrayWithChoiceTag tag key:

      AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected

+ '<acme:getDataResponse xmlns:acme="http://test-soap.com/api/mixedsequence" xmlns="http://test-soap.com/api/mixedsequence"><acme:getDataResult><acme:a>0</acme:a><acme:b>10</acme:b><acme:c><acme:value1>test 1</acme:value1><acme:id>1</acme:id></acme:c><acme:c><acme:value1>test 2</acme:value1><acme:id>2</acme:id></acme:c><acme:d><acme:value2>test 3</acme:value2><acme:id>3</acme:id></acme:d></acme:getDataResult></acme:getDataResponse>'
- '<acme:getDataResponse xmlns:acme="http://test-soap.com/api/mixedsequence" xmlns="http://test-soap.com/api/mixedsequence"><acme:getDataResult><acme:a>0</acme:a><acme:b>10</acme:b><acme:c><acme:id>1</acme:id><acme:value1>test 1</acme:value1></acme:c><acme:c><acme:id>2</acme:id><acme:value1>test 2</acme:value1></acme:c><acme:d><acme:id>3</acme:id><acme:value2>test 3</acme:value2></acme:d></acme:getDataResult></acme:getDataResponse>'

      + expected - actual

      -<acme:getDataResponse xmlns:acme="http://test-soap.com/api/mixedsequence" xmlns="http://test-soap.com/api/mixedsequence"><acme:getDataResult><acme:a>0</acme:a><acme:b>10</acme:b><acme:c><acme:value1>test 1</acme:value1><acme:id>1</acme:id></acme:c><acme:c><acme:value1>test 2</acme:value1><acme:id>2</acme:id></acme:c><acme:d><acme:value2>test 3</acme:value2><acme:id>3</acme:id></acme:d></acme:getDataResult></acme:getDataResponse>
      +<acme:getDataResponse xmlns:acme="http://test-soap.com/api/mixedsequence" xmlns="http://test-soap.com/api/mixedsequence"><acme:getDataResult><acme:a>0</acme:a><acme:b>10</acme:b><acme:c><acme:id>1</acme:id><acme:value1>test 1</acme:value1></acme:c><acme:c><acme:id>2</acme:id><acme:value1>test 2</acme:value1></acme:c><acme:d><acme:id>3</acme:id><acme:value2>test 3</acme:value2></acme:d></acme:getDataResult></acme:getDataResponse>
      
      at WSDL.callback (test/wsdl-parse-test.js:279:14)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:9:94
      at WSDL._processNextInclude (lib/wsdl/index.js:93:980)
      at WSDL.processIncludes (lib/wsdl/index.js:9:784)
      at /home/runner/work/node-soap/node-soap/lib/wsdl/index.js:7:1088
      at process.processTicksAndRejections (node:internal/process/task_queues:84:11)

  17) WSDL Parser (strict)
       should handle type ref:
     Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/node-soap/node-soap/test/wsdl-test.js)
      at listOnTimeout (node:internal/timers:585:17)
      at process.processTimers (node:internal/timers:521:7)

Any help is appreciated to fix the code or the tests. @w666 you have write access to my branch and @rjordakiev / @pseudogode you can rebase and submit a PR against that branch smokhov:rjordakiev-feat/sequence-ordering. I'll try to address the issues as time permits.

@w666

w666 commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator

@smokhov I will take a look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

sequence is not respected

2 participants