regr-21.js 746 B

12345678910111213141516171819202122232425262728293031323334
  1. 'use strict'
  2. const { test } = require('tap')
  3. const { setup, connect } = require('./helper')
  4. test('after an error, outstanding packets are discarded', function (t) {
  5. t.plan(1)
  6. const s = connect(setup(), {
  7. keepalive: 1000
  8. })
  9. t.teardown(s.broker.close.bind(s.broker))
  10. const packet = {
  11. cmd: 'publish',
  12. topic: 'hello',
  13. payload: 'world'
  14. }
  15. s.broker.mq.on('hello', function (msg, cb) {
  16. t.pass('first msg received')
  17. s.inStream.destroy(new Error('something went wrong'))
  18. cb()
  19. setImmediate(() => {
  20. packet.topic = 'foo'
  21. s.inStream.write(packet)
  22. s.inStream.write(packet)
  23. })
  24. })
  25. s.broker.mq.on('foo', function (msg, cb) {
  26. t.fail('msg received')
  27. })
  28. s.inStream.write(packet)
  29. })