diff options
Diffstat (limited to 'spec/frontend/ide/components/preview/navigator_spec.js')
-rw-r--r-- | spec/frontend/ide/components/preview/navigator_spec.js | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/spec/frontend/ide/components/preview/navigator_spec.js b/spec/frontend/ide/components/preview/navigator_spec.js deleted file mode 100644 index 043dcade858..00000000000 --- a/spec/frontend/ide/components/preview/navigator_spec.js +++ /dev/null @@ -1,161 +0,0 @@ -import { GlLoadingIcon } from '@gitlab/ui'; -import { shallowMount } from '@vue/test-utils'; -import { listen } from 'codesandbox-api'; -import { nextTick } from 'vue'; -import { TEST_HOST } from 'helpers/test_constants'; -import ClientsideNavigator from '~/ide/components/preview/navigator.vue'; - -jest.mock('codesandbox-api', () => ({ - listen: jest.fn().mockReturnValue(jest.fn()), -})); - -describe('IDE clientside preview navigator', () => { - let wrapper; - let client; - let listenHandler; - - const findBackButton = () => wrapper.findAll('button').at(0); - const findForwardButton = () => wrapper.findAll('button').at(1); - const findRefreshButton = () => wrapper.findAll('button').at(2); - - beforeEach(() => { - listen.mockClear(); - client = { bundlerURL: TEST_HOST, iframe: { src: '' } }; - - wrapper = shallowMount(ClientsideNavigator, { propsData: { client } }); - [[listenHandler]] = listen.mock.calls; - }); - - afterEach(() => { - wrapper.destroy(); - }); - - it('renders readonly URL bar', async () => { - listenHandler({ type: 'urlchange', url: client.bundlerURL }); - await nextTick(); - expect(wrapper.find('input[readonly]').element.value).toBe('/'); - }); - - it('renders loading icon by default', () => { - expect(wrapper.findComponent(GlLoadingIcon).exists()).toBe(true); - }); - - it('removes loading icon when done event is fired', async () => { - listenHandler({ type: 'done' }); - await nextTick(); - expect(wrapper.findComponent(GlLoadingIcon).exists()).toBe(false); - }); - - it('does not count visiting same url multiple times', async () => { - listenHandler({ type: 'done' }); - listenHandler({ type: 'done', url: `${TEST_HOST}/url1` }); - listenHandler({ type: 'done', url: `${TEST_HOST}/url1` }); - await nextTick(); - expect(findBackButton().attributes('disabled')).toBe('disabled'); - }); - - it('unsubscribes from listen on destroy', () => { - const unsubscribeFn = listen(); - - wrapper.destroy(); - expect(unsubscribeFn).toHaveBeenCalled(); - }); - - describe('back button', () => { - beforeEach(async () => { - listenHandler({ type: 'done' }); - listenHandler({ type: 'urlchange', url: TEST_HOST }); - await nextTick(); - }); - - it('is disabled by default', () => { - expect(findBackButton().attributes('disabled')).toBe('disabled'); - }); - - it('is enabled when there is previous entry', async () => { - listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` }); - await nextTick(); - findBackButton().trigger('click'); - expect(findBackButton().attributes()).not.toHaveProperty('disabled'); - }); - - it('is disabled when there is no previous entry', async () => { - listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` }); - - await nextTick(); - findBackButton().trigger('click'); - - await nextTick(); - expect(findBackButton().attributes('disabled')).toBe('disabled'); - }); - - it('updates client iframe src', async () => { - listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` }); - listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url2` }); - await nextTick(); - findBackButton().trigger('click'); - - expect(client.iframe.src).toBe(`${TEST_HOST}/url1`); - }); - }); - - describe('forward button', () => { - beforeEach(async () => { - listenHandler({ type: 'done' }); - listenHandler({ type: 'urlchange', url: TEST_HOST }); - await nextTick(); - }); - - it('is disabled by default', () => { - expect(findForwardButton().attributes('disabled')).toBe('disabled'); - }); - - it('is enabled when there is next entry', async () => { - listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` }); - - await nextTick(); - findBackButton().trigger('click'); - - await nextTick(); - expect(findForwardButton().attributes()).not.toHaveProperty('disabled'); - }); - - it('is disabled when there is no next entry', async () => { - listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` }); - - await nextTick(); - findBackButton().trigger('click'); - - await nextTick(); - findForwardButton().trigger('click'); - - await nextTick(); - expect(findForwardButton().attributes('disabled')).toBe('disabled'); - }); - - it('updates client iframe src', async () => { - listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url1` }); - listenHandler({ type: 'urlchange', url: `${TEST_HOST}/url2` }); - await nextTick(); - findBackButton().trigger('click'); - - expect(client.iframe.src).toBe(`${TEST_HOST}/url1`); - }); - }); - - describe('refresh button', () => { - const url = `${TEST_HOST}/some_url`; - beforeEach(async () => { - listenHandler({ type: 'done' }); - listenHandler({ type: 'urlchange', url }); - await nextTick(); - }); - - it('calls refresh with current path', () => { - client.iframe.src = 'something-other'; - findRefreshButton().trigger('click'); - - expect(client.iframe.src).toBe(url); - }); - }); -}); |