summaryrefslogtreecommitdiff
path: root/spec/frontend/ide/components/preview/navigator_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/ide/components/preview/navigator_spec.js')
-rw-r--r--spec/frontend/ide/components/preview/navigator_spec.js161
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);
- });
- });
-});