diff options
Diffstat (limited to 'spec/frontend/ide/components/panes/right_spec.js')
-rw-r--r-- | spec/frontend/ide/components/panes/right_spec.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/frontend/ide/components/panes/right_spec.js b/spec/frontend/ide/components/panes/right_spec.js index 4555f519bc2..b7349b8fed1 100644 --- a/spec/frontend/ide/components/panes/right_spec.js +++ b/spec/frontend/ide/components/panes/right_spec.js @@ -3,12 +3,16 @@ import Vue, { nextTick } from 'vue'; import Vuex from 'vuex'; import CollapsibleSidebar from '~/ide/components/panes/collapsible_sidebar.vue'; import RightPane from '~/ide/components/panes/right.vue'; +import SwitchEditorsView from '~/ide/components/switch_editors/switch_editors_view.vue'; import { rightSidebarViews } from '~/ide/constants'; import { createStore } from '~/ide/stores'; import extendStore from '~/ide/stores/extend'; +import { __ } from '~/locale'; Vue.use(Vuex); +const SWITCH_EDITORS_VIEW_NAME = 'switch-editors'; + describe('ide/components/panes/right.vue', () => { let wrapper; let store; @@ -33,6 +37,19 @@ describe('ide/components/panes/right.vue', () => { wrapper = null; }); + describe('default', () => { + beforeEach(() => { + createComponent(); + }); + + it('renders collapsible-sidebar', () => { + expect(wrapper.findComponent(CollapsibleSidebar).props()).toMatchObject({ + side: 'right', + initOpenView: SWITCH_EDITORS_VIEW_NAME, + }); + }); + }); + describe('pipelines tab', () => { it('is always shown', () => { createComponent(); @@ -113,4 +130,32 @@ describe('ide/components/panes/right.vue', () => { ); }); }); + + describe('switch editors tab', () => { + beforeEach(() => { + createComponent(); + }); + + it.each` + desc | canUseNewWebIde | expectedShow + ${'is shown'} | ${true} | ${true} + ${'is not shown'} | ${false} | ${false} + `('with canUseNewWebIde=$canUseNewWebIde, $desc', async ({ canUseNewWebIde, expectedShow }) => { + Object.assign(store.state, { canUseNewWebIde }); + + await nextTick(); + + expect(wrapper.findComponent(CollapsibleSidebar).props('extensionTabs')).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + show: expectedShow, + title: __('Switch editors'), + views: [ + { component: SwitchEditorsView, name: SWITCH_EDITORS_VIEW_NAME, keepAlive: true }, + ], + }), + ]), + ); + }); + }); }); |