Jasmine (mocha) nested "it" tests
I would have two tests for that. One that is testing insert and one that tests remove.
Should look something like this in coffeescript
describe 'Item model', () -> item = '' before (done) -> item = new Item {name: {first: "Alex"}} done describe 'When inserting Item', () -> before (done) -> item.save done it 'should have been insterted' -> #CHECK HERE IT IF IT IS INSERTED decribe 'when deleting', () -> before (done) -> item.save (err,data) -> return done err if err Item.delete {_id: data.id}, done it 'should have been deleted' -> #CHECK HERE IT IF IT IS Deleted
See this issue:https://github.com/visionmedia/mocha/issues/438
Seems that the intention is to force tests to be de-coupled. While inconvenient and possibly requiring more mocking, this behavior is useful because it requires less re-testing and provides a clearer image of exactly what is going wrong.
i.e. there are 2 tests, test A and test B, where B is dependent on A.
Test A breaks, B therefore breaking as well. You fix what is breaking test A, but may now be surprised to find that test B broke either in the process of your fix, or for an unrelated reason.
When the tests do not rely on each other, you have better information and fewer surprises.
I've had a similar issue and when I tried a nested describe/it structure it actually worked.
describe('Item Model', () => { it('should be able to create item', done => { var item = new Item({name: {first: "Alex"}); item.save(function(err, data){ describe('Item Delete', () => { it('should be able to deleted created item', done => { Item.delete({_id: data.id}, function(err, data){ done(err); }); }); }); }); });});