test.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. 'use strict';
  2. var assert = require('assert');
  3. var runAsync = require('./index');
  4. describe('runAsync', function () {
  5. it('run synchronous method', function (done) {
  6. var aFunc = function () {
  7. return 'pass1';
  8. };
  9. runAsync(aFunc, function (val) {
  10. assert.equal(val, 'pass1');
  11. done();
  12. });
  13. });
  14. it('run asynchronous method', function (done) {
  15. var aFunc = function () {
  16. var returns = this.async();
  17. setTimeout(returns.bind(null, 'pass2'), 0);
  18. };
  19. runAsync(aFunc, function (val) {
  20. assert.equal(val, 'pass2');
  21. done();
  22. });
  23. });
  24. it('pass arguments', function (done) {
  25. var aFunc = function (a, b) {
  26. assert.equal(a, 1);
  27. assert.equal(b, 'bar');
  28. return 'pass1';
  29. };
  30. runAsync(aFunc, function (val) {
  31. done();
  32. }, 1, 'bar');
  33. });
  34. it('allow only callback once', function (done) {
  35. var aFunc = function () {
  36. var returns = this.async();
  37. returns();
  38. returns();
  39. };
  40. runAsync(aFunc, function (val) {
  41. done();
  42. });
  43. });
  44. });