For macro-tasks we can use as an example the following code:
it('Async test example - setTimeout() with flush()', fakeAsync(() => {
let test = false;
setTimeout(() => { });
setTimeout(() => {
test = true;
expect(test).toBeTruthy();
}, 1000);
flush();
}));
Now we could cover both scenarios, using the micro-macro tasks: