茉莉花-异步断言不会调用router.navigate

时间:2019-02-06 21:17:17

标签: angular jasmine

使用Jasmine 3.3.0和Angular 7。

因此,我需要在it规范内运行一些异步断言。问题是当我提供router.navigate回调时,done永远不会执行。我可以使用完全相同的代码,但是取出done回调并执行router.navigate。所有值都是我期望的值,但是Jasmine说它没有断言,因为expect语句在测试已经完成之后执行。

下面是我的测试不起作用。我在做什么错了?

fdescribe('#PagesModule', () => {
  describe('#Impersonate', () => {
    fit('should allow DISTRICT_ADMIN.', (done) => {
      inject([AuthGuard], (guard: AuthGuard) => {
        const spy = spyOn(guard, 'canActivate');
        store.dispatch(StoreActions.User.setCurrentUser(TestObjects.createUser(SystemRoles.DISTRICT_ADMIN)));

        console.log('test'); // I see this in the console.

        // this never executes??
        router.navigate(['/pages/impersonate']).then((value) => {
          expect(value).toBeTruthy();
          expect(spy).toHaveBeenCalled();
          expect(router.url).toBe('/pages/impersonate');
          console.log('hello?');
          done();
        });
      })();
    });
  })
});

0 个答案:

没有答案