It is common practice to isolate tests from each other. There are test suites that run tests in random order to make sure that users don't rely on any order.
So if your second test checks that an added node can be deleted, it should ensure that this element is available. Probably something like this:
exports.add = function(test) {
nodemanager.add({
name : 'my name'
}, function(node) {
test.ok(node && node.id, 'Failed to get added node\'s info');
test.done();
});
}
exports.del = function(test) {
nodemanager.add({
name : 'my name'
}, function(addedNode) {
nodemanager.del(addedNode, function(deletedNode) {
test.ok(deletedNode, 'Deleted node is null');
test.done()
});
});
}
Of course this solution has another problem: If nodemanager.add breaks your del test will fail, too. However, I think that's acceptable here, if it is hard to mock the add behavior here.