summaryrefslogtreecommitdiff
path: root/spec/frontend/repository/components
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/repository/components')
-rw-r--r--spec/frontend/repository/components/__snapshots__/last_commit_spec.js.snap111
-rw-r--r--spec/frontend/repository/components/blob_content_viewer_spec.js19
-rw-r--r--spec/frontend/repository/components/breadcrumbs_spec.js45
-rw-r--r--spec/frontend/repository/components/last_commit_spec.js23
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 () => {