test-subscribeOnce.js 834 B

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. var PubSub = require('../src/pubsub'),
  3. TestHelper = require('../test/helper'),
  4. assert = require('referee').assert,
  5. sinon = require('sinon');
  6. describe( 'subscribeOnce method', function() {
  7. it( 'should return PubSub', function() {
  8. var func = function(){ return undefined; },
  9. message = TestHelper.getUniqueString(),
  10. pubSub = PubSub.subscribeOnce( message , func );
  11. assert.same( pubSub, PubSub );
  12. } );
  13. it( 'must be executed only once', function() {
  14. var topic = TestHelper.getUniqueString(),
  15. spy = sinon.spy();
  16. PubSub.subscribeOnce( topic, spy );
  17. for ( var i = 0; i < 3; i++ ) {
  18. PubSub.publishSync( topic, TestHelper.getUniqueString() );
  19. }
  20. assert( spy.calledOnce );
  21. } );
  22. } );