<testsuites name="Mocha Tests" time="3290.177" tests="272" failures="142">
  <testsuite name="Root Suite" timestamp="2025-05-02T12:29:23" tests="0" time="0.000" failures="0">
  </testsuite>
  <testsuite name="realtime/objects" timestamp="2025-05-02T12:29:23" tests="1" time="0.000" failures="0">
    <testcase name="realtime/objects can attach to channel with Objects modes" time="0.363" classname="can attach to channel with Objects modes">
    </testcase>
  </testsuite>
  <testsuite name="Realtime without Objects plugin" timestamp="2025-05-02T12:29:29" tests="3" time="0.256" failures="0">
    <testcase name="realtime/objects Realtime without Objects plugin throws an error when attempting to access the channel&apos;s `objects` property" time="0.002" classname="throws an error when attempting to access the channel&apos;s `objects` property">
    </testcase>
    <testcase name="realtime/objects Realtime without Objects plugin doesn&apos;t break when it receives an OBJECT ProtocolMessage" time="0.134" classname="doesn&apos;t break when it receives an OBJECT ProtocolMessage">
    </testcase>
    <testcase name="realtime/objects Realtime without Objects plugin doesn&apos;t break when it receives an OBJECT_SYNC ProtocolMessage" time="0.111" classname="doesn&apos;t break when it receives an OBJECT_SYNC ProtocolMessage">
    </testcase>
  </testsuite>
  <testsuite name="Realtime with Objects plugin" timestamp="2025-05-02T12:29:29" tests="249" time="0.000" failures="134">
    <testcase name="realtime/objects Realtime with Objects plugin returns Objects class instance when accessing channel&apos;s `objects` property" time="0.001" classname="returns Objects class instance when accessing channel&apos;s `objects` property">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin getRoot() returns LiveMap instance" time="0.408" classname="getRoot() returns LiveMap instance">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin getRoot() returns LiveObject with id &quot;root&quot;" time="0.052" classname="getRoot() returns LiveObject with id &quot;root&quot;">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin getRoot() returns empty root when no objects exist on a channel" time="0.053" classname="getRoot() returns empty root when no objects exist on a channel">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin getRoot() waits for initial OBJECT_SYNC to be completed before resolving" time="0.052" classname="getRoot() waits for initial OBJECT_SYNC to be completed before resolving">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin getRoot() resolves immediately when OBJECT_SYNC sequence is completed" time="0.060" classname="getRoot() resolves immediately when OBJECT_SYNC sequence is completed">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin getRoot() waits for OBJECT_SYNC with empty cursor before resolving" time="0.057" classname="getRoot() waits for OBJECT_SYNC with empty cursor before resolving">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=key" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
overrideWithObjectState@http://localhost:3000/build/objects.js:1224:14
_applySync@http://localhost:3000/build/objects.js:2015:39
_endSync@http://localhost:3000/build/objects.js:1984:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
@http://localhost:3000/test/realtime/objects.test.js:398:31
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:369:22
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin builds object tree from OBJECT_SYNC sequence on channel attachment with web_socket binary protocol" time="60.001" classname="builds object tree from OBJECT_SYNC sequence on channel attachment with web_socket binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin builds object tree from OBJECT_SYNC sequence on channel attachment with web_socket text protocol" time="60.001" classname="builds object tree from OBJECT_SYNC sequence on channel attachment with web_socket text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin builds object tree from OBJECT_SYNC sequence on channel attachment with xhr_polling binary protocol" time="60.001" classname="builds object tree from OBJECT_SYNC sequence on channel attachment with xhr_polling binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin builds object tree from OBJECT_SYNC sequence on channel attachment with xhr_polling text protocol" time="60.000" classname="builds object tree from OBJECT_SYNC sequence on channel attachment with xhr_polling text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin builds object tree from OBJECT_SYNC sequence on channel attachment with binary protocol" time="60.000" classname="builds object tree from OBJECT_SYNC sequence on channel attachment with binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin builds object tree from OBJECT_SYNC sequence on channel attachment with text protocol" time="60.000" classname="builds object tree from OBJECT_SYNC sequence on channel attachment with text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with web_socket binary protocol" time="60.001" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with web_socket binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with web_socket text protocol" time="60.001" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with web_socket text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with xhr_polling binary protocol" time="60.000" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with xhr_polling binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with xhr_polling text protocol" time="60.000" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with xhr_polling text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with binary protocol" time="59.999" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter is initialized with initial value from OBJECT_SYNC sequence with text protocol" time="60.001" classname="LiveCounter is initialized with initial value from OBJECT_SYNC sequence with text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with web_socket binary protocol" time="60.001" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with web_socket binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with web_socket text protocol" time="60.000" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with web_socket text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with xhr_polling binary protocol" time="60.001" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with xhr_polling binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with xhr_polling text protocol" time="60.000" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with xhr_polling text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with binary protocol" time="60.001" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap is initialized with initial value from OBJECT_SYNC sequence with text protocol" time="60.000" classname="LiveMap is initialized with initial value from OBJECT_SYNC sequence with text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap can reference the same object in their keys with web_socket binary protocol" time="60.001" classname="LiveMap can reference the same object in their keys with web_socket binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap can reference the same object in their keys with web_socket text protocol" time="60.001" classname="LiveMap can reference the same object in their keys with web_socket text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap can reference the same object in their keys with xhr_polling binary protocol" time="60.000" classname="LiveMap can reference the same object in their keys with xhr_polling binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap can reference the same object in their keys with xhr_polling text protocol" time="60.001" classname="LiveMap can reference the same object in their keys with xhr_polling text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap can reference the same object in their keys with binary protocol" time="60.000" classname="LiveMap can reference the same object in their keys with binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap can reference the same object in their keys with text protocol" time="60.000" classname="LiveMap can reference the same object in their keys with text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property creates tombstoned object" time="0.892" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property creates tombstoned object">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
overrideWithObjectState@http://localhost:3000/build/objects.js:1224:14
_applySync@http://localhost:3000/build/objects.js:2015:39
_endSync@http://localhost:3000/build/objects.js:1984:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:680:33
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with web_socket binary protocol" time="4.345" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with web_socket binary protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
overrideWithObjectState@http://localhost:3000/build/objects.js:1224:14
_applySync@http://localhost:3000/build/objects.js:2015:39
_endSync@http://localhost:3000/build/objects.js:1984:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:746:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with web_socket text protocol" time="0.214" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with web_socket text protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
overrideWithObjectState@http://localhost:3000/build/objects.js:1224:14
_applySync@http://localhost:3000/build/objects.js:2015:39
_endSync@http://localhost:3000/build/objects.js:1984:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:746:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with xhr_polling binary protocol" time="0.361" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with xhr_polling binary protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
overrideWithObjectState@http://localhost:3000/build/objects.js:1224:14
_applySync@http://localhost:3000/build/objects.js:2015:39
_endSync@http://localhost:3000/build/objects.js:1984:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:746:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with xhr_polling text protocol" time="0.256" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with xhr_polling text protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
overrideWithObjectState@http://localhost:3000/build/objects.js:1224:14
_applySync@http://localhost:3000/build/objects.js:2015:39
_endSync@http://localhost:3000/build/objects.js:1984:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:746:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with binary protocol" time="0.869" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with binary protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
overrideWithObjectState@http://localhost:3000/build/objects.js:1224:14
_applySync@http://localhost:3000/build/objects.js:2015:39
_endSync@http://localhost:3000/build/objects.js:1984:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:746:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with text protocol" time="0.741" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property deletes existing object with text protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
overrideWithObjectState@http://localhost:3000/build/objects.js:1224:14
_applySync@http://localhost:3000/build/objects.js:2015:39
_endSync@http://localhost:3000/build/objects.js:1984:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:746:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with web_socket binary protocol" time="0.817" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with web_socket text protocol" time="0.196" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with xhr_polling binary protocol" time="0.332" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with xhr_polling text protocol" time="0.851" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with binary protocol" time="0.767" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with text protocol" time="0.779" classname="OBJECT_SYNC sequence with object state &quot;tombstone&quot; property triggers subscription callback for existing object with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with web_socket binary protocol" time="0.731" classname="can apply MAP_CREATE with primitives object operation messages with web_socket binary protocol">
      <failure message="Check map &quot;valuesMap&quot; has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/<@http://localhost:3000/test/realtime/objects.test.js:876:40
action@http://localhost:3000/test/realtime/objects.test.js:867:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with web_socket text protocol" time="0.345" classname="can apply MAP_CREATE with primitives object operation messages with web_socket text protocol">
      <failure message="Check map &quot;valuesMap&quot; has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/<@http://localhost:3000/test/realtime/objects.test.js:876:40
action@http://localhost:3000/test/realtime/objects.test.js:867:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with xhr_polling binary protocol" time="0.357" classname="can apply MAP_CREATE with primitives object operation messages with xhr_polling binary protocol">
      <failure message="Check map &quot;valuesMap&quot; has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/<@http://localhost:3000/test/realtime/objects.test.js:876:40
action@http://localhost:3000/test/realtime/objects.test.js:867:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with xhr_polling text protocol" time="0.581" classname="can apply MAP_CREATE with primitives object operation messages with xhr_polling text protocol">
      <failure message="Check map &quot;valuesMap&quot; has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/<@http://localhost:3000/test/realtime/objects.test.js:876:40
action@http://localhost:3000/test/realtime/objects.test.js:867:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with binary protocol" time="0.744" classname="can apply MAP_CREATE with primitives object operation messages with binary protocol">
      <failure message="Check map &quot;valuesMap&quot; has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/<@http://localhost:3000/test/realtime/objects.test.js:876:40
action@http://localhost:3000/test/realtime/objects.test.js:867:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with primitives object operation messages with text protocol" time="0.792" classname="can apply MAP_CREATE with primitives object operation messages with text protocol">
      <failure message="Check map &quot;valuesMap&quot; has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/<@http://localhost:3000/test/realtime/objects.test.js:876:40
action@http://localhost:3000/test/realtime/objects.test.js:867:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with web_socket binary protocol" time="0.856" classname="can apply MAP_CREATE with object ids object operation messages with web_socket binary protocol">
      <failure message="Check map at &quot;mapReference&quot; key has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:968:45
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with web_socket text protocol" time="0.895" classname="can apply MAP_CREATE with object ids object operation messages with web_socket text protocol">
      <failure message="Check map at &quot;mapReference&quot; key has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:968:45
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with xhr_polling binary protocol" time="0.310" classname="can apply MAP_CREATE with object ids object operation messages with xhr_polling binary protocol">
      <failure message="Check map at &quot;mapReference&quot; key has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:968:45
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with xhr_polling text protocol" time="0.250" classname="can apply MAP_CREATE with object ids object operation messages with xhr_polling text protocol">
      <failure message="Check map at &quot;mapReference&quot; key has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:968:45
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with binary protocol" time="0.434" classname="can apply MAP_CREATE with object ids object operation messages with binary protocol">
      <failure message="Check map at &quot;mapReference&quot; key has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:968:45
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_CREATE with object ids object operation messages with text protocol" time="0.296" classname="can apply MAP_CREATE with object ids object operation messages with text protocol">
      <failure message="Check map at &quot;mapReference&quot; key has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:968:45
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_CREATE object operation messages are applied based on the site timeserials vector of the object" time="0.759" classname="MAP_CREATE object operation messages are applied based on the site timeserials vector of the object">
      <failure message="Invalid object data for MAP_SET op on objectId=map:9799126047952154@1746190430135 on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
applyOperation@http://localhost:3000/build/objects.js:1148:25
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action/<@http://localhost:3000/test/realtime/objects.test.js:993:37
action@http://localhost:3000/test/realtime/objects.test.js:991:22
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with web_socket binary protocol" time="60.001" classname="can apply MAP_SET with primitives object operation messages with web_socket binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with web_socket text protocol" time="60.000" classname="can apply MAP_SET with primitives object operation messages with web_socket text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with xhr_polling binary protocol" time="60.001" classname="can apply MAP_SET with primitives object operation messages with xhr_polling binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with xhr_polling text protocol" time="60.000" classname="can apply MAP_SET with primitives object operation messages with xhr_polling text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with binary protocol" time="60.000" classname="can apply MAP_SET with primitives object operation messages with binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with primitives object operation messages with text protocol" time="60.000" classname="can apply MAP_SET with primitives object operation messages with text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with web_socket binary protocol" time="0.454" classname="can apply MAP_SET with object ids object operation messages with web_socket binary protocol">
      <failure message="Check map at &quot;keyToMap&quot; key in root has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1157:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with web_socket text protocol" time="0.413" classname="can apply MAP_SET with object ids object operation messages with web_socket text protocol">
      <failure message="Check map at &quot;keyToMap&quot; key in root has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1157:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with xhr_polling binary protocol" time="0.892" classname="can apply MAP_SET with object ids object operation messages with xhr_polling binary protocol">
      <failure message="Check map at &quot;keyToMap&quot; key in root has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1157:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with xhr_polling text protocol" time="0.770" classname="can apply MAP_SET with object ids object operation messages with xhr_polling text protocol">
      <failure message="Check map at &quot;keyToMap&quot; key in root has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1157:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with binary protocol" time="0.437" classname="can apply MAP_SET with object ids object operation messages with binary protocol">
      <failure message="Check map at &quot;keyToMap&quot; key in root has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1157:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_SET with object ids object operation messages with text protocol" time="0.850" classname="can apply MAP_SET with object ids object operation messages with text protocol">
      <failure message="Check map at &quot;keyToMap&quot; key in root has correct number of keys: expected +0 to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1157:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +1
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_SET object operation messages are applied based on the site timeserials vector of the object" time="0.673" classname="MAP_SET object operation messages are applied based on the site timeserials vector of the object">
      <failure message="Invalid object data for MAP_SET op on objectId=map:7732305882685667@1746190794883 on key=foo1" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
_applyMapCreate@http://localhost:3000/build/objects.js:1330:17
applyOperation@http://localhost:3000/build/objects.js:1141:23
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action@http://localhost:3000/test/realtime/objects.test.js:1173:33
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with web_socket binary protocol" time="0.787" classname="can apply MAP_REMOVE object operation messages with web_socket binary protocol">
      <failure message="Check map at &quot;map&quot; key in root has correct number of keys before MAP_REMOVE: expected +0 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1257:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61


      + expected - actual

      -0
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with web_socket text protocol" time="0.417" classname="can apply MAP_REMOVE object operation messages with web_socket text protocol">
      <failure message="Check map at &quot;map&quot; key in root has correct number of keys before MAP_REMOVE: expected +0 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1257:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with xhr_polling binary protocol" time="0.784" classname="can apply MAP_REMOVE object operation messages with xhr_polling binary protocol">
      <failure message="Check map at &quot;map&quot; key in root has correct number of keys before MAP_REMOVE: expected +0 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1257:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with xhr_polling text protocol" time="0.203" classname="can apply MAP_REMOVE object operation messages with xhr_polling text protocol">
      <failure message="Check map at &quot;map&quot; key in root has correct number of keys before MAP_REMOVE: expected +0 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1257:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with binary protocol" time="0.774" classname="can apply MAP_REMOVE object operation messages with binary protocol">
      <failure message="Check map at &quot;map&quot; key in root has correct number of keys before MAP_REMOVE: expected +0 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1257:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply MAP_REMOVE object operation messages with text protocol" time="0.806" classname="can apply MAP_REMOVE object operation messages with text protocol">
      <failure message="Check map at &quot;map&quot; key in root has correct number of keys before MAP_REMOVE: expected +0 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:1257:35
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_REMOVE object operation messages are applied based on the site timeserials vector of the object" time="0.717" classname="MAP_REMOVE object operation messages are applied based on the site timeserials vector of the object">
      <failure message="Invalid object data for MAP_SET op on objectId=map:34122023544976454@1746190799475 on key=foo1" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
_applyMapCreate@http://localhost:3000/build/objects.js:1330:17
applyOperation@http://localhost:3000/build/objects.js:1141:23
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action@http://localhost:3000/test/realtime/objects.test.js:1305:33
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with web_socket binary protocol" time="0.358" classname="can apply COUNTER_CREATE object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with web_socket text protocol" time="0.379" classname="can apply COUNTER_CREATE object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with xhr_polling binary protocol" time="0.356" classname="can apply COUNTER_CREATE object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with xhr_polling text protocol" time="0.224" classname="can apply COUNTER_CREATE object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with binary protocol" time="0.366" classname="can apply COUNTER_CREATE object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_CREATE object operation messages with text protocol" time="0.428" classname="can apply COUNTER_CREATE object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin COUNTER_CREATE object operation messages are applied based on the site timeserials vector of the object" time="0.755" classname="COUNTER_CREATE object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with web_socket binary protocol" time="0.722" classname="can apply COUNTER_INC object operation messages with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with web_socket text protocol" time="1.128" classname="can apply COUNTER_INC object operation messages with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with xhr_polling binary protocol" time="0.694" classname="can apply COUNTER_INC object operation messages with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with xhr_polling text protocol" time="1.219" classname="can apply COUNTER_INC object operation messages with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with binary protocol" time="1.268" classname="can apply COUNTER_INC object operation messages with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply COUNTER_INC object operation messages with text protocol" time="1.177" classname="can apply COUNTER_INC object operation messages with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin COUNTER_INC object operation messages are applied based on the site timeserials vector of the object" time="0.269" classname="COUNTER_INC object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can apply OBJECT_DELETE object operation messages" time="0.404" classname="can apply OBJECT_DELETE object operation messages">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_DELETE for unknown object id creates zero-value tombstoned object" time="0.717" classname="OBJECT_DELETE for unknown object id creates zero-value tombstoned object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_DELETE object operation messages are applied based on the site timeserials vector of the object" time="0.283" classname="OBJECT_DELETE object operation messages are applied based on the site timeserials vector of the object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin OBJECT_DELETE triggers subscription callback with deleted data" time="0.263" classname="OBJECT_DELETE triggers subscription callback with deleted data">
      <failure message="Check map subscription callback is called with an expected update object after OBJECT_DELETE operation: expected { update: {} } to deeply equal { update: { foo: &apos;removed&apos;, …(1) } }" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEql@http://localhost:3000/node_modules/chai/chai.js:1497:10
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1435:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/mapSubPromise</<@http://localhost:3000/test/realtime/objects.test.js:1781:42
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
notifyUpdated@http://localhost:3000/build/objects.js:476:25
applyOperation@http://localhost:3000/build/objects.js:1169:10
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action@http://localhost:3000/test/realtime/objects.test.js:1806:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

       {
      -  "update": {}
      +  "update": {
      +    "baz": "removed"
      +    "foo": "removed"
      +  }
       }
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin MAP_SET with reference to a tombstoned object results in undefined value on key" time="0.848" classname="MAP_SET with reference to a tombstoned object results in undefined value on key">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin object operation message on a tombstoned object does not revive it" time="0.329" classname="object operation message on a tombstoned object does not revive it">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin object operation messages are buffered during OBJECT_SYNC sequence" time="0.722" classname="object operation messages are buffered during OBJECT_SYNC sequence">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin buffered object operation messages are applied when OBJECT_SYNC sequence ends" time="0.812" classname="buffered object operation messages are applied when OBJECT_SYNC sequence ends">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=stringKey" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
applyOperation@http://localhost:3000/build/objects.js:1148:25
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
_endSync@http://localhost:3000/build/objects.js:1985:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:2003:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin buffered object operation messages are discarded when new OBJECT_SYNC sequence starts" time="0.163" classname="buffered object operation messages are discarded when new OBJECT_SYNC sequence starts">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
applyOperation@http://localhost:3000/build/objects.js:1148:25
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
_endSync@http://localhost:3000/build/objects.js:1985:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:2066:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin buffered object operation messages are applied based on the site timeserials vector of the object" time="0.758" classname="buffered object operation messages are applied based on the site timeserials vector of the object">
      <failure message="Invalid object data for MAP_SET op on objectId=map:6264366815520306@1746190814254 on key=foo5" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
applyOperation@http://localhost:3000/build/objects.js:1148:25
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
_endSync@http://localhost:3000/build/objects.js:1985:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:2178:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin subsequent object operation messages are applied immediately after OBJECT_SYNC ended and buffers are applied" time="0.780" classname="subsequent object operation messages are applied immediately after OBJECT_SYNC ended and buffers are applied">
      <failure message="Invalid object data for MAP_SET op on objectId=root on key=stringKey" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
applyOperation@http://localhost:3000/build/objects.js:1148:25
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
_endSync@http://localhost:3000/build/objects.js:1985:10
handleObjectSyncMessages@http://localhost:3000/build/objects.js:1897:12
processMessage@http://localhost:3000/build/ably.js:4480:25
async*processObjectStateMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:286:21
action@http://localhost:3000/test/realtime/objects.test.js:2235:33
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with web_socket binary protocol" time="4.229" classname="LiveCounter.increment sends COUNTER_INC operation with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with web_socket text protocol" time="4.814" classname="LiveCounter.increment sends COUNTER_INC operation with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with xhr_polling binary protocol" time="4.371" classname="LiveCounter.increment sends COUNTER_INC operation with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with xhr_polling text protocol" time="4.213" classname="LiveCounter.increment sends COUNTER_INC operation with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with binary protocol" time="4.221" classname="LiveCounter.increment sends COUNTER_INC operation with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment sends COUNTER_INC operation with text protocol" time="4.831" classname="LiveCounter.increment sends COUNTER_INC operation with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.increment throws on invalid input" time="0.208" classname="LiveCounter.increment throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with web_socket binary protocol" time="4.749" classname="LiveCounter.decrement sends COUNTER_INC operation with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with web_socket text protocol" time="4.404" classname="LiveCounter.decrement sends COUNTER_INC operation with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with xhr_polling binary protocol" time="4.753" classname="LiveCounter.decrement sends COUNTER_INC operation with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with xhr_polling text protocol" time="4.749" classname="LiveCounter.decrement sends COUNTER_INC operation with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with binary protocol" time="4.422" classname="LiveCounter.decrement sends COUNTER_INC operation with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement sends COUNTER_INC operation with text protocol" time="4.807" classname="LiveCounter.decrement sends COUNTER_INC operation with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter.decrement throws on invalid input" time="0.789" classname="LiveCounter.decrement throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with web_socket binary protocol" time="60.000" classname="LiveMap.set sends MAP_SET operation with primitive values with web_socket binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with web_socket text protocol" time="60.001" classname="LiveMap.set sends MAP_SET operation with primitive values with web_socket text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with xhr_polling binary protocol" time="60.000" classname="LiveMap.set sends MAP_SET operation with primitive values with xhr_polling binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with xhr_polling text protocol" time="60.000" classname="LiveMap.set sends MAP_SET operation with primitive values with xhr_polling text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with binary protocol" time="60.000" classname="LiveMap.set sends MAP_SET operation with primitive values with binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with primitive values with text protocol" time="60.001" classname="LiveMap.set sends MAP_SET operation with primitive values with text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with web_socket binary protocol" time="1.022" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with web_socket text protocol" time="0.882" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with xhr_polling binary protocol" time="0.985" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with xhr_polling text protocol" time="1.321" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with binary protocol" time="0.761" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set sends MAP_SET operation with reference to another LiveObject with text protocol" time="0.917" classname="LiveMap.set sends MAP_SET operation with reference to another LiveObject with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.set throws on invalid input" time="0.338" classname="LiveMap.set throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with web_socket binary protocol" time="1.233" classname="LiveMap.remove sends MAP_REMOVE operation with web_socket binary protocol">
      <failure message="Check non-removed keys are still present on a root after LiveMap.remove call for another keys: expected undefined to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2642:18
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with web_socket text protocol" time="1.493" classname="LiveMap.remove sends MAP_REMOVE operation with web_socket text protocol">
      <failure message="Check non-removed keys are still present on a root after LiveMap.remove call for another keys: expected undefined to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2642:18
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with xhr_polling binary protocol" time="1.252" classname="LiveMap.remove sends MAP_REMOVE operation with xhr_polling binary protocol">
      <failure message="Check non-removed keys are still present on a root after LiveMap.remove call for another keys: expected undefined to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2642:18
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with xhr_polling text protocol" time="0.898" classname="LiveMap.remove sends MAP_REMOVE operation with xhr_polling text protocol">
      <failure message="Check non-removed keys are still present on a root after LiveMap.remove call for another keys: expected undefined to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2642:18
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with binary protocol" time="0.848" classname="LiveMap.remove sends MAP_REMOVE operation with binary protocol">
      <failure message="Check non-removed keys are still present on a root after LiveMap.remove call for another keys: expected undefined to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2642:18
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove sends MAP_REMOVE operation with text protocol" time="1.307" classname="LiveMap.remove sends MAP_REMOVE operation with text protocol">
      <failure message="Check non-removed keys are still present on a root after LiveMap.remove call for another keys: expected undefined to equal 1" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2642:18
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap.remove throws on invalid input" time="0.213" classname="LiveMap.remove throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter sends COUNTER_CREATE operation with web_socket binary protocol" time="1.287" classname="Objects.createCounter sends COUNTER_CREATE operation with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter sends COUNTER_CREATE operation with web_socket text protocol" time="0.683" classname="Objects.createCounter sends COUNTER_CREATE operation with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter sends COUNTER_CREATE operation with xhr_polling binary protocol" time="0.817" classname="Objects.createCounter sends COUNTER_CREATE operation with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter sends COUNTER_CREATE operation with xhr_polling text protocol" time="0.680" classname="Objects.createCounter sends COUNTER_CREATE operation with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter sends COUNTER_CREATE operation with binary protocol" time="1.285" classname="Objects.createCounter sends COUNTER_CREATE operation with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter sends COUNTER_CREATE operation with text protocol" time="1.212" classname="Objects.createCounter sends COUNTER_CREATE operation with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter created with Objects.createCounter can be assigned to the object tree with web_socket binary protocol" time="0.827" classname="LiveCounter created with Objects.createCounter can be assigned to the object tree with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter created with Objects.createCounter can be assigned to the object tree with web_socket text protocol" time="1.256" classname="LiveCounter created with Objects.createCounter can be assigned to the object tree with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter created with Objects.createCounter can be assigned to the object tree with xhr_polling binary protocol" time="1.224" classname="LiveCounter created with Objects.createCounter can be assigned to the object tree with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter created with Objects.createCounter can be assigned to the object tree with xhr_polling text protocol" time="0.680" classname="LiveCounter created with Objects.createCounter can be assigned to the object tree with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter created with Objects.createCounter can be assigned to the object tree with binary protocol" time="0.817" classname="LiveCounter created with Objects.createCounter can be assigned to the object tree with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveCounter created with Objects.createCounter can be assigned to the object tree with text protocol" time="1.199" classname="LiveCounter created with Objects.createCounter can be assigned to the object tree with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter can return LiveCounter with initial value without applying CREATE operation" time="0.694" classname="Objects.createCounter can return LiveCounter with initial value without applying CREATE operation">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with web_socket binary protocol" time="0.689" classname="Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with web_socket text protocol" time="0.306" classname="Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with xhr_polling binary protocol" time="0.328" classname="Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with xhr_polling text protocol" time="0.281" classname="Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with binary protocol" time="0.757" classname="Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with text protocol" time="0.298" classname="Objects.createCounter can return LiveCounter with initial value from applied CREATE operation with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin initial value is not double counted for LiveCounter from Objects.createCounter when CREATE op is received" time="0.840" classname="initial value is not double counted for LiveCounter from Objects.createCounter when CREATE op is received">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createCounter throws on invalid input" time="0.141" classname="Objects.createCounter throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with primitive values with web_socket binary protocol" time="1.209" classname="Objects.createMap sends MAP_CREATE operation with primitive values with web_socket binary protocol">
      <failure message="Check map #2 has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2865:37
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with primitive values with web_socket text protocol" time="0.727" classname="Objects.createMap sends MAP_CREATE operation with primitive values with web_socket text protocol">
      <failure message="Check map #2 has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2865:37
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with primitive values with xhr_polling binary protocol" time="0.832" classname="Objects.createMap sends MAP_CREATE operation with primitive values with xhr_polling binary protocol">
      <failure message="Check map #2 has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2865:37
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with primitive values with xhr_polling text protocol" time="1.267" classname="Objects.createMap sends MAP_CREATE operation with primitive values with xhr_polling text protocol">
      <failure message="Check map #2 has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2865:37
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with primitive values with binary protocol" time="0.843" classname="Objects.createMap sends MAP_CREATE operation with primitive values with binary protocol">
      <failure message="Check map #2 has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2865:37
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with primitive values with text protocol" time="0.684" classname="Objects.createMap sends MAP_CREATE operation with primitive values with text protocol">
      <failure message="Check map #2 has correct number of keys: expected +0 to equal 10" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2865:37
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +10
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with web_socket binary protocol" time="0.880" classname="Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with web_socket text protocol" time="0.981" classname="Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with xhr_polling binary protocol" time="1.051" classname="Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with xhr_polling text protocol" time="0.895" classname="Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with binary protocol" time="0.985" classname="Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with text protocol" time="0.870" classname="Objects.createMap sends MAP_CREATE operation with reference to another LiveObject with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap created with Objects.createMap can be assigned to the object tree with web_socket binary protocol" time="1.864" classname="LiveMap created with Objects.createMap can be assigned to the object tree with web_socket binary protocol">
      <failure message="Check map assigned to the object tree has the expected number of keys: expected +0 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2945:47
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26


      + expected - actual

      -0
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap created with Objects.createMap can be assigned to the object tree with web_socket text protocol" time="1.341" classname="LiveMap created with Objects.createMap can be assigned to the object tree with web_socket text protocol">
      <failure message="Check map assigned to the object tree has the expected number of keys: expected 1 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2945:47
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -1
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap created with Objects.createMap can be assigned to the object tree with xhr_polling binary protocol" time="1.851" classname="LiveMap created with Objects.createMap can be assigned to the object tree with xhr_polling binary protocol">
      <failure message="Check map assigned to the object tree has the expected number of keys: expected 1 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2945:47
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -1
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap created with Objects.createMap can be assigned to the object tree with xhr_polling text protocol" time="1.492" classname="LiveMap created with Objects.createMap can be assigned to the object tree with xhr_polling text protocol">
      <failure message="Check map assigned to the object tree has the expected number of keys: expected 1 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2945:47
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -1
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap created with Objects.createMap can be assigned to the object tree with binary protocol" time="1.179" classname="LiveMap created with Objects.createMap can be assigned to the object tree with binary protocol">
      <failure message="Check map assigned to the object tree has the expected number of keys: expected +0 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2945:47
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -0
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap created with Objects.createMap can be assigned to the object tree with text protocol" time="1.324" classname="LiveMap created with Objects.createMap can be assigned to the object tree with text protocol">
      <failure message="Check map assigned to the object tree has the expected number of keys: expected 1 to equal 2" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:2945:47
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

      -1
      +2
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap can return LiveMap with initial value without applying CREATE operation" time="0.693" classname="Objects.createMap can return LiveMap with initial value without applying CREATE operation">
      <failure message="Invalid object data for MAP_SET op on objectId=map:SNo9yVdfG4mwW7oWpTo-mZkN7q7hX1qeQDJ-uUj-V7A@1746191281959 on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
fromObjectOperation@http://localhost:3000/build/objects.js:915:9
createMap@http://localhost:3000/build/objects.js:1827:25
async*action@http://localhost:3000/test/realtime/objects.test.js:2969:39
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap can return LiveMap with initial value from applied CREATE operation with web_socket binary protocol" time="0.411" classname="Objects.createMap can return LiveMap with initial value from applied CREATE operation with web_socket binary protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=map:25AkyOZgBneTmwPc50CQwarKKjprKD6NJqOOaiCfEiw@1746191282385 on key=baz" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
_applyMapCreate@http://localhost:3000/build/objects.js:1330:17
applyOperation@http://localhost:3000/build/objects.js:1141:23
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action/objects.publish@http://localhost:3000/test/realtime/objects.test.js:2986:35
createMap@http://localhost:3000/build/objects.js:1823:16
async*action@http://localhost:3000/test/realtime/objects.test.js:2999:39
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap can return LiveMap with initial value from applied CREATE operation with web_socket text protocol" time="0.334" classname="Objects.createMap can return LiveMap with initial value from applied CREATE operation with web_socket text protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=map:fGnEKQ5SAY1O5DYbyEjzw4EaoqPGpYiYx3q8q4Kb5fE@1746191282732 on key=baz" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
_applyMapCreate@http://localhost:3000/build/objects.js:1330:17
applyOperation@http://localhost:3000/build/objects.js:1141:23
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action/objects.publish@http://localhost:3000/test/realtime/objects.test.js:2986:35
createMap@http://localhost:3000/build/objects.js:1823:16
async*action@http://localhost:3000/test/realtime/objects.test.js:2999:39
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap can return LiveMap with initial value from applied CREATE operation with xhr_polling binary protocol" time="0.165" classname="Objects.createMap can return LiveMap with initial value from applied CREATE operation with xhr_polling binary protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=map:OK6RaKHceC8wikv3jhzQZf8gmrOG5l4lhRNZMsvdt9c@1746191282917 on key=baz" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
_applyMapCreate@http://localhost:3000/build/objects.js:1330:17
applyOperation@http://localhost:3000/build/objects.js:1141:23
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action/objects.publish@http://localhost:3000/test/realtime/objects.test.js:2986:35
createMap@http://localhost:3000/build/objects.js:1823:16
async*action@http://localhost:3000/test/realtime/objects.test.js:2999:39
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap can return LiveMap with initial value from applied CREATE operation with xhr_polling text protocol" time="0.749" classname="Objects.createMap can return LiveMap with initial value from applied CREATE operation with xhr_polling text protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=map:HeIGuNWChyLg2EVmFN3_wPqBud8vfPUb4fY2wfLM2UM@1746191283682 on key=baz" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
_applyMapCreate@http://localhost:3000/build/objects.js:1330:17
applyOperation@http://localhost:3000/build/objects.js:1141:23
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action/objects.publish@http://localhost:3000/test/realtime/objects.test.js:2986:35
createMap@http://localhost:3000/build/objects.js:1823:16
async*action@http://localhost:3000/test/realtime/objects.test.js:2999:39
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap can return LiveMap with initial value from applied CREATE operation with binary protocol" time="0.749" classname="Objects.createMap can return LiveMap with initial value from applied CREATE operation with binary protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=map:1pwXg0HMpOuOfKvDyYNOVQzTU78IpbuTcmywTWe82t0@1746191284435 on key=baz" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
_applyMapCreate@http://localhost:3000/build/objects.js:1330:17
applyOperation@http://localhost:3000/build/objects.js:1141:23
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action/objects.publish@http://localhost:3000/test/realtime/objects.test.js:2986:35
createMap@http://localhost:3000/build/objects.js:1823:16
async*action@http://localhost:3000/test/realtime/objects.test.js:2999:39
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap can return LiveMap with initial value from applied CREATE operation with text protocol" time="0.709" classname="Objects.createMap can return LiveMap with initial value from applied CREATE operation with text protocol">
      <failure message="Invalid object data for MAP_SET op on objectId=map:qxM8DmYTCh0_NQqaoJ-A4ddvVeXmMDu1WoW7MySHLt0@1746191285160 on key=baz" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
_applyMapCreate@http://localhost:3000/build/objects.js:1330:17
applyOperation@http://localhost:3000/build/objects.js:1141:23
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processObjectOperationMessageOnChannel@http://localhost:3000/test/common/modules/objects_helper.js:271:21
action/objects.publish@http://localhost:3000/test/realtime/objects.test.js:2986:35
createMap@http://localhost:3000/build/objects.js:1823:16
async*action@http://localhost:3000/test/realtime/objects.test.js:2999:39
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin initial value is not double counted for LiveMap from Objects.createMap when CREATE op is received" time="0.746" classname="initial value is not double counted for LiveMap from Objects.createMap when CREATE op is received">
      <failure message="Invalid object data for MAP_SET op on objectId=map:_LoQ2zNBUT0qontU7cDE6OZdcMhayNhXS0WsLzK2j6g@1746191285918 on key=foo" type="Error"><![CDATA[_ErrorInfo@http://localhost:3000/build/ably.js:256:5
_applyMapSet@http://localhost:3000/build/objects.js:1346:13
_mergeInitialDataFromCreateOperation/<@http://localhost:3000/build/objects.js:1295:23
_mergeInitialDataFromCreateOperation@http://localhost:3000/build/objects.js:1289:74
fromObjectOperation@http://localhost:3000/build/objects.js:915:9
createMap@http://localhost:3000/build/objects.js:1827:25
async*action@http://localhost:3000/test/realtime/objects.test.js:3021:39
@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin Objects.createMap throws on invalid input" time="0.735" classname="Objects.createMap throws on invalid input">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API getRoot method is synchronous" time="0.151" classname="batch API getRoot method is synchronous">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API .get method on a map returns BatchContext* wrappers for objects" time="1.854" classname="batch API .get method on a map returns BatchContext* wrappers for objects">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API access API methods on objects work and are synchronous" time="1.680" classname="batch API access API methods on objects work and are synchronous">
      <failure message="Check batch API map .get() method works and is synchronous: expected undefined to equal &apos;bar&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/<@http://localhost:3000/test/realtime/objects.test.js:3169:44
batch@http://localhost:3000/build/objects.js:1804:15
async*action@http://localhost:3000/test/realtime/objects.test.js:3160:27
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API write API methods on objects do not mutate objects inside the batch callback" time="1.837" classname="batch API write API methods on objects do not mutate objects inside the batch callback">
      <failure message="Check batch API map .remove method does not mutate the object inside the batch callback: expected undefined to equal &apos;bar&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/<@http://localhost:3000/test/realtime/objects.test.js:3226:44
batch@http://localhost:3000/build/objects.js:1804:15
async*action@http://localhost:3000/test/realtime/objects.test.js:3202:27
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API scheduled operations are applied when batch callback is finished with web_socket binary protocol" time="2.252" classname="batch API scheduled operations are applied when batch callback is finished with web_socket binary protocol">
      <failure message="Check key &quot;baz&quot; has an expected value in a map after batch call: expected undefined to equal &apos;qux&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:3263:39
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API scheduled operations are applied when batch callback is finished with web_socket text protocol" time="2.849" classname="batch API scheduled operations are applied when batch callback is finished with web_socket text protocol">
      <failure message="Check key &quot;baz&quot; has an expected value in a map after batch call: expected undefined to equal &apos;qux&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:3263:39
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API scheduled operations are applied when batch callback is finished with xhr_polling binary protocol" time="2.743" classname="batch API scheduled operations are applied when batch callback is finished with xhr_polling binary protocol">
      <failure message="Check key &quot;baz&quot; has an expected value in a map after batch call: expected undefined to equal &apos;qux&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:3263:39
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API scheduled operations are applied when batch callback is finished with xhr_polling text protocol" time="2.773" classname="batch API scheduled operations are applied when batch callback is finished with xhr_polling text protocol">
      <failure message="Check key &quot;baz&quot; has an expected value in a map after batch call: expected undefined to equal &apos;qux&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:3263:39
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API scheduled operations are applied when batch callback is finished with binary protocol" time="2.740" classname="batch API scheduled operations are applied when batch callback is finished with binary protocol">
      <failure message="Check key &quot;baz&quot; has an expected value in a map after batch call: expected undefined to equal &apos;qux&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:3263:39
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API scheduled operations are applied when batch callback is finished with text protocol" time="2.724" classname="batch API scheduled operations are applied when batch callback is finished with text protocol">
      <failure message="Check key &quot;baz&quot; has an expected value in a map after batch call: expected undefined to equal &apos;qux&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:3263:39
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API can be called without scheduling any operations" time="0.184" classname="batch API can be called without scheduling any operations">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API scheduled operations can be canceled by throwing an error in the batch callback" time="2.197" classname="batch API scheduled operations can be canceled by throwing an error in the batch callback">
      <failure message="Check key &quot;foo&quot; is not changed on a map after canceled batch call: expected undefined to equal &apos;bar&apos;" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:3323:39
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual:  failed to generate Mocha diff
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API batch context and derived objects can&apos;t be interacted with after the batch call" time="1.830" classname="batch API batch context and derived objects can&apos;t be interacted with after the batch call">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin batch API batch context and derived objects can&apos;t be interacted with after error was thrown from batch callback" time="1.682" classname="batch API batch context and derived objects can&apos;t be interacted with after error was thrown from batch callback">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin LiveMap enumeration" time="0.657" classname="LiveMap enumeration">
      <failure message="Check LiveMap.entries() returns expected entries: expected [ [ &apos;counter1&apos;, …(1) ], …(1) ] to deeply equal [ [ &apos;counter1&apos;, …(1) ], …(1) ]" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEql@http://localhost:3000/node_modules/chai/chai.js:1497:10
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1435:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action@http://localhost:3000/test/realtime/objects.test.js:3467:49
async*@http://localhost:3000/test/realtime/objects.test.js:3569:28
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:3562:24
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

           }
         ]
         [
           "foo"
      -    [undefined]
      +    "bar"
         ]
       ]
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin BatchContextLiveMap enumeration" time="0.672" classname="BatchContextLiveMap enumeration">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with web_socket binary protocol" time="0.420" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with web_socket text protocol" time="0.311" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with xhr_polling binary protocol" time="0.849" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with xhr_polling text protocol" time="0.795" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with binary protocol" time="0.839" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming COUNTER_INC operation on a LiveCounter with text protocol" time="0.444" classname="can subscribe to the incoming COUNTER_INC operation on a LiveCounter with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with web_socket binary protocol" time="0.506" classname="can subscribe to multiple incoming operations on a LiveCounter with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with web_socket text protocol" time="0.509" classname="can subscribe to multiple incoming operations on a LiveCounter with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with xhr_polling binary protocol" time="0.911" classname="can subscribe to multiple incoming operations on a LiveCounter with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with xhr_polling text protocol" time="1.229" classname="can subscribe to multiple incoming operations on a LiveCounter with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with binary protocol" time="0.897" classname="can subscribe to multiple incoming operations on a LiveCounter with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveCounter with text protocol" time="0.895" classname="can subscribe to multiple incoming operations on a LiveCounter with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with web_socket binary protocol" time="60.001" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with web_socket binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with web_socket text protocol" time="60.000" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with web_socket text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with xhr_polling binary protocol" time="59.999" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with xhr_polling binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26
]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with xhr_polling text protocol" time="60.000" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with xhr_polling text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with binary protocol" time="60.001" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_SET operation on a LiveMap with text protocol" time="60.001" classname="can subscribe to the incoming MAP_SET operation on a LiveMap with text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with web_socket binary protocol" time="0.360" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with web_socket binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with web_socket text protocol" time="0.321" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with web_socket text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with xhr_polling binary protocol" time="0.465" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with xhr_polling binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with xhr_polling text protocol" time="0.866" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with xhr_polling text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with binary protocol" time="0.307" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with binary protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to the incoming MAP_REMOVE operation on a LiveMap with text protocol" time="0.847" classname="can subscribe to the incoming MAP_REMOVE operation on a LiveMap with text protocol">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with web_socket binary protocol" time="0.386" classname="can subscribe to multiple incoming operations on a LiveMap with web_socket binary protocol">
      <failure message="Check map subscription callback is called with an expected update object for 1 times: expected { update: { foo: &apos;removed&apos; } } to deeply equal { update: { foo: &apos;updated&apos; } }" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEql@http://localhost:3000/node_modules/chai/chai.js:1497:10
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1435:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/subscriptionPromise</<@http://localhost:3000/test/realtime/objects.test.js:3738:42
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
notifyUpdated@http://localhost:3000/build/objects.js:476:25
applyOperation@http://localhost:3000/build/objects.js:1169:10
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processChannelMessage@http://localhost:3000/build/ably.js:7092:19
processChannelMessage@http://localhost:3000/build/ably.js:6810:34
processNextPendingChannelMessage@http://localhost:3000/build/ably.js:6796:12
onChannelMessage@http://localhost:3000/build/ably.js:6789:12
onProtocolMessage@http://localhost:3000/build/ably.js:5222:32
onWsData@http://localhost:3000/build/ably.js:7792:12
connect/</wsConnection.onmessage@http://localhost:3000/build/ably.js:7746:19
EventHandlerNonNull*connect/<@http://localhost:3000/build/ably.js:7745:11
whenPromiseSettles/<@http://localhost:3000/build/ably.js:518:33
promise callback*whenPromiseSettles@http://localhost:3000/build/ably.js:517:11
connect@http://localhost:3000/build/ably.js:7716:23
tryConnect@http://localhost:3000/build/ably.js:5327:15
tryATransport@http://localhost:3000/build/ably.js:5698:48
tryTransportWithFallbacks@http://localhost:3000/build/ably.js:6549:10
connectWs@http://localhost:3000/build/ably.js:6467:10
connectImpl@http://localhost:3000/build/ably.js:6445:12
startConnect/connect/<@http://localhost:3000/build/ably.js:6373:14
getTransportParams/<@http://localhost:3000/build/ably.js:5687:15
decideMode@http://localhost:3000/build/ably.js:5664:13
getTransportParams@http://localhost:3000/build/ably.js:5666:15
connect@http://localhost:3000/build/ably.js:6363:12
startConnect@http://localhost:3000/build/ably.js:6380:7
requestState/<@http://localhost:3000/build/ably.js:6342:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
requestState@http://localhost:3000/build/ably.js:6341:23
connect@http://localhost:3000/build/ably.js:6968:28
connect@http://localhost:3000/build/ably.js:7034:21
_BaseRealtime@http://localhost:3000/build/ably.js:7017:12
_DefaultRealtime@http://localhost:3000/build/ably.js:7947:5
ablyRealtime@http://localhost:3000/test/common/modules/client_module.js:35:12
AblyRealtime@http://localhost:3000/test/common/modules/shared_helper.js:457:35
RealtimeWithObjects@http://localhost:3000/test/realtime/objects.test.js:21:19
@http://localhost:3000/test/realtime/objects.test.js:4061:43
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:26


      + expected - actual

       {
         "update": {
      -    "foo": "removed"
      +    "foo": "updated"
         }
       }
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with web_socket text protocol" time="0.899" classname="can subscribe to multiple incoming operations on a LiveMap with web_socket text protocol">
      <failure message="Check map subscription callback is called with an expected update object for 1 times: expected { update: { foo: &apos;removed&apos; } } to deeply equal { update: { foo: &apos;updated&apos; } }" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEql@http://localhost:3000/node_modules/chai/chai.js:1497:10
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1435:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/subscriptionPromise</<@http://localhost:3000/test/realtime/objects.test.js:3738:42
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
notifyUpdated@http://localhost:3000/build/objects.js:476:25
applyOperation@http://localhost:3000/build/objects.js:1169:10
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processChannelMessage@http://localhost:3000/build/ably.js:7092:19
processChannelMessage@http://localhost:3000/build/ably.js:6810:34
processNextPendingChannelMessage@http://localhost:3000/build/ably.js:6796:12
onChannelMessage@http://localhost:3000/build/ably.js:6789:12
onProtocolMessage@http://localhost:3000/build/ably.js:5222:32
onWsData@http://localhost:3000/build/ably.js:7792:12
connect/</wsConnection.onmessage@http://localhost:3000/build/ably.js:7746:19
EventHandlerNonNull*connect/<@http://localhost:3000/build/ably.js:7745:11
whenPromiseSettles/<@http://localhost:3000/build/ably.js:518:33
promise callback*whenPromiseSettles@http://localhost:3000/build/ably.js:517:11
connect@http://localhost:3000/build/ably.js:7716:23
tryConnect@http://localhost:3000/build/ably.js:5327:15
tryATransport@http://localhost:3000/build/ably.js:5698:48
tryTransportWithFallbacks@http://localhost:3000/build/ably.js:6549:10
connectWs@http://localhost:3000/build/ably.js:6467:10
connectImpl@http://localhost:3000/build/ably.js:6445:12
startConnect/connect/<@http://localhost:3000/build/ably.js:6373:14
getTransportParams/<@http://localhost:3000/build/ably.js:5687:15
decideMode@http://localhost:3000/build/ably.js:5664:13
getTransportParams@http://localhost:3000/build/ably.js:5666:15
connect@http://localhost:3000/build/ably.js:6363:12
startConnect@http://localhost:3000/build/ably.js:6380:7
requestState/<@http://localhost:3000/build/ably.js:6342:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
requestState@http://localhost:3000/build/ably.js:6341:23
connect@http://localhost:3000/build/ably.js:6968:28
connect@http://localhost:3000/build/ably.js:7034:21
_BaseRealtime@http://localhost:3000/build/ably.js:7017:12
_DefaultRealtime@http://localhost:3000/build/ably.js:7947:5
ablyRealtime@http://localhost:3000/test/common/modules/client_module.js:35:12
AblyRealtime@http://localhost:3000/test/common/modules/shared_helper.js:457:35
RealtimeWithObjects@http://localhost:3000/test/realtime/objects.test.js:21:19
@http://localhost:3000/test/realtime/objects.test.js:4061:43
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61


      + expected - actual

       {
         "update": {
      -    "foo": "removed"
      +    "foo": "updated"
         }
       }
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with xhr_polling binary protocol" time="0.957" classname="can subscribe to multiple incoming operations on a LiveMap with xhr_polling binary protocol">
      <failure message="Check map subscription callback is called with an expected update object for 1 times: expected { update: { foo: &apos;removed&apos; } } to deeply equal { update: { foo: &apos;updated&apos; } }" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEql@http://localhost:3000/node_modules/chai/chai.js:1497:10
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1435:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/subscriptionPromise</<@http://localhost:3000/test/realtime/objects.test.js:3738:42
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
notifyUpdated@http://localhost:3000/build/objects.js:476:25
applyOperation@http://localhost:3000/build/objects.js:1169:10
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processChannelMessage@http://localhost:3000/build/ably.js:7092:19
processChannelMessage@http://localhost:3000/build/ably.js:6810:34
processNextPendingChannelMessage@http://localhost:3000/build/ably.js:6796:12
onChannelMessage@http://localhost:3000/build/ably.js:6789:12
onProtocolMessage@http://localhost:3000/build/ably.js:5222:32
onData@http://localhost:3000/build/ably.js:8967:16
recv/<@http://localhost:3000/build/ably.js:8943:12
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
complete@http://localhost:3000/build/ably.js:9056:14
onEnd@http://localhost:3000/build/ably.js:9154:14
exec/xhr.onreadystatechange@http://localhost:3000/build/ably.js:9208:13
EventHandlerNonNull*exec@http://localhost:3000/build/ably.js:9193:5
recv@http://localhost:3000/build/ably.js:8960:17
recv/</<@http://localhost:3000/build/ably.js:8957:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
recv/<@http://localhost:3000/build/ably.js:8956:23
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
complete@http://localhost:3000/build/ably.js:9058:12
onEnd@http://localhost:3000/build/ably.js:9154:14
exec/xhr.onreadystatechange@http://localhost:3000/build/ably.js:9208:13
EventHandlerNonNull*exec@http://localhost:3000/build/ably.js:9193:5
recv@http://localhost:3000/build/ably.js:8960:17
recv/</<@http://localhost:3000/build/ably.js:8957:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
recv/<@http://localhost:3000/build/ably.js:8956:23
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
complete@http://localhost:3000/build/ably.js:9058:12
onEnd@http://localhost:3000/build/ably.js:9154:14
exec/xhr.onreadystatechange@http://localhost:3000/build/ably.js:9208:13
EventHandlerNonNull*exec@http://localhost:3000/build/ably.js:9193:5
recv@http://localhost:3000/build/ably.js:8960:17
recv/</<@http://localhost:3000/build/ably.js:8957:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
recv/<@http://localhost:3000/build/ably.js:8956:23
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
complete@http://localhost:3000/build/ably.js:9058:12
onEnd@http://localhost:3000/build/ably.js:9154:14
exec/xhr.onreadystatechange@http://localhost:3000/build/ably.js:9208:13
EventHandlerNonNull*exec@http://localhost:3000/build/ably.js:9193:5
recv@http://localhost:3000/build/ably.js:8960:17
recv/</<@http://localhost:3000/build/ably.js:8957:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
recv/<@http://localhost:3000/build/ably.js:8956:23
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15


      + expected - actual

       {
         "update": {
      -    "foo": "removed"
      +    "foo": "updated"
         }
       }
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with xhr_polling text protocol" time="1.013" classname="can subscribe to multiple incoming operations on a LiveMap with xhr_polling text protocol">
      <failure message="Check map subscription callback is called with an expected update object for 1 times: expected { update: { foo: &apos;removed&apos; } } to deeply equal { update: { foo: &apos;updated&apos; } }" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEql@http://localhost:3000/node_modules/chai/chai.js:1497:10
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1435:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/subscriptionPromise</<@http://localhost:3000/test/realtime/objects.test.js:3738:42
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
notifyUpdated@http://localhost:3000/build/objects.js:476:25
applyOperation@http://localhost:3000/build/objects.js:1169:10
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processChannelMessage@http://localhost:3000/build/ably.js:7092:19
processChannelMessage@http://localhost:3000/build/ably.js:6810:34
processNextPendingChannelMessage@http://localhost:3000/build/ably.js:6796:12
onChannelMessage@http://localhost:3000/build/ably.js:6789:12
onProtocolMessage@http://localhost:3000/build/ably.js:5222:32
onData@http://localhost:3000/build/ably.js:8967:16
recv/<@http://localhost:3000/build/ably.js:8943:12
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
complete@http://localhost:3000/build/ably.js:9056:14
onEnd@http://localhost:3000/build/ably.js:9154:14
exec/xhr.onreadystatechange@http://localhost:3000/build/ably.js:9208:13
EventHandlerNonNull*exec@http://localhost:3000/build/ably.js:9193:5
recv@http://localhost:3000/build/ably.js:8960:17
recv/</<@http://localhost:3000/build/ably.js:8957:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
recv/<@http://localhost:3000/build/ably.js:8956:23
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
complete@http://localhost:3000/build/ably.js:9058:12
onEnd@http://localhost:3000/build/ably.js:9154:14
exec/xhr.onreadystatechange@http://localhost:3000/build/ably.js:9208:13
EventHandlerNonNull*exec@http://localhost:3000/build/ably.js:9193:5
recv@http://localhost:3000/build/ably.js:8960:17
recv/</<@http://localhost:3000/build/ably.js:8957:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
recv/<@http://localhost:3000/build/ably.js:8956:23
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
complete@http://localhost:3000/build/ably.js:9058:12
onEnd@http://localhost:3000/build/ably.js:9154:14
exec/xhr.onreadystatechange@http://localhost:3000/build/ably.js:9208:13
EventHandlerNonNull*exec@http://localhost:3000/build/ably.js:9193:5
recv@http://localhost:3000/build/ably.js:8960:17
recv/</<@http://localhost:3000/build/ably.js:8957:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
recv/<@http://localhost:3000/build/ably.js:8956:23
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15


      + expected - actual

       {
         "update": {
      -    "foo": "removed"
      +    "foo": "updated"
         }
       }
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with binary protocol" time="0.910" classname="can subscribe to multiple incoming operations on a LiveMap with binary protocol">
      <failure message="Check map subscription callback is called with an expected update object for 1 times: expected { update: { foo: &apos;removed&apos; } } to deeply equal { update: { foo: &apos;updated&apos; } }" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEql@http://localhost:3000/node_modules/chai/chai.js:1497:10
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1435:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/subscriptionPromise</<@http://localhost:3000/test/realtime/objects.test.js:3738:42
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
notifyUpdated@http://localhost:3000/build/objects.js:476:25
applyOperation@http://localhost:3000/build/objects.js:1169:10
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processChannelMessage@http://localhost:3000/build/ably.js:7092:19
processChannelMessage@http://localhost:3000/build/ably.js:6810:34
processNextPendingChannelMessage@http://localhost:3000/build/ably.js:6796:12
onChannelMessage@http://localhost:3000/build/ably.js:6789:12
onProtocolMessage@http://localhost:3000/build/ably.js:5222:32
onWsData@http://localhost:3000/build/ably.js:7792:12
connect/</wsConnection.onmessage@http://localhost:3000/build/ably.js:7746:19
EventHandlerNonNull*connect/<@http://localhost:3000/build/ably.js:7745:11
whenPromiseSettles/<@http://localhost:3000/build/ably.js:518:33
promise callback*whenPromiseSettles@http://localhost:3000/build/ably.js:517:11
connect@http://localhost:3000/build/ably.js:7716:23
tryConnect@http://localhost:3000/build/ably.js:5327:15
tryATransport@http://localhost:3000/build/ably.js:5698:48
tryTransportWithFallbacks@http://localhost:3000/build/ably.js:6549:10
connectWs@http://localhost:3000/build/ably.js:6467:10
connectImpl@http://localhost:3000/build/ably.js:6445:12
startConnect/connect/<@http://localhost:3000/build/ably.js:6373:14
getTransportParams/<@http://localhost:3000/build/ably.js:5687:15
decideMode@http://localhost:3000/build/ably.js:5664:13
getTransportParams@http://localhost:3000/build/ably.js:5666:15
connect@http://localhost:3000/build/ably.js:6363:12
startConnect@http://localhost:3000/build/ably.js:6380:7
requestState/<@http://localhost:3000/build/ably.js:6342:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
requestState@http://localhost:3000/build/ably.js:6341:23
connect@http://localhost:3000/build/ably.js:6968:28
connect@http://localhost:3000/build/ably.js:7034:21
_BaseRealtime@http://localhost:3000/build/ably.js:7017:12
_DefaultRealtime@http://localhost:3000/build/ably.js:7947:5
ablyRealtime@http://localhost:3000/test/common/modules/client_module.js:35:12
AblyRealtime@http://localhost:3000/test/common/modules/shared_helper.js:457:35
RealtimeWithObjects@http://localhost:3000/test/realtime/objects.test.js:21:19
@http://localhost:3000/test/realtime/objects.test.js:4061:43
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61
promise callback*testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:353:37


      + expected - actual

       {
         "update": {
      -    "foo": "removed"
      +    "foo": "updated"
         }
       }
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can subscribe to multiple incoming operations on a LiveMap with text protocol" time="0.544" classname="can subscribe to multiple incoming operations on a LiveMap with text protocol">
      <failure message="Check map subscription callback is called with an expected update object for 1 times: expected { update: { foo: &apos;removed&apos; } } to deeply equal { update: { foo: &apos;updated&apos; } }" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEql@http://localhost:3000/node_modules/chai/chai.js:1497:10
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1435:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
action/subscriptionPromise</<@http://localhost:3000/test/realtime/objects.test.js:3738:42
callListener@http://localhost:3000/build/ably.js:1725:14
emit/<@http://localhost:3000/build/ably.js:1879:19
emit@http://localhost:3000/build/ably.js:1878:15
notifyUpdated@http://localhost:3000/build/objects.js:476:25
applyOperation@http://localhost:3000/build/objects.js:1169:10
_applyObjectMessages@http://localhost:3000/build/objects.js:2056:59
handleObjectMessages@http://localhost:3000/build/objects.js:1908:10
processMessage@http://localhost:3000/build/ably.js:4478:25
async*processChannelMessage@http://localhost:3000/build/ably.js:7092:19
processChannelMessage@http://localhost:3000/build/ably.js:6810:34
processNextPendingChannelMessage@http://localhost:3000/build/ably.js:6796:12
onChannelMessage@http://localhost:3000/build/ably.js:6789:12
onProtocolMessage@http://localhost:3000/build/ably.js:5222:32
onWsData@http://localhost:3000/build/ably.js:7792:12
connect/</wsConnection.onmessage@http://localhost:3000/build/ably.js:7746:19
EventHandlerNonNull*connect/<@http://localhost:3000/build/ably.js:7745:11
whenPromiseSettles/<@http://localhost:3000/build/ably.js:518:33
promise callback*whenPromiseSettles@http://localhost:3000/build/ably.js:517:11
connect@http://localhost:3000/build/ably.js:7716:23
tryConnect@http://localhost:3000/build/ably.js:5327:15
tryATransport@http://localhost:3000/build/ably.js:5698:48
tryTransportWithFallbacks@http://localhost:3000/build/ably.js:6549:10
connectWs@http://localhost:3000/build/ably.js:6467:10
connectImpl@http://localhost:3000/build/ably.js:6445:12
startConnect/connect/<@http://localhost:3000/build/ably.js:6373:14
getTransportParams/<@http://localhost:3000/build/ably.js:5687:15
decideMode@http://localhost:3000/build/ably.js:5664:13
getTransportParams@http://localhost:3000/build/ably.js:5666:15
connect@http://localhost:3000/build/ably.js:6363:12
startConnect@http://localhost:3000/build/ably.js:6380:7
requestState/<@http://localhost:3000/build/ably.js:6342:14
setTimeout handler*Config.nextTick<@http://localhost:3000/build/ably.js:8673:15
requestState@http://localhost:3000/build/ably.js:6341:23
connect@http://localhost:3000/build/ably.js:6968:28
connect@http://localhost:3000/build/ably.js:7034:21
_BaseRealtime@http://localhost:3000/build/ably.js:7017:12
_DefaultRealtime@http://localhost:3000/build/ably.js:7947:5
ablyRealtime@http://localhost:3000/test/common/modules/client_module.js:35:12
AblyRealtime@http://localhost:3000/test/common/modules/shared_helper.js:457:35
RealtimeWithObjects@http://localhost:3000/test/realtime/objects.test.js:21:19
@http://localhost:3000/test/realtime/objects.test.js:4061:43
forScenarios/</<@http://localhost:3000/test/realtime/objects.test.js:46:21
testOnAllTransportsAndProtocols/createTest/<@http://localhost:3000/test/common/modules/shared_helper.js:351:61


      + expected - actual

       {
         "update": {
      -    "foo": "removed"
      +    "foo": "updated"
         }
       }
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can unsubscribe from LiveCounter updates via returned &quot;unsubscribe&quot; callback" time="0.383" classname="can unsubscribe from LiveCounter updates via returned &quot;unsubscribe&quot; callback">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can unsubscribe from LiveCounter updates via LiveCounter.unsubscribe() call" time="0.930" classname="can unsubscribe from LiveCounter updates via LiveCounter.unsubscribe() call">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can remove all LiveCounter update listeners via LiveCounter.unsubscribeAll() call" time="0.942" classname="can remove all LiveCounter update listeners via LiveCounter.unsubscribeAll() call">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can unsubscribe from LiveMap updates via returned &quot;unsubscribe&quot; callback" time="60.000" classname="can unsubscribe from LiveMap updates via returned &quot;unsubscribe&quot; callback">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can unsubscribe from LiveMap updates via LiveMap.unsubscribe() call" time="60.001" classname="can unsubscribe from LiveMap updates via LiveMap.unsubscribe() call">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin can remove all LiveMap update listeners via LiveMap.unsubscribeAll() call" time="60.001" classname="can remove all LiveMap update listeners via LiveMap.unsubscribeAll() call">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned object is removed from the pool after the GC grace period" time="1.514" classname="tombstoned object is removed from the pool after the GC grace period">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with web_socket binary protocol" time="60.000" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with web_socket binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with web_socket text protocol" time="60.001" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with web_socket text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with xhr_polling binary protocol" time="60.001" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with xhr_polling binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with xhr_polling text protocol" time="60.000" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with xhr_polling text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with binary protocol" time="60.000" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with binary protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin tombstoned map entry is removed from the LiveMap after the GC grace period with text protocol" time="60.001" classname="tombstoned map entry is removed from the LiveMap after the GC grace period with text protocol">
      <failure message="Timeout of 60000ms exceeded. For async tests and hooks, ensure &quot;done()&quot; is called; if returning a Promise, ensure it resolves." type="Error"><![CDATA[Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public API throws missing object modes error when attached without correct modes" time="1.793" classname="public API throws missing object modes error when attached without correct modes">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public API throws missing object modes error when not yet attached but client options are missing correct modes" time="2.231" classname="public API throws missing object modes error when not yet attached but client options are missing correct modes">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public API throws invalid channel state error when channel DETACHED" time="1.679" classname="public API throws invalid channel state error when channel DETACHED">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public API throws invalid channel state error when channel FAILED" time="2.293" classname="public API throws invalid channel state error when channel FAILED">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin public write API throws invalid channel state error when channel SUSPENDED" time="2.210" classname="public write API throws invalid channel state error when channel SUSPENDED">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin object message publish respects connectionDetails.maxMessageSize" time="0.762" classname="object message publish respects connectionDetails.maxMessageSize">
      <failure message="Expected async function to throw an error: expected undefined to exist" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertExist@http://localhost:3000/node_modules/chai/chai.js:1237:10
propertyGetter@http://localhost:3000/node_modules/chai/chai.js:7985:29
proxyGetter@http://localhost:3000/node_modules/chai/chai.js:9025:22
expectToThrowAsync@http://localhost:3000/test/realtime/objects.test.js:85:11
async*@http://localhost:3000/test/realtime/objects.test.js:4511:31
async*monitorConnectionAsync@http://localhost:3000/test/common/modules/shared_helper.js:187:51
monitorConnectionThenCloseAndFinishAsync@http://localhost:3000/test/common/modules/shared_helper.js:519:20
@http://localhost:3000/test/realtime/objects.test.js:4480:22
]]></failure>
    </testcase>
  </testsuite>
  <testsuite name="ObjectMessage message size" timestamp="2025-05-02T13:24:07" tests="19" time="6.478" failures="8">
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size client id" time="0.001" classname="client id">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size extras" time="0.000" classname="extras">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size object id" time="0.000" classname="object id">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op no payload" time="0.001" classname="map create op no payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with object payload" time="0.001" classname="map create op with object payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with string payload" time="0.000" classname="map create op with string payload">
      <failure message="expected 5 to equal 13" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
@http://localhost:3000/test/realtime/objects.test.js:4739:56
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

      -5
      +13
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with bytes payload" time="0.001" classname="map create op with bytes payload">
      <failure message="expected 5 to equal 13" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
@http://localhost:3000/test/realtime/objects.test.js:4739:56
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

      -5
      +13
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map create op with boolean payload" time="0.000" classname="map create op with boolean payload">
      <failure message="expected 5 to equal 6" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
@http://localhost:3000/test/realtime/objects.test.js:4739:56
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

      -5
      +6
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map remove op" time="0.000" classname="map remove op">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=object" time="0.000" classname="map set operation value=object">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=string" time="0.001" classname="map set operation value=string">
      <failure message="expected 6 to equal 14" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
@http://localhost:3000/test/realtime/objects.test.js:4739:56
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

      -6
      +14
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=bytes" time="0.000" classname="map set operation value=bytes">
      <failure message="expected 6 to equal 14" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
@http://localhost:3000/test/realtime/objects.test.js:4739:56
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

      -6
      +14
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=boolean" time="0.000" classname="map set operation value=boolean">
      <failure message="expected 6 to equal 7" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
@http://localhost:3000/test/realtime/objects.test.js:4739:56
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

      -6
      +7
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map set operation value=double" time="0.000" classname="map set operation value=double">
      <failure message="expected 6 to equal 14" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
@http://localhost:3000/test/realtime/objects.test.js:4739:56
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

      -6
      +14
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size map object" time="0.000" classname="map object">
      <failure message="expected 15 to equal 49" type="AssertionError"><![CDATA[AssertionError@http://localhost:3000/node_modules/chai/chai.js:9227:13
[3]</module.exports/Assertion.prototype.assert@http://localhost:3000/node_modules/chai/chai.js:253:13
assertEqual@http://localhost:3000/node_modules/chai/chai.js:1438:12
methodWrapper@http://localhost:3000/node_modules/chai/chai.js:7910:25
@http://localhost:3000/test/realtime/objects.test.js:4739:56
forScenarios/<@http://localhost:3000/test/realtime/objects.test.js:57:17


      + expected - actual

      -15
      +49
      ]]></failure>
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter create op no payload" time="0.000" classname="counter create op no payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter create op with payload" time="0.000" classname="counter create op with payload">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter inc op" time="0.001" classname="counter inc op">
    </testcase>
    <testcase name="realtime/objects Realtime with Objects plugin ObjectMessage message size counter object" time="0.000" classname="counter object">
    </testcase>
  </testsuite>
</testsuites>