diff options
Diffstat (limited to 'spec/frontend/blob')
-rw-r--r-- | spec/frontend/blob/components/blob_header_default_actions_spec.js | 12 | ||||
-rw-r--r-- | spec/frontend/blob/components/blob_header_spec.js | 12 | ||||
-rw-r--r-- | spec/frontend/blob/csv/csv_viewer_spec.js | 13 | ||||
-rw-r--r-- | spec/frontend/blob/viewer/index_spec.js | 2 |
4 files changed, 29 insertions, 10 deletions
diff --git a/spec/frontend/blob/components/blob_header_default_actions_spec.js b/spec/frontend/blob/components/blob_header_default_actions_spec.js index bce65899c43..e321bb41774 100644 --- a/spec/frontend/blob/components/blob_header_default_actions_spec.js +++ b/spec/frontend/blob/components/blob_header_default_actions_spec.js @@ -39,6 +39,9 @@ describe('Blob Header Default Actions', () => { }); describe('renders', () => { + const findCopyButton = () => wrapper.find('[data-testid="copyContentsButton"]'); + const findViewRawButton = () => wrapper.find('[data-testid="viewRawButton"]'); + it('gl-button-group component', () => { expect(btnGroup.exists()).toBe(true); }); @@ -76,7 +79,14 @@ describe('Blob Header Default Actions', () => { hasRenderError: true, }); - expect(wrapper.find('[data-testid="copyContentsButton"]').exists()).toBe(false); + expect(findCopyButton().exists()).toBe(false); + }); + + it('does not render the copy and view raw button if isBinary is set to true', () => { + createComponent({ isBinary: true }); + + expect(findCopyButton().exists()).toBe(false); + expect(findViewRawButton().exists()).toBe(false); }); }); }); diff --git a/spec/frontend/blob/components/blob_header_spec.js b/spec/frontend/blob/components/blob_header_spec.js index 865e8ab1124..f841785be42 100644 --- a/spec/frontend/blob/components/blob_header_spec.js +++ b/spec/frontend/blob/components/blob_header_spec.js @@ -29,6 +29,8 @@ describe('Blob Header Default Actions', () => { }); describe('rendering', () => { + const findDefaultActions = () => wrapper.find(DefaultActions); + const slots = { prepend: 'Foo Prepend', actions: 'Actions Bar', @@ -42,7 +44,7 @@ describe('Blob Header Default Actions', () => { it('renders all components', () => { createComponent(); expect(wrapper.find(ViewerSwitcher).exists()).toBe(true); - expect(wrapper.find(DefaultActions).exists()).toBe(true); + expect(findDefaultActions().exists()).toBe(true); expect(wrapper.find(BlobFilepath).exists()).toBe(true); }); @@ -100,7 +102,13 @@ describe('Blob Header Default Actions', () => { hasRenderError: true, }, ); - expect(wrapper.find(DefaultActions).props('hasRenderError')).toBe(true); + expect(findDefaultActions().props('hasRenderError')).toBe(true); + }); + + it('passes the correct isBinary value to default actions when viewing a binary file', () => { + createComponent({}, {}, { isBinary: true }); + + expect(findDefaultActions().props('isBinary')).toBe(true); }); }); diff --git a/spec/frontend/blob/csv/csv_viewer_spec.js b/spec/frontend/blob/csv/csv_viewer_spec.js index abb914b8f57..17973c709c1 100644 --- a/spec/frontend/blob/csv/csv_viewer_spec.js +++ b/spec/frontend/blob/csv/csv_viewer_spec.js @@ -1,8 +1,9 @@ -import { GlAlert, GlLoadingIcon, GlTable } from '@gitlab/ui'; +import { GlLoadingIcon, GlTable } from '@gitlab/ui'; import { getAllByRole } from '@testing-library/dom'; import { shallowMount, mount } from '@vue/test-utils'; import { nextTick } from 'vue'; -import CSVViewer from '~/blob/csv/csv_viewer.vue'; +import CsvViewer from '~/blob/csv/csv_viewer.vue'; +import PapaParseAlert from '~/vue_shared/components/papa_parse_alert.vue'; const validCsv = 'one,two,three'; const brokenCsv = '{\n "json": 1,\n "key": [1, 2, 3]\n}'; @@ -11,7 +12,7 @@ describe('app/assets/javascripts/blob/csv/csv_viewer.vue', () => { let wrapper; const createComponent = ({ csv = validCsv, mountFunction = shallowMount } = {}) => { - wrapper = mountFunction(CSVViewer, { + wrapper = mountFunction(CsvViewer, { propsData: { csv, }, @@ -20,7 +21,7 @@ describe('app/assets/javascripts/blob/csv/csv_viewer.vue', () => { const findCsvTable = () => wrapper.findComponent(GlTable); const findLoadingIcon = () => wrapper.findComponent(GlLoadingIcon); - const findAlert = () => wrapper.findComponent(GlAlert); + const findAlert = () => wrapper.findComponent(PapaParseAlert); afterEach(() => { wrapper.destroy(); @@ -35,12 +36,12 @@ describe('app/assets/javascripts/blob/csv/csv_viewer.vue', () => { }); describe('when the CSV contains errors', () => { - it('should render alert', async () => { + it('should render alert with correct props', async () => { createComponent({ csv: brokenCsv }); await nextTick; expect(findAlert().props()).toMatchObject({ - variant: 'danger', + papaParseErrors: [{ code: 'UndetectableDelimiter' }], }); }); }); diff --git a/spec/frontend/blob/viewer/index_spec.js b/spec/frontend/blob/viewer/index_spec.js index 6a24b76abc8..705c4630a68 100644 --- a/spec/frontend/blob/viewer/index_spec.js +++ b/spec/frontend/blob/viewer/index_spec.js @@ -3,7 +3,7 @@ import MockAdapter from 'axios-mock-adapter'; import $ from 'jquery'; import { setTestTimeout } from 'helpers/timeout'; -import BlobViewer from '~/blob/viewer/index'; +import { BlobViewer } from '~/blob/viewer/index'; import axios from '~/lib/utils/axios_utils'; const execImmediately = (callback) => { |