Created
February 8, 2018 17:24
-
-
Save IsTheJack/445134f75bb48d571d56c9c5aedbfdb7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// actions.test.js | |
// Importando o arquivo onde terá a função acoplada à função testada | |
import * as punkapi from './path/to/file'; | |
// Importando o aquivo onde terá a função testada | |
import * as actions from './actions'; | |
// Arquivo com as constantes dos types usados nas actions | |
import * as types from './types'; | |
// ... | |
it('must to return success action on success', () => { | |
jest | |
.spyOn(punkapi, 'getBeers') | |
.mockImplementation(() => Promise.resolve({ data: { mock: 'mock' } })); | |
const dispatchMock = jest.fn() | |
// A função que recebe o dispatch retorna uma promise | |
// (vide implementação da função fetchBeers) | |
const promise = actions.fetchBeers()(dispatchMock); | |
// Aproveitando a promise retornada para fazer a verificação | |
// assíncrona das chamadas do dispatch | |
return promise.then(() => { | |
// Pegando o argumento da PRIMEIRA chamada do dispatch | |
const argOfFirstCall = dispatchMock.mock.calls[0][0]; | |
// Pegando o argumento da SEGUNDA chamada do dispatch | |
const argOfSecondCall = dispatchMock.mock.calls[1][0]; | |
// O argumento da PRIMEIRA chamada deve ser igual ao | |
// objeto passado pro 'toEqual' | |
expect(argOfFirstCall).toEqual({ type: types.FETCH_BEERS }); | |
// O argumento da SEGUNDA chamada deve ser igual ao | |
// objeto passado pro 'toEqual' | |
expect(argOfSecondCall).toEqual({ | |
type: types.FETCH_BEERS_SUCCESS, | |
payload: { mock: 'mock' }, | |
}); | |
}); | |
}); | |
// ... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment