enqueue.test.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. 'use strict'
  2. const { test } = require('tap')
  3. const enqueue = require('../../../../lib/client/request-queue/enqueue')
  4. test('rejects new requests if size is exceeded', async t => {
  5. const q = { _queue: { size: 5 }, size: 5 }
  6. const result = enqueue.call(q, 'foo', 'bar', {}, {})
  7. t.notOk(result)
  8. })
  9. test('rejects new requests if queue is frozen', async t => {
  10. const q = { _queue: { size: 0 }, size: 5, _frozen: true }
  11. const result = enqueue.call(q, 'foo', 'bar', {}, {})
  12. t.notOk(result)
  13. })
  14. test('adds a request and returns if no timeout', async t => {
  15. const q = {
  16. _queue: {
  17. size: 0,
  18. add (obj) {
  19. t.same(obj, {
  20. message: 'foo',
  21. expect: 'bar',
  22. emitter: 'baz',
  23. cb: 'bif'
  24. })
  25. }
  26. },
  27. _frozen: false,
  28. timeout: 0
  29. }
  30. const result = enqueue.call(q, 'foo', 'bar', 'baz', 'bif')
  31. t.ok(result)
  32. })
  33. test('adds a request and returns timer not set', async t => {
  34. const q = {
  35. _queue: {
  36. size: 0,
  37. add (obj) {
  38. t.same(obj, {
  39. message: 'foo',
  40. expect: 'bar',
  41. emitter: 'baz',
  42. cb: 'bif'
  43. })
  44. }
  45. },
  46. _frozen: false,
  47. timeout: 100,
  48. _timer: null
  49. }
  50. const result = enqueue.call(q, 'foo', 'bar', 'baz', 'bif')
  51. t.ok(result)
  52. })
  53. test('adds a request, returns true, and clears queue', t => {
  54. // Must not be an async test due to an internal `setTimeout`
  55. t.plan(4)
  56. const q = {
  57. _queue: {
  58. size: 0,
  59. add (obj) {
  60. t.same(obj, {
  61. message: 'foo',
  62. expect: 'bar',
  63. emitter: 'baz',
  64. cb: 'bif'
  65. })
  66. }
  67. },
  68. _frozen: false,
  69. timeout: 5,
  70. _timer: 123,
  71. freeze () { t.pass() },
  72. purge () { t.pass() }
  73. }
  74. const result = enqueue.call(q, 'foo', 'bar', 'baz', 'bif')
  75. t.ok(result)
  76. })