storj/web/satellite/tests/unit/components/header/AccountDropdown.spec.ts
VitaliiShpital 1ec5eb06bd web/satellite: account dropdown reworked
Change-Id: I415f77c7c13546f467da62fc13feb2774dd54290
2020-05-14 17:08:02 +00:00

63 lines
1.7 KiB
TypeScript

// Copyright (C) 2020 Storj Labs, Inc.
// See LICENSE for copying information.
import sinon from 'sinon';
import Vuex from 'vuex';
import AccountDropdown from '@/components/header/AccountDropdown.vue';
import { RouteConfig, router } from '@/router';
import { appStateModule } from '@/store/modules/appState';
import { createLocalVue, mount } from '@vue/test-utils';
const localVue = createLocalVue();
localVue.use(Vuex);
const store = new Vuex.Store({ modules: { appStateModule }});
describe('AccountDropdown', () => {
it('renders correctly', (): void => {
const wrapper = mount(AccountDropdown, {
store,
localVue,
router,
});
expect(wrapper).toMatchSnapshot();
});
it('renders correctly if on onBoarding tour', async (): Promise<void> => {
const wrapper = mount(AccountDropdown, {
store,
localVue,
router,
});
await router.push(RouteConfig.OnboardingTour.path);
expect(wrapper).toMatchSnapshot();
});
it('router works correctly', async (): Promise<void> => {
const routerSpy = sinon.spy();
const wrapper = mount(AccountDropdown, {
store,
localVue,
router,
methods: {
onAccountSettingsClick: routerSpy,
onLogoutClick: routerSpy,
},
});
await router.push(RouteConfig.ProjectDashboard.path);
await wrapper.find('.settings').trigger('click');
expect(routerSpy.callCount).toBe(1);
await wrapper.find('.logout').trigger('click');
expect(routerSpy.callCount).toBe(2);
});
});