76 lines
1.7 KiB
JavaScript
76 lines
1.7 KiB
JavaScript
import actions from '../src/store/actions';
|
|
import getters from '../src/store/getters';
|
|
import mutations from '../src/store/mutations';
|
|
import trueState from '../src/store/state';
|
|
|
|
const countries = [
|
|
{
|
|
name: 'Colombia',
|
|
capital: 'Bogotá',
|
|
},
|
|
{
|
|
name: 'Romania',
|
|
capital: 'Bucharest',
|
|
},
|
|
];
|
|
const state = { countries };
|
|
let url = '';
|
|
let mockError = false;
|
|
|
|
jest.mock('axios', () => ({
|
|
get: (_url) => {
|
|
return new Promise((resolve) => {
|
|
if (mockError) throw Error();
|
|
url = _url;
|
|
resolve(true);
|
|
});
|
|
},
|
|
}));
|
|
|
|
const commit = jest.fn();
|
|
commit.mockReturnValue('SET_COUNTRIES', countries);
|
|
|
|
describe('actions', () => {
|
|
actions.getCountries({ commit });
|
|
|
|
it('url check', () => {
|
|
expect.assertions(2);
|
|
expect(url).toBeDefined();
|
|
expect(url).toBe('https://restcountries.eu/rest/v2/all');
|
|
});
|
|
|
|
it('commit', () => {
|
|
expect.assertions(2);
|
|
expect(commit).toBeCalled();
|
|
expect(commit).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|
|
|
|
describe('getters', () => {
|
|
const testGetters = getters.allCountries(state);
|
|
it('returns countries', () => {
|
|
expect.assertions(2);
|
|
expect(testGetters).toBeDefined();
|
|
expect(testGetters).toEqual(state.countries);
|
|
});
|
|
});
|
|
|
|
describe('mutations', () => {
|
|
it('adds countries to the state', () => {
|
|
expect.assertions(2);
|
|
mutations.SET_COUNTRIES(state, countries);
|
|
expect(mutations).toBeDefined();
|
|
expect(state).toEqual({
|
|
countries,
|
|
});
|
|
});
|
|
});
|
|
describe('state', () => {
|
|
it('state exists and has countries', () => {
|
|
expect.assertions(3);
|
|
expect(trueState).toBeDefined();
|
|
expect(trueState).toHaveProperty('countries');
|
|
expect(trueState).not.toHaveProperty('cats');
|
|
});
|
|
});
|