Open
Description
🐛 Bug Report
To Reproduce
Steps to reproduce the behavior:
- Using a new Angular project with jest set up, run the following test:
import { fakeAsync, tick } from '@angular/core/testing';
class TestService {
constructor(private dependency: any) {}
doSomething() {
this.dependency.getPromise().then(() => this.dependency.run());
}
}
describe('TestService', () => {
let dependency;
let testService: TestService;
beforeEach(() => {
dependency = {
run: jest.fn(),
getPromise: jest.fn()
};
testService = new TestService(dependency);
});
it('this fails', fakeAsync(() => {
dependency.getPromise.mockResolvedValue('arbitrary');
testService.doSomething();
tick();
expect(dependency.run).toHaveBeenCalled();
}));
it('this passes', fakeAsync(() => {
dependency.getPromise.mockImplementation(() => Promise.resolve('arbitrary'));
testService.doSomething();
tick();
expect(dependency.run).toHaveBeenCalled();
}));
});
Expected behavior
Both tests should pass
Link to repl or repo (highly encouraged)
https://github.com/aziparu/angular-jest
envinfo
System:
OS: macOS 10.15.7
CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
Binaries:
Node: 12.10.0 - ~/.nodenv/versions/12.10.0/bin/node
Yarn: 1.22.4 - ~/.nodenv/versions/12.10.0/bin/yarn
npm: 6.14.11 - ~/.nodenv/versions/12.10.0/bin/npm
npmPackages:
jest: ^26.6.3 => 26.6.3