test writing

attempts shall be made
`done` needs to be called AFTER all the `setTimeout` calls trigger. e.g.

```javascript
middlware({ }, { }, function() {
	expect(mdlware3).to.be.calledAfter(mdlware2);
	expect(mdlware2).to.be.calledAfter(mdlware1);
	expect(mdlware1).to.be.calledOnce;
	done();
});
```

You can remove all the hacky setTimeout/expect pairs with this.