{
  "stats": {
    "suites": 9,
    "tests": 19,
    "passes": 19,
    "pending": 0,
    "failures": 0,
    "start": "2018-12-05T15:30:59.274Z",
    "end": "2018-12-05T15:30:59.314Z",
    "duration": 40,
    "testsRegistered": 19,
    "passPercent": 100,
    "pendingPercent": 0,
    "other": 0,
    "hasOther": false,
    "skipped": 0,
    "hasSkipped": false,
    "passPercentClass": "success",
    "pendingPercentClass": "danger"
  },
  "suites": {
    "uuid": "12624b55-1a4f-4c24-9dc8-8e56f4c67a5a",
    "title": "",
    "fullFile": "",
    "file": "",
    "beforeHooks": [],
    "afterHooks": [],
    "tests": [],
    "suites": [
      {
        "uuid": "eeb46df2-9a4d-4291-9899-f4e581a0ca7e",
        "title": "Client",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/client/client.test.js",
        "file": "/src/client/client.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "integration test between client and server",
            "fullTitle": "Client integration test between client and server",
            "timedOut": false,
            "duration": 13,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug   = require('@superhero/debug'),\nlog     = new Debug({ debug:false }),\nFactory = require('../../'),\nfactory = new Factory,\nclient  = factory.createClient(log),\nserver  = factory.createServer(log),\nport    = 18200,\nevent   = 'foobar',\nbody    = { foo:'bar' }\nserver.listen(port)\nclient.connect(port)\nclient.emit(event, body)\nserver.on(event, (context, data) =>\n{\n  expect(data).to.deep.equal(body)\n  client.client.end()\n  server.server.close()\n  done()\n})",
            "err": {},
            "isRoot": false,
            "uuid": "87178988-3cf0-4850-862e-b16e47005fe3",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "possible to remove a listener",
            "fullTitle": "Client possible to remove a listener",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug     = require('@superhero/debug'),\nlog       = new Debug({ debug:false }),\nFactory   = require('../../'),\nfactory   = new Factory,\nclient    = factory.createClient(log),\nevent     = 'foobar',\nlistener  = () => {}\nexpect(client.connectionObserver.dispatcher.events.listenerCount(event)).to.deep.equal(0)\nclient.on(event, listener)\nexpect(client.connectionObserver.dispatcher.events.listenerCount(event)).to.deep.equal(1)\nclient.removeListener(event, listener)\nexpect(client.connectionObserver.dispatcher.events.listenerCount(event)).to.deep.equal(0)",
            "err": {},
            "isRoot": false,
            "uuid": "fb3327ff-3bd7-44c9-9de0-98be5e39313a",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "87178988-3cf0-4850-862e-b16e47005fe3",
          "fb3327ff-3bd7-44c9-9de0-98be5e39313a"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 14,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      },
      {
        "uuid": "aa7a82e2-f865-4f14-8e33-6a12711403bb",
        "title": "ConnectionObserver",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/connection-observer/connection-observer.test.js",
        "file": "/src/connection-observer/connection-observer.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "attach data event to dispatcher with a context",
            "fullTitle": "ConnectionObserver attach data event to dispatcher with a context",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug               = require('@superhero/debug'),\nlog                 = new Debug({ debug:false }),\nFactory             = require('../../'),\nfactory             = new Factory,\nconnectionObserver  = factory.createConnectionObserverFactory(log).create(),\nnetSocket           = factory.createNetSocket(),\ndispatcher          = connectionObserver.dispatcher,\nemitter             = connectionObserver.emitter,\ncontext             = factory.createContextFactory().create(netSocket, emitter)\nexpect(netSocket.listenerCount('data')).to.be.equal(0)\nconnectionObserver.attachDataEventToDispatcherWithAContext(netSocket, dispatcher, context)\nexpect(netSocket.listenerCount('data')).to.be.equal(1)",
            "err": {},
            "isRoot": false,
            "uuid": "102d3e09-05e6-4526-ac29-a7cfa0df97f0",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "log socket events",
            "fullTitle": "ConnectionObserver log socket events",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug               = require('@superhero/debug'),\nlog                 = new Debug({ debug:false }),\nFactory             = require('../../'),\nfactory             = new Factory,\nconnectionObserver  = factory.createConnectionObserverFactory(log).create(),\nnetSocket           = factory.createNetSocket(),\nemitter             = connectionObserver.emitter\nfor(const event of ['close','connection','drain','lookup','timeout','error'])\n  expect(event + netSocket.listenerCount(event)).to.be.equal(event + 0)\nconnectionObserver.logSocketEvents(netSocket, log)\nfor(const event of ['close','connection','drain','lookup','timeout','error'])\n  expect(event + netSocket.listenerCount(event)).to.be.equal(event + 1)",
            "err": {},
            "isRoot": false,
            "uuid": "e7d40d4c-6ff1-402f-8028-d435df84a7d2",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "the \"onConnection\" function attaches the expected listeners",
            "fullTitle": "ConnectionObserver the \"onConnection\" function attaches the expected listeners",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug               = require('@superhero/debug'),\nlog                 = new Debug({ debug:false }),\nFactory             = require('../../'),\nfactory             = new Factory,\nconnectionObserver  = factory.createConnectionObserverFactory(log).create(),\nnetSocket           = factory.createNetSocket()\nfor(const event of ['close','connection','drain','lookup','timeout','error','data'])\n  expect(event + netSocket.listenerCount(event)).to.be.equal(event + 0)\nconnectionObserver.onConnection(netSocket)\nfor(const event of ['close','connection','drain','lookup','timeout','error','data'])\n  expect(event + netSocket.listenerCount(event)).to.be.equal(event + 1)",
            "err": {},
            "isRoot": false,
            "uuid": "b19b0f31-d8ee-4a4e-82e6-d5fd3860edbb",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "102d3e09-05e6-4526-ac29-a7cfa0df97f0",
          "e7d40d4c-6ff1-402f-8028-d435df84a7d2",
          "b19b0f31-d8ee-4a4e-82e6-d5fd3860edbb"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 0,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      },
      {
        "uuid": "df3fdbda-3cc0-46a7-8fb5-6653ce1f0b5e",
        "title": "Context",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/context/context.test.js",
        "file": "/src/context/context.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "expected format",
            "fullTitle": "Context expected format",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug         = require('@superhero/debug'),\nlog           = new Debug({ debug:false }),\nFactory       = require('../../'),\nfactory       = new Factory,\nemitter       = factory.createEmitterFactory(log).create(),\nnetSocket     = factory.createNetSocket(),\ncontext       = factory.createContextFactory(log).create(netSocket, emitter),\nPayloadStack  = require('../payload-stack')\nexpect(context.socket).deep.equal(netSocket)\nexpect(context.emit).to.be.a('function')\nexpect(context.payloadStack).to.be.an.instanceof(PayloadStack)",
            "err": {},
            "isRoot": false,
            "uuid": "b25e6139-c0d7-4112-8f03-9c7bbf366294",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "b25e6139-c0d7-4112-8f03-9c7bbf366294"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 0,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      },
      {
        "uuid": "54ccc3f8-2257-4ad1-9fd6-b83b4a77ff90",
        "title": "Dispatcher",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/dispatcher/dispatcher.test.js",
        "file": "/src/dispatcher/dispatcher.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "handle error",
            "fullTitle": "Dispatcher handle error",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug                   = require('@superhero/debug'),\nlog                     = new Debug({ debug:false }),\nFactory                 = require('../../'),\nfactory                 = new Factory,\ndispatcher              = factory.createDispatcherFactory(log).create(),\nIncompleteMessageError  = require('../payload-stack/error/incomplete-message'),\nincompleteMessageError  = new IncompleteMessageError,\nerror                   = new Error,\ncallbackThrows          = dispatcher.handleError.bind(dispatcher, error),\ncallbackDoesNotThrow    = dispatcher.handleError.bind(dispatcher, incompleteMessageError)\nexpect(callbackThrows).to.throw()\nexpect(callbackDoesNotThrow).to.not.throw()",
            "err": {},
            "isRoot": false,
            "uuid": "092a6f72-299d-4019-bb73-67d11715c965",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "loop through context buffer to dispatch each message one by one",
            "fullTitle": "Dispatcher loop through context buffer to dispatch each message one by one",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug           = require('@superhero/debug'),\nlog             = new Debug({ debug:false }),\nFactory         = require('../../'),\nfactory         = new Factory,\ndispatcher      = factory.createDispatcherFactory(log).create(),\npayloadFactory  = factory.createPayloadFactory(),\nevent           = 'foobar',\nbody            = { foo:'bar' },\nbuffer          = payloadFactory.create(event, body).toBuffer(),\nemitter         = factory.createEmitterFactory(log).create(),\nport            = 18200,\nnetClient       = require('net').createConnection({ port }),\nnetServer       = require('net').createServer().listen(port),\ncontext         = factory.createContextFactory().create(netClient, emitter)\ncontext.payloadStack.push(buffer, buffer)\nnetClient.on('connect', () => dispatcher.loopThroughContextBufferToDispatchEachMessageOneByOne(context))\nlet i = 0\ndispatcher.events.on(event, (context, data) =>\n{\n  if(++i === 2)\n  {\n    expect(data).to.deep.equal(body)\n    netClient.end()\n    netServer.close()\n    done()\n  }\n})",
            "err": {},
            "isRoot": false,
            "uuid": "bfc98168-30c9-4ef5-8726-150ece98d5cc",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "092a6f72-299d-4019-bb73-67d11715c965",
          "bfc98168-30c9-4ef5-8726-150ece98d5cc"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 1,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      },
      {
        "uuid": "a1a2d997-33dc-4284-90c4-a422dd2a8cf8",
        "title": "Emitter",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/emitter/emitter.test.js",
        "file": "/src/emitter/emitter.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "write buffer to socket",
            "fullTitle": "Emitter write buffer to socket",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nDebug     = require('@superhero/debug'),\nlog       = new Debug({ debug:false }),\nFactory   = require('../../'),\nfactory   = new Factory,\nemitter   = factory.createEmitterFactory(log).create(),\nport      = 18200,\nnetClient = require('net').createConnection({ port }),\nnetServer = require('net').createServer().listen(port),\nbuffer    = Buffer.from('foobar')\nnetClient.on('connect', async () =>\n{\n  await emitter.writeBufferToSocket(netClient, buffer)\n})\nnetServer.on('connection', (socket) =>\n{\n  socket.on('data', (data) =>\n  {\n    expect(data.toString()).to.be.equal(buffer.toString())\n    socket.end()\n    netServer.close()\n  })\n})\nnetServer.on('close', () => done())",
            "err": {},
            "isRoot": false,
            "uuid": "29f2b16d-88e6-4cf3-a3dc-c7f59f8fa90f",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "emit event with data",
            "fullTitle": "Emitter emit event with data",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nFactory       = require('../../'),\nfactory       = new Factory,\npayloadStack  = factory.createPayloadStackFactory().create(),\nDebug         = require('@superhero/debug'),\nlog           = new Debug({ debug:false }),\nemitter       = factory.createEmitterFactory(log).create(),\nport          = 18200,\nnetClient     = require('net').createConnection({ port }),\nnetServer     = require('net').createServer().listen(port),\nevent         = 'foobar',\nbody          = { foo:'bar' }\nnetClient.on('connect', async () =>\n{\n  await emitter.emit(netClient, event, body)\n})\nnetServer.on('connection', (socket) =>\n{\n  socket.on('data', (data) =>\n  {\n    payloadStack.push(data)\n    const dto = payloadStack.shift()\n    expect(dto.event).to.be.equal(event)\n    expect(dto.data).to.deep.equal(body)\n    socket.end()\n    netServer.close()\n  })\n})\nnetServer.on('close', () => done())",
            "err": {},
            "isRoot": false,
            "uuid": "1c09849a-4d27-4abb-a51a-da24936d7d22",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "29f2b16d-88e6-4cf3-a3dc-c7f59f8fa90f",
          "1c09849a-4d27-4abb-a51a-da24936d7d22"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 1,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      },
      {
        "uuid": "c532bafc-1737-4251-8d66-6bce622e162c",
        "title": "Payload/Error/IncompleteMessage",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/payload-stack/error/incomplete-message.test.js",
        "file": "/src/payload-stack/error/incomplete-message.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "is of expected type",
            "fullTitle": "Payload/Error/IncompleteMessage is of expected type",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nIncompleteMessageError = require('./incomplete-message'),\nerror = new IncompleteMessageError\nexpect(error).to.be.an.instanceof(Error)",
            "err": {},
            "isRoot": false,
            "uuid": "4b848531-695b-46bb-bf8e-96001e5d0560",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "has expected error code",
            "fullTitle": "Payload/Error/IncompleteMessage has expected error code",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nIncompleteMessageError = require('./incomplete-message'),\nerror = new IncompleteMessageError\nexpect(error.code).to.be.equal('ERR_INCOMPLETE_MESSAGE')",
            "err": {},
            "isRoot": false,
            "uuid": "9843b24a-48ac-4f89-9859-49cdb93e56d4",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "4b848531-695b-46bb-bf8e-96001e5d0560",
          "9843b24a-48ac-4f89-9859-49cdb93e56d4"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 0,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      },
      {
        "uuid": "306222c3-3824-46b2-933d-0b24080253df",
        "title": "PayloadStack",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/payload-stack/payload-stack.test.js",
        "file": "/src/payload-stack/payload-stack.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "push and shift message from buffer stack",
            "fullTitle": "PayloadStack push and shift message from buffer stack",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nFactory       = require('../../'),\nfactory       = new Factory,\npayloadStack  = factory.createPayloadStackFactory().create(),\nfoo           = 'foobar',\ndata          = { foo:'bar' },\npayload       = factory.createPayloadFactory().create(foo, data),\nbuffer        = payload.toBuffer()\npayloadStack.push(buffer)\nconst message = payloadStack.shift()\nexpect(message.event).to.be.equal(foo)\nexpect(message.data).deep.equal(data)\nexpect(payloadStack.stack.length).to.be.equal(0)",
            "err": {},
            "isRoot": false,
            "uuid": "13ca0267-d5ba-44e1-ac58-8828a0e1c284",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "shift a message from the buffer stack that holds a broken message",
            "fullTitle": "PayloadStack shift a message from the buffer stack that holds a broken message",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nFactory       = require('../../'),\nfactory       = new Factory,\npayloadStack  = factory.createPayloadStackFactory().create(),\nevent         = 'foobar',\ndata          = { foo:'bar' },\npayload       = factory.createPayloadFactory().create(event, data),\nbuffer        = payload.toBuffer().slice(20),\ncallback      = payloadStack.shift.bind(payloadStack)\npayloadStack.push(buffer)\nexpect(callback).to.throw(Error).with.property('code', 'ERR_INCOMPLETE_MESSAGE')",
            "err": {},
            "isRoot": false,
            "uuid": "63aba77b-0475-4451-8e24-81fe6d5a72b4",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "13ca0267-d5ba-44e1-ac58-8828a0e1c284",
          "63aba77b-0475-4451-8e24-81fe6d5a72b4"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 1,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      },
      {
        "uuid": "8b7db464-e8ca-4398-8f53-6ba3bb3ad583",
        "title": "Payload",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/payload/payload.test.js",
        "file": "/src/payload/payload.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "is mutable",
            "fullTitle": "Payload is mutable",
            "timedOut": false,
            "duration": 1,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nevent   = 'foobar',\ndata    = { foo:'bar' },\nFactory = require('../../'),\nfactory = new Factory,\npayload = factory.createPayloadFactory().create(event, data)\npayload.event = 'barbaz'\nexpect(payload.event).to.be.equal(event)",
            "err": {},
            "isRoot": false,
            "uuid": "be86e7fc-ee76-488b-9a54-51f757dcda03",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "can be represented as a buffer",
            "fullTitle": "Payload can be represented as a buffer",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nevent   = 'foobar',\ndata    = { foo:'bar' },\nFactory = require('../../'),\nfactory = new Factory,\npayload = factory.createPayloadFactory().create(event, data)\npayload.event = 'barbaz'\nexpect(payload.toBuffer.bind(payload)).to.not.throw()",
            "err": {},
            "isRoot": false,
            "uuid": "03e4c061-4ed5-4ba8-a901-211bbc594ccd",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "buffer has a header that describes the correct length of the buffer",
            "fullTitle": "Payload buffer has a header that describes the correct length of the buffer",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nevent   = 'foobar',\ndata    = { foo:'bar' },\nFactory = require('../../'),\nfactory = new Factory,\npayload = factory.createPayloadFactory().create(event, data),\nbuffer  = payload.toBuffer(),\nlength  = buffer.readInt32BE(0),\nPayload = require('.')\nexpect(Payload.HEADER_SIZE + length).to.be.equal(buffer.length)",
            "err": {},
            "isRoot": false,
            "uuid": "e635c330-a29b-4fcf-89e6-6b875c820d2b",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "be86e7fc-ee76-488b-9a54-51f757dcda03",
          "03e4c061-4ed5-4ba8-a901-211bbc594ccd",
          "e635c330-a29b-4fcf-89e6-6b875c820d2b"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 1,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      },
      {
        "uuid": "4cbe7fa1-ce95-497a-988b-f7fa16f42467",
        "title": "Server",
        "fullFile": "/home/erik/Projects/@superhero/js.socket/src/server/server.test.js",
        "file": "/src/server/server.test.js",
        "beforeHooks": [],
        "afterHooks": [],
        "tests": [
          {
            "title": "integration test between server and client",
            "fullTitle": "Server integration test between server and client",
            "timedOut": false,
            "duration": 2,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nFactory = require('../../'),\nfactory = new Factory,\nDebug   = require('@superhero/debug'),\nlog     = new Debug({ debug:false }),\nclient  = factory.createClient(log),\nserver  = factory.createServer(log),\nport    = 18200,\nevent   = 'foobar',\nbody    = { foo:'bar' }\nserver.listen(port)\nclient.connect(port)\nclient.emit(event, body)\nserver.on(event, (context, data) =>\n{\n  expect(data).to.deep.equal(body)\n  context.emit(event, body)\n})\nclient.on(event, (context, data) =>\n{\n  expect(data).to.deep.equal(body)\n  client.client.end()\n  server.server.close()\n  done()\n})",
            "err": {},
            "isRoot": false,
            "uuid": "46ce24e5-bf36-43df-8fb9-3069b8469f05",
            "isHook": false,
            "skipped": false
          },
          {
            "title": "possible to remove a listener",
            "fullTitle": "Server possible to remove a listener",
            "timedOut": false,
            "duration": 0,
            "state": "passed",
            "speed": "fast",
            "pass": true,
            "fail": false,
            "pending": false,
            "code": "const\nFactory   = require('../../'),\nfactory   = new Factory,\nDebug     = require('@superhero/debug'),\nlog       = new Debug({ debug:false }),\nserver    = factory.createServer(log),\nevent     = 'foobar',\nlistener  = () => {}\nexpect(server.connectionObserver.dispatcher.events.listenerCount(event)).to.deep.equal(0)\nserver.on(event, listener)\nexpect(server.connectionObserver.dispatcher.events.listenerCount(event)).to.deep.equal(1)\nserver.removeListener(event, listener)\nexpect(server.connectionObserver.dispatcher.events.listenerCount(event)).to.deep.equal(0)",
            "err": {},
            "isRoot": false,
            "uuid": "9e644233-4ff0-4ecc-b06f-bf5c67c2e017",
            "isHook": false,
            "skipped": false
          }
        ],
        "suites": [],
        "passes": [
          "46ce24e5-bf36-43df-8fb9-3069b8469f05",
          "9e644233-4ff0-4ecc-b06f-bf5c67c2e017"
        ],
        "failures": [],
        "pending": [],
        "skipped": [],
        "duration": 2,
        "root": false,
        "rootEmpty": false,
        "_timeout": 2000
      }
    ],
    "passes": [],
    "failures": [],
    "pending": [],
    "skipped": [],
    "duration": 0,
    "root": true,
    "rootEmpty": true,
    "_timeout": 2000
  },
  "copyrightYear": 2018
}