message-queue-test.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 'use strict';
  2. var chai = require('chai');
  3. var expect = chai.expect;
  4. var createMessageQueue = require('../src/message-queue');
  5. chai.config.includeStack = true;
  6. describe('Message Queue Tests', function() {
  7. var queue;
  8. beforeEach(function() {
  9. queue = createMessageQueue();
  10. });
  11. it('Should Add item to queue', function() {
  12. expect(queue._instantQueue).to.deep.equal([]);
  13. queue.insert('value1');
  14. expect(queue._instantQueue).to.deep.equal(['value1']);
  15. queue.insert('value2');
  16. expect(queue._instantQueue).to.deep.equal(['value2', 'value1']);
  17. });
  18. it('Should Pull items from a queue', function(done) {
  19. queue.insert('value1');
  20. queue.insert('value2');
  21. queue.get(function(value) {
  22. expect(value).to.be.equal('value1');
  23. queue.get(function(value) {
  24. expect(value).to.be.equal('value2');
  25. expect(queue._instantQueue).to.deep.equal([]);
  26. done();
  27. });
  28. });
  29. });
  30. it('Should Add delayed items', function(done) {
  31. queue.insert('value1', 300);
  32. queue.insert('value2', 100);
  33. queue.insert('value3');
  34. queue.get(function(value) {
  35. expect(value).to.be.equal('value3');
  36. queue.get(function(value) {
  37. expect(value).to.be.equal('value2');
  38. queue.get(function(value) {
  39. expect(value).to.be.equal('value1');
  40. done();
  41. });
  42. });
  43. });
  44. });
  45. });