У меня есть тестовые случаи:
import { loginPagePresenter } from './LoginPagePresenter'
import { apiGateway } from 'config/gatewayConfig'
import { authRepository } from './AuthRepository'
it('should update the auth repository user with the token, email and set authenticated observable when successesful api call', async () => {
const authenticatedStub = {
'success': true,
'message': 'successful login',
'email': 'a@b.com',
'token': '123'
}
apiGateway.post = jest.fn().mockResolvedValue(authenticatedStub)
loginPagePresenter.email = 'a@b.com'
loginPagePresenter.password = 'aaabbbcom'
await loginPagePresenter.submit()
expect(authRepository.user.token).toBe('123')
expect(authRepository.user.email).toBe('a@b.com')
expect(authRepository.authenticated).toBe(true)
})
it('should not update the user model when NOT successesful api call', async () => {
const notAutenticatedStub = {
'success': false,
'message': 'bad login',
'email': '',
'token': ''
}
apiGateway.post = jest.fn().mockResolvedValue(notAutenticatedStub)
loginPagePresenter.email = 'a@b.com'
loginPagePresenter.password = 'aaabbbcom'
await loginPagePresenter.submit()
expect(authRepository.user.token).toBe(null)
expect(authRepository.user.email).toBe(null)
expect(authRepository.authenticated).toEqual(false)
})
Первый тест влияет на второй тест.Другими словами, если я закомментирую первый тест, тогда второй тест работает.Я проверил код производства он работает отлично.Но насмешливая функция первого оказывает побочный эффект на второго (похоже, я не могу сбросить возвращенную разрешенную функцию).
Может кто-нибудь объяснить, как это исправить?