diff --git a/scripts/frontend/quarantined_vue3_specs.txt b/scripts/frontend/quarantined_vue3_specs.txt index d975e1362f342388cc33e9633cbbff47b00ba74d..ab0b0541b2061887f2f5b04bbe9faea487720085 100644 --- a/scripts/frontend/quarantined_vue3_specs.txt +++ b/scripts/frontend/quarantined_vue3_specs.txt @@ -143,7 +143,6 @@ spec/frontend/design_management/components/design_notes/design_reply_form_spec.j spec/frontend/design_management/components/design_overlay_spec.js spec/frontend/design_management/pages/design/index_spec.js spec/frontend/design_management/pages/index_spec.js -spec/frontend/design_management/router_spec.js spec/frontend/diffs/components/diff_line_note_form_spec.js spec/frontend/diffs/components/image_diff_overlay_spec.js spec/frontend/editor/components/source_editor_toolbar_spec.js diff --git a/spec/frontend/design_management/router_spec.js b/spec/frontend/design_management/router_spec.js index 3503725f7410909141b7848f226db952d5b7b32e..efb2d1f43c5e025edc61a3a484c77a0c404770dc 100644 --- a/spec/frontend/design_management/router_spec.js +++ b/spec/frontend/design_management/router_spec.js @@ -1,58 +1,48 @@ -import { mount } from '@vue/test-utils'; -import Vue, { nextTick } from 'vue'; -import VueRouter from 'vue-router'; +import { shallowMount } from '@vue/test-utils'; +import { nextTick } from 'vue'; import App from '~/design_management/components/app.vue'; import DesignDetail from '~/design_management/pages/design/index.vue'; import Designs from '~/design_management/pages/index.vue'; import createRouter from '~/design_management/router'; import { DESIGNS_ROUTE_NAME, DESIGN_ROUTE_NAME } from '~/design_management/router/constants'; import '~/commons/bootstrap'; +import { getMatchedComponents } from '~/lib/utils/vue3compat/vue_router'; -function factory(routeArg) { - Vue.use(VueRouter); +let router; - const router = createRouter('/'); +async function factory(routeArg) { + router = createRouter('/'); if (routeArg !== undefined) { - router.push(routeArg); + await router.push(routeArg); } - return mount(App, { + return shallowMount(App, { router, - provide: { issueIid: '1' }, - stubs: { Toolbar: true }, - mocks: { - $apollo: { - queries: { - designCollection: { loading: true }, - design: { loading: true }, - permissions: { loading: true }, - }, - mutate: jest.fn(), - }, - }, }); } describe('Design management router', () => { describe.each([['/'], [{ name: DESIGNS_ROUTE_NAME }]])('root route', (routeArg) => { - it('pushes home component', () => { - const wrapper = factory(routeArg); - - expect(wrapper.findComponent(Designs).exists()).toBe(true); + it('pushes home component', async () => { + await factory(routeArg); + const components = getMatchedComponents(router, router.currentRoute.path); + expect(components).toEqual([Designs]); }); }); describe.each([['/designs/1'], [{ name: DESIGN_ROUTE_NAME, params: { id: '1' } }]])( 'designs detail route', (routeArg) => { - it('pushes designs detail component', () => { - const wrapper = factory(routeArg); + it('pushes designs detail component', async () => { + await factory(routeArg); + await nextTick(); + + const route = router.currentRoute; + const matchedComponents = getMatchedComponents(router, route.path); + const propsData = route.matched[0].props.default({ params: { id: '1' } }); - return nextTick().then(() => { - const detail = wrapper.findComponent(DesignDetail); - expect(detail.exists()).toBe(true); - expect(detail.props('id')).toEqual('1'); - }); + expect(matchedComponents).toEqual([DesignDetail]); + expect(propsData).toEqual({ id: '1' }); }); }, );