node package manager

mocha-series

mocha-series

Separate Mocha it blocks into discrete stages

Usage

var series = require("mocha-series");
 
describe("examples", function() {
 
  series("Pending series");
 
  series("This should pass", function(step) {
 
    step("Passing sync step", function() {
 
    });
 
    step("Passing async step", function(done) {
      setTimeout(done, 100);
    });
 
  });
 
  series("This should fail on its third step", function(step) {
 
    step("Passing sync step", function() {
 
    });
 
    step("Passing async step", function(done) {
      setTimeout(done, 100);
    });
 
    step("Failing sync step", function() {
      throw new Error("My error message");
    });
 
  });
 
  series("This should fail on its third step", function(step) {
 
    step("Passing sync step", function() {
 
    });
 
    step("Passing async step", function(done) {
      setTimeout(done, 100);
    });
 
    step("Async step yielding an error", function(done) {
      setTimeout(function() {
        return done(new Error("My error message"));
      }, 100)
    });
 
  });
 
  series("This should fail on its third step", function(step) {
 
    step("Passing sync step", function() {
 
    });
 
    step("Passing async step", function(done) {
      setTimeout(done, 100);
    });
 
    step("Async step throwing during sync portion", function(done) {
      throw new Error("My error message");
    });
 
  });
 
  series("This should fail on its third step", function(step) {
 
    step("Passing sync step", function() {
 
    });
 
    step("Passing async step", function(done) {
      setTimeout(done, 100);
    });
 
    step("Async step throwing during async portion", function(done) {
      setTimeout(function() {
        throw new Error("My error message");
      });
    });
 
  });
});