it('should fail if no worker is supplied', (done) => {
   messages.workerSendMessage({ none: null }).then(() => {
     assert.fail(method, method, badSuccess);
     done(`${method} ${badSuccess}`);
   }).catch(() => {
     // worked.
     done();
   });
 });
      it('should use worker onmessage if message channel does not exist, success', (done) => {
        const worker = mockWorker.createWorker({
          onmessage: true
        });

        messages.workerSendMessage({ empty: null }, worker).then((data) => {
          expect(data.handled).to.equal(mockWorker.handled.worker);
          done();
        }).catch(done);
      });
      it('should use message channel if exists, success', (done) => {
        // give the shared object to the mock worker.
        const worker = mockWorker.createWorker({
          messageChannel: messageChannel
        });

        messages.workerSendMessage({ empty: null }, worker).then((data) => {
          expect(data.handled).to.equal(mockWorker.handled.messageChannel);
          done();
        }).catch(done);
      });
    it('should fall through if no messaging handler', (done) => {
      // Make sure serviceWorker doesn't show up in jsdom
      expect(global.navigator.serviceWorker).to.not.exist;
      expect(global.window.navigator.serviceWorker).to.not.exist;

      const worker = mockWorker.createWorker();
      messages.workerSendMessage({ none: null }, worker).then(() => {
        assert.fail(method, method, badSuccess);
        done(`${method} ${badSuccess}`);
      }, () => {
        // reject called because no serviceWorker on jsdom
        done();
      }).catch(done);
    });
      it('should use worker onmessage if message channel does not exist, failure', (done) => {
        const worker = mockWorker.createWorker({
          onmessage: true,
          simulateError: true
        });

        messages.workerSendMessage({ empty: null }, worker).then(() => {
          assert.fail(method, method, badSuccess);
          done(`${method} ${badSuccess}`);
        }, (error) => {
          expect(error).to.be.true;
          done();
        }).catch(done);
      });
      it('should use message channel if exists, failure', (done) => {
        // give the shared object to the mock worker.
        const worker = mockWorker.createWorker({
          messageChannel: messageChannel,
          simulateError: true
        });

        messages.workerSendMessage({ empty: null }, worker).then(() => {
          assert.fail(method, method, badSuccess);
          done(`${method} ${badSuccess}`);
        }, (error) => {
          expect(error).to.be.true;
          done();
        }).catch((error) => {
          done(error);
        });
      });