Я не знаю, как оно их выполняет, но похоже, что асинхронно. Потому что если тесты меняют один глобальный объект, это происходит в непредсказуемом для меня порядке. Тесты рушатся, потому что следующий уже поменял объект, до того как предыдущий отработал.
А я хочу самого простого варианта - чтобы функции it() исполнялись строго один за другим. Чтобы им можно было последовательно скармливать один тестовый объект, и чтобы в каждом следующем можно было использовать результат предыдущего.
update
Схематично есть вот такие тесты:
describe('...', function () {
console.log(1);
it('aaa', function () {
console.log(2);
// ...
});
console.log(3);
it('bbb', function () {
console.log(4);
// ...
});
console.log(5);
it('ccc', function () {
console.log(6);
// ...
});
В консоли:
1
3
5
2
4
6