diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 21:42:06 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 21:42:06 +0300 |
commit | 6e4e1050d9dba2b7b2523fdd1768823ab85feef4 (patch) | |
tree | 78be5963ec075d80116a932011d695dd33910b4e /spec/frontend/design_management_legacy/router_spec.js | |
parent | 1ce776de4ae122aba3f349c02c17cebeaa8ecf07 (diff) |
Add latest changes from gitlab-org/gitlab@13-3-stable-ee
Diffstat (limited to 'spec/frontend/design_management_legacy/router_spec.js')
-rw-r--r-- | spec/frontend/design_management_legacy/router_spec.js | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/spec/frontend/design_management_legacy/router_spec.js b/spec/frontend/design_management_legacy/router_spec.js new file mode 100644 index 00000000000..5f62793a243 --- /dev/null +++ b/spec/frontend/design_management_legacy/router_spec.js @@ -0,0 +1,82 @@ +import { mount, createLocalVue } from '@vue/test-utils'; +import { nextTick } from 'vue'; +import VueRouter from 'vue-router'; +import App from '~/design_management_legacy/components/app.vue'; +import Designs from '~/design_management_legacy/pages/index.vue'; +import DesignDetail from '~/design_management_legacy/pages/design/index.vue'; +import createRouter from '~/design_management_legacy/router'; +import { + ROOT_ROUTE_NAME, + DESIGNS_ROUTE_NAME, + DESIGN_ROUTE_NAME, +} from '~/design_management_legacy/router/constants'; +import '~/commons/bootstrap'; + +function factory(routeArg) { + const localVue = createLocalVue(); + localVue.use(VueRouter); + + window.gon = { sprite_icons: '' }; + + const router = createRouter('/'); + if (routeArg !== undefined) { + router.push(routeArg); + } + + return mount(App, { + localVue, + router, + mocks: { + $apollo: { + queries: { + designs: { loading: true }, + design: { loading: true }, + permissions: { loading: true }, + }, + mutate: jest.fn(), + }, + }, + }); +} + +jest.mock('mousetrap', () => ({ + bind: jest.fn(), + unbind: jest.fn(), +})); + +describe('Design management router', () => { + afterEach(() => { + window.location.hash = ''; + }); + + describe.each([['/'], [{ name: ROOT_ROUTE_NAME }]])('root route', routeArg => { + it('pushes home component', () => { + const wrapper = factory(routeArg); + + expect(wrapper.find(Designs).exists()).toBe(true); + }); + }); + + describe.each([['/designs'], [{ name: DESIGNS_ROUTE_NAME }]])('designs route', routeArg => { + it('pushes designs root component', () => { + const wrapper = factory(routeArg); + + expect(wrapper.find(Designs).exists()).toBe(true); + }); + }); + + describe.each([['/designs/1'], [{ name: DESIGN_ROUTE_NAME, params: { id: '1' } }]])( + 'designs detail route', + routeArg => { + it('pushes designs detail component', () => { + const wrapper = factory(routeArg); + + return nextTick().then(() => { + const detail = wrapper.find(DesignDetail); + expect(detail.exists()).toBe(true); + expect(detail.props('id')).toEqual('1'); + }); + }); + }, + ); +}); |