typescript - cypress efter att alla hooks körts innan asynkront anrop slutförs


I mitt test har jag ett asynkront funktionsanrop

describe('a', () => {

    after(() => {
        console.log('after call');
    });

    it('a', () => {
        myAsyncFunction().then(() => {
            console.log('async call');
        });
    });

});

När man tittar på konsolen är det först after call och sedan async call.

Hur får man after att kallas verkligen efter att alla asynkrona anrop har avslutats?

Svar #1

Du kan skicka Mochas done()-metod och kalla på den inuti det asynkrona svaret

describe('a', () => {

    after(() => {
        console.log('after call');
    });

    it('a', (done) => {
        myAsyncFunction().then(() => {
            console.log('async call');
            done();                   // test finishes only after this call is made
                                      // then after() is called
        });
    });

});