import Vue from 'vue'; import VueResource from 'vue-resource'; import _ from 'underscore'; import * as actions from '~/registry/stores/actions'; import * as types from '~/registry/stores/mutation_types'; import testAction from '../../helpers/vuex_action_helper'; import { defaultState, reposServerResponse, registryServerResponse, parsedReposServerResponse, } from '../mock_data'; Vue.use(VueResource); describe('Actions Registry Store', () => { let interceptor; let mockedState; beforeEach(() => { mockedState = defaultState; }); describe('server requests', () => { afterEach(() => { Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor); }); describe('fetchRepos', () => { beforeEach(() => { interceptor = (request, next) => { next(request.respondWith(JSON.stringify(reposServerResponse), { status: 200, })); }; Vue.http.interceptors.push(interceptor); }); it('should set receveived repos', (done) => { testAction(actions.fetchRepos, null, mockedState, [ { type: types.TOGGLE_MAIN_LOADING }, { type: types.SET_REPOS_LIST, payload: reposServerResponse }, ], done); }); }); describe('fetchList', () => { beforeEach(() => { interceptor = (request, next) => { next(request.respondWith(JSON.stringify(registryServerResponse), { status: 200, })); }; Vue.http.interceptors.push(interceptor); }); it('should set received list', (done) => { mockedState.repos = parsedReposServerResponse; testAction(actions.fetchList, { repo: mockedState.repos[1] }, mockedState, [ { type: types.TOGGLE_REGISTRY_LIST_LOADING }, { type: types.SET_REGISTRY_LIST, payload: registryServerResponse }, ], done); }); }); }); describe('setMainEndpoint', () => { it('should commit set main endpoint', (done) => { testAction(actions.setMainEndpoint, 'endpoint', mockedState, [ { type: types.SET_MAIN_ENDPOINT, payload: 'endpoint' }, ], done); }); }); describe('toggleLoading', () => { it('should commit toggle main loading', (done) => { testAction(actions.toggleLoading, null, mockedState, [ { type: types.TOGGLE_MAIN_LOADING }, ], done); }); }); });