84 lines
3.4 KiB
JavaScript
84 lines
3.4 KiB
JavaScript
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
|
|
import YourWorkProjectsApp from '~/projects/your_work/components/app.vue';
|
|
import { PROJECT_DASHBOARD_TABS, FIRST_TAB_ROUTE_NAMES } from '~/projects/your_work/constants';
|
|
import TabsWithList from '~/groups_projects/components/tabs_with_list.vue';
|
|
import {
|
|
FILTERED_SEARCH_TOKEN_LANGUAGE,
|
|
FILTERED_SEARCH_TOKEN_MIN_ACCESS_LEVEL,
|
|
PAGINATION_TYPE_KEYSET,
|
|
} from '~/groups_projects/constants';
|
|
import { RECENT_SEARCHES_STORAGE_KEY_PROJECTS } from '~/filtered_search/recent_searches_storage_keys';
|
|
import {
|
|
SORT_OPTIONS,
|
|
SORT_OPTION_UPDATED,
|
|
SORT_OPTION_CREATED,
|
|
FILTERED_SEARCH_TERM_KEY,
|
|
FILTERED_SEARCH_NAMESPACE,
|
|
} from '~/projects/filtered_search_and_sort/constants';
|
|
import projectCountsQuery from '~/projects/your_work/graphql/queries/project_counts.query.graphql';
|
|
import {
|
|
TIMESTAMP_TYPE_CREATED_AT,
|
|
TIMESTAMP_TYPE_LAST_ACTIVITY_AT,
|
|
} from '~/vue_shared/components/resource_lists/constants';
|
|
import { programmingLanguages } from 'jest/groups_projects/components/mock_data';
|
|
|
|
describe('YourWorkProjectsApp', () => {
|
|
let wrapper;
|
|
|
|
const defaultPropsData = {
|
|
initialSort: 'created_desc',
|
|
programmingLanguages,
|
|
};
|
|
|
|
const createComponent = () => {
|
|
wrapper = shallowMountExtended(YourWorkProjectsApp, { propsData: defaultPropsData });
|
|
};
|
|
|
|
beforeEach(() => {
|
|
createComponent();
|
|
});
|
|
|
|
it('renders TabsWithList component and passes correct props', () => {
|
|
expect(wrapper.findComponent(TabsWithList).props()).toEqual({
|
|
tabs: PROJECT_DASHBOARD_TABS,
|
|
filteredSearchSupportedTokens: [
|
|
FILTERED_SEARCH_TOKEN_LANGUAGE,
|
|
FILTERED_SEARCH_TOKEN_MIN_ACCESS_LEVEL,
|
|
],
|
|
filteredSearchTermKey: FILTERED_SEARCH_TERM_KEY,
|
|
filteredSearchNamespace: FILTERED_SEARCH_NAMESPACE,
|
|
filteredSearchRecentSearchesStorageKey: RECENT_SEARCHES_STORAGE_KEY_PROJECTS,
|
|
filteredSearchInputPlaceholder: 'Filter or search (3 character minimum)',
|
|
sortOptions: SORT_OPTIONS,
|
|
defaultSortOption: SORT_OPTION_UPDATED,
|
|
timestampTypeMap: {
|
|
[SORT_OPTION_CREATED.value]: TIMESTAMP_TYPE_CREATED_AT,
|
|
[SORT_OPTION_UPDATED.value]: TIMESTAMP_TYPE_LAST_ACTIVITY_AT,
|
|
},
|
|
firstTabRouteNames: FIRST_TAB_ROUTE_NAMES,
|
|
initialSort: defaultPropsData.initialSort,
|
|
programmingLanguages: defaultPropsData.programmingLanguages,
|
|
eventTracking: {
|
|
filteredSearch: {
|
|
[FILTERED_SEARCH_TERM_KEY]: 'search_on_your_work_projects',
|
|
[FILTERED_SEARCH_TOKEN_LANGUAGE]: 'filter_by_language_on_your_work_projects',
|
|
[FILTERED_SEARCH_TOKEN_MIN_ACCESS_LEVEL]: 'filter_by_role_on_your_work_projects',
|
|
},
|
|
pagination: 'click_pagination_on_your_work_projects',
|
|
tabs: 'click_tab_on_your_work_projects',
|
|
sort: 'click_sort_on_your_work_projects',
|
|
clickStat: 'click_stat_on_your_work_projects',
|
|
hoverStat: 'hover_stat_on_your_work_projects',
|
|
hoverVisibility: 'hover_visibility_icon_on_your_work_projects',
|
|
initialLoad: 'initial_load_on_your_work_projects',
|
|
clickItemAfterFilter: 'click_project_after_filter_on_your_work_projects',
|
|
clickTopic: 'click_topic_on_your_work_projects',
|
|
},
|
|
tabCountsQuery: projectCountsQuery,
|
|
tabCountsQueryErrorMessage: 'An error occurred loading the project counts.',
|
|
shouldUpdateActiveTabCountFromTabQuery: true,
|
|
paginationType: PAGINATION_TYPE_KEYSET,
|
|
});
|
|
});
|
|
});
|