diff options
Diffstat (limited to 'spec/frontend/repository')
4 files changed, 51 insertions, 147 deletions
diff --git a/spec/frontend/repository/components/__snapshots__/last_commit_spec.js.snap b/spec/frontend/repository/components/__snapshots__/last_commit_spec.js.snap index 7854325e4ed..fea937b905f 100644 --- a/spec/frontend/repository/components/__snapshots__/last_commit_spec.js.snap +++ b/spec/frontend/repository/components/__snapshots__/last_commit_spec.js.snap @@ -106,114 +106,3 @@ exports[`Repository last commit component renders commit widget 1`] = ` </div> </div> `; - -exports[`Repository last commit component renders the signature HTML as returned by the backend 1`] = ` -<div - class="well-segment commit gl-p-5 gl-w-full" -> - <user-avatar-link-stub - class="avatar-cell" - imgalt="" - imgcssclasses="" - imgsize="40" - imgsrc="https://test.com" - linkhref="/test" - tooltipplacement="top" - tooltiptext="" - username="" - /> - - <div - class="commit-detail flex-list" - > - <div - class="commit-content qa-commit-content" - > - <gl-link-stub - class="commit-row-message item-title" - href="/commit/123" - > - Commit title - </gl-link-stub> - - <!----> - - <div - class="committer" - > - <gl-link-stub - class="commit-author-link js-user-link" - href="/test" - > - - Test - </gl-link-stub> - - authored - - <timeago-tooltip-stub - cssclass="" - time="2019-01-01" - tooltipplacement="bottom" - /> - </div> - - <!----> - </div> - - <div - class="commit-actions flex-row" - > - <div> - <button> - Verified - </button> - </div> - - <div - class="ci-status-link" - > - <gl-link-stub - class="js-commit-pipeline" - href="https://test.com/pipeline" - title="Pipeline: failed" - > - <ci-icon-stub - aria-label="Pipeline: failed" - cssclasses="" - size="24" - status="[object Object]" - /> - </gl-link-stub> - </div> - - <gl-button-group-stub - class="gl-ml-4 js-commit-sha-group" - > - <gl-button-stub - buttontextclasses="" - category="primary" - class="gl-font-monospace" - data-testid="last-commit-id-label" - icon="" - label="true" - size="medium" - variant="default" - > - 12345678 - </gl-button-stub> - - <clipboard-button-stub - category="secondary" - class="input-group-text" - size="medium" - text="123456789" - title="Copy commit SHA" - tooltipplacement="top" - variant="default" - /> - </gl-button-group-stub> - </div> - </div> -</div> -`; diff --git a/spec/frontend/repository/components/blob_content_viewer_spec.js b/spec/frontend/repository/components/blob_content_viewer_spec.js index 96c03419dd6..2f6de03b73d 100644 --- a/spec/frontend/repository/components/blob_content_viewer_spec.js +++ b/spec/frontend/repository/components/blob_content_viewer_spec.js @@ -25,6 +25,7 @@ import { redirectTo } from '~/lib/utils/url_utility'; import { isLoggedIn } from '~/lib/utils/common_utils'; import { extendedWrapper } from 'helpers/vue_test_utils_helper'; import httpStatusCodes from '~/lib/utils/http_status'; +import LineHighlighter from '~/blob/line_highlighter'; import { simpleViewerMock, richViewerMock, @@ -39,6 +40,7 @@ import { jest.mock('~/repository/components/blob_viewers'); jest.mock('~/lib/utils/url_utility'); jest.mock('~/lib/utils/common_utils'); +jest.mock('~/blob/line_highlighter'); let wrapper; let mockResolver; @@ -173,20 +175,30 @@ describe('Blob content viewer component', () => { }); describe('legacy viewers', () => { + const legacyViewerUrl = 'some_file.js?format=json&viewer=simple'; + const fileType = 'text'; + const highlightJs = false; + it('loads a legacy viewer when a the fileType is text and the highlightJs feature is turned off', async () => { await createComponent({ - blob: { ...simpleViewerMock, fileType: 'text', highlightJs: false }, + blob: { ...simpleViewerMock, fileType, highlightJs }, }); expect(mockAxios.history.get).toHaveLength(1); - expect(mockAxios.history.get[0].url).toEqual('some_file.js?format=json&viewer=simple'); + expect(mockAxios.history.get[0].url).toBe(legacyViewerUrl); }); it('loads a legacy viewer when a viewer component is not available', async () => { await createComponent({ blob: { ...simpleViewerMock, fileType: 'unknown' } }); expect(mockAxios.history.get).toHaveLength(1); - expect(mockAxios.history.get[0].url).toEqual('some_file.js?format=json&viewer=simple'); + expect(mockAxios.history.get[0].url).toBe(legacyViewerUrl); + }); + + it('loads the LineHighlighter', async () => { + mockAxios.onGet(legacyViewerUrl).replyOnce(httpStatusCodes.OK, 'test'); + await createComponent({ blob: { ...simpleViewerMock, fileType, highlightJs } }); + expect(LineHighlighter).toHaveBeenCalled(); }); }); }); @@ -258,6 +270,7 @@ describe('Blob content viewer component', () => { codeNavigationPath: simpleViewerMock.codeNavigationPath, blobPath: simpleViewerMock.path, pathPrefix: simpleViewerMock.projectBlobPathRoot, + wrapTextNodes: true, }); }); diff --git a/spec/frontend/repository/components/breadcrumbs_spec.js b/spec/frontend/repository/components/breadcrumbs_spec.js index 0e3e7075e99..eef66045573 100644 --- a/spec/frontend/repository/components/breadcrumbs_spec.js +++ b/spec/frontend/repository/components/breadcrumbs_spec.js @@ -12,7 +12,7 @@ const defaultMockRoute = { describe('Repository breadcrumbs component', () => { let wrapper; - const factory = (currentPath, extraProps = {}, mockRoute = {}, newDirModal = true) => { + const factory = (currentPath, extraProps = {}, mockRoute = {}) => { const $apollo = { queries: { userPermissions: { @@ -36,7 +36,6 @@ describe('Repository breadcrumbs component', () => { }, $apollo, }, - provide: { glFeatures: { newDirModal } }, }); }; @@ -147,37 +146,21 @@ describe('Repository breadcrumbs component', () => { }); describe('renders the new directory modal', () => { - describe('with the feature flag enabled', () => { - beforeEach(() => { - window.gon.features = { - newDirModal: true, - }; - factory('/', { canEditTree: true }); - }); - - it('does not render the modal while loading', () => { - expect(findNewDirectoryModal().exists()).toBe(false); - }); - - it('renders the modal once loaded', async () => { - // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details - // eslint-disable-next-line no-restricted-syntax - wrapper.setData({ $apollo: { queries: { userPermissions: { loading: false } } } }); - - await nextTick(); - - expect(findNewDirectoryModal().exists()).toBe(true); - }); + beforeEach(() => { + factory('/', { canEditTree: true }); + }); + it('does not render the modal while loading', () => { + expect(findNewDirectoryModal().exists()).toBe(false); }); - describe('with the feature flag disabled', () => { - it('does not render the modal', () => { - window.gon.features = { - newDirModal: false, - }; - factory('/', { canEditTree: true }, {}, {}, false); - expect(findNewDirectoryModal().exists()).toBe(false); - }); + it('renders the modal once loaded', async () => { + // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details + // eslint-disable-next-line no-restricted-syntax + wrapper.setData({ $apollo: { queries: { userPermissions: { loading: false } } } }); + + await nextTick(); + + expect(findNewDirectoryModal().exists()).toBe(true); }); }); }); diff --git a/spec/frontend/repository/components/last_commit_spec.js b/spec/frontend/repository/components/last_commit_spec.js index bb710c3a96c..cfbf74e34aa 100644 --- a/spec/frontend/repository/components/last_commit_spec.js +++ b/spec/frontend/repository/components/last_commit_spec.js @@ -143,11 +143,30 @@ describe('Repository last commit component', () => { }); it('renders the signature HTML as returned by the backend', async () => { - factory(createCommitData({ signatureHtml: '<button>Verified</button>' })); + factory( + createCommitData({ + signatureHtml: `<a + class="btn gpg-status-box valid" + data-content="signature-content" + data-html="true" + data-placement="top" + data-title="signature-title" + data-toggle="popover" + role="button" + tabindex="0" + > + Verified + </a>`, + }), + ); await nextTick(); - expect(vm.element).toMatchSnapshot(); + expect(vm.find('.gpg-status-box').html()).toBe( + `<a class="btn gpg-status-box valid" data-content="signature-content" data-html="true" data-placement="top" data-title="signature-title" data-toggle="popover" role="button" tabindex="0"> + Verified +</a>`, + ); }); it('sets correct CSS class if the commit message is empty', async () => { |