2020-05-08 12:07:24 +01:00
|
|
|
// Copyright (C) 2020 Storj Labs, Inc.
|
|
|
|
// See LICENSE for copying information.
|
|
|
|
|
|
|
|
import Vuex from 'vuex';
|
|
|
|
|
2020-09-22 15:12:36 +01:00
|
|
|
import AccountDropdown from '@/components/header/accountDropdown/AccountDropdown.vue';
|
2020-05-08 12:07:24 +01:00
|
|
|
|
2021-08-05 12:07:45 +01:00
|
|
|
import { router } from '@/router';
|
2020-05-08 12:07:24 +01:00
|
|
|
import { createLocalVue, mount } from '@vue/test-utils';
|
|
|
|
|
2022-04-07 12:04:24 +01:00
|
|
|
import { appStateModule } from '@/store/modules/appState';
|
|
|
|
import {makeProjectsModule} from "@/store/modules/projects";
|
|
|
|
import {makeUsersModule} from "@/store/modules/users";
|
|
|
|
import {makeAccessGrantsModule} from "@/store/modules/accessGrants";
|
|
|
|
import {makeBucketsModule} from "@/store/modules/buckets";
|
|
|
|
import {makeObjectsModule,} from "@/store/modules/objects";
|
|
|
|
import {makeNotificationsModule} from "@/store/modules/notifications";
|
|
|
|
import {makeProjectMembersModule} from "@/store/modules/projectMembers";
|
|
|
|
import {makePaymentsModule} from "@/store/modules/payments";
|
|
|
|
import {makeFilesModule} from "@/store/modules/files";
|
|
|
|
|
|
|
|
import {PaymentsMock} from "../../mock/api/payments";
|
|
|
|
import {UsersApiMock} from "../../mock/api/users";
|
|
|
|
import {ProjectsApiMock} from "../../mock/api/projects";
|
|
|
|
import {AccessGrantsMock} from "../../mock/api/accessGrants";
|
|
|
|
import {ProjectMembersApiMock} from "../../mock/api/projectMembers";
|
|
|
|
import {BucketsMock} from "../../mock/api/buckets";
|
|
|
|
|
2020-05-08 12:07:24 +01:00
|
|
|
const localVue = createLocalVue();
|
|
|
|
localVue.use(Vuex);
|
|
|
|
|
2022-04-07 12:04:24 +01:00
|
|
|
const paymentsApi = new PaymentsMock();
|
|
|
|
const usersApi = new UsersApiMock();
|
|
|
|
const projectsApi = new ProjectsApiMock();
|
|
|
|
const accessGrantsApi = new AccessGrantsMock();
|
|
|
|
const projectMembersApi = new ProjectMembersApiMock();
|
|
|
|
const bucketsApi = new BucketsMock();
|
|
|
|
|
|
|
|
const store = new Vuex.Store({ modules: {
|
|
|
|
appStateModule,
|
|
|
|
|
|
|
|
notificationsModule: makeNotificationsModule(),
|
|
|
|
accessGrantsModule: makeAccessGrantsModule(accessGrantsApi),
|
|
|
|
projectMembersModule: makeProjectMembersModule(projectMembersApi),
|
|
|
|
paymentsModule: makePaymentsModule(paymentsApi),
|
|
|
|
usersModule: makeUsersModule(usersApi),
|
|
|
|
projectsModule: makeProjectsModule(projectsApi),
|
|
|
|
bucketUsageModule: makeBucketsModule(bucketsApi),
|
|
|
|
objectsModule: makeObjectsModule(),
|
|
|
|
files: makeFilesModule(),
|
|
|
|
}});
|
2020-05-08 12:07:24 +01:00
|
|
|
|
|
|
|
describe('AccountDropdown', () => {
|
|
|
|
it('renders correctly', (): void => {
|
|
|
|
const wrapper = mount(AccountDropdown, {
|
|
|
|
store,
|
|
|
|
localVue,
|
|
|
|
router,
|
|
|
|
});
|
|
|
|
|
|
|
|
expect(wrapper).toMatchSnapshot();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('router works correctly', async (): Promise<void> => {
|
2022-04-07 12:04:24 +01:00
|
|
|
const routerSpy = jest.spyOn(router, "push");
|
2020-05-08 12:07:24 +01:00
|
|
|
const wrapper = mount(AccountDropdown, {
|
|
|
|
store,
|
|
|
|
localVue,
|
|
|
|
router,
|
|
|
|
});
|
|
|
|
|
2020-09-22 15:12:36 +01:00
|
|
|
await wrapper.find('.account-dropdown__wrap__item-container').trigger('click');
|
2020-05-08 12:07:24 +01:00
|
|
|
|
2022-04-07 12:04:24 +01:00
|
|
|
expect(routerSpy).toHaveBeenCalled();
|
2020-05-08 12:07:24 +01:00
|
|
|
});
|
|
|
|
});
|