Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-11-30 18:07:02 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-11-30 18:07:02 +0300
commit826cf5293fb78029f76c5e769696e3b37e681207 (patch)
tree703bc997b5fa36c42e2bd7486f000ad41b01d252 /spec/frontend/vue_shared/components/source_viewer
parent7aa22e9a103b049dd2da70045a5822c51164f7db (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/vue_shared/components/source_viewer')
-rw-r--r--spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js53
-rw-r--r--spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js2
-rw-r--r--spec/frontend/vue_shared/components/source_viewer/plugins/utils/go_sum_linker_spec.js14
3 files changed, 40 insertions, 29 deletions
diff --git a/spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js b/spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js
index a7b55d7332f..4d38e8ef25d 100644
--- a/spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js
+++ b/spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js
@@ -4,15 +4,16 @@ import gemspecLinker from '~/vue_shared/components/source_viewer/plugins/utils/g
import gemfileLinker from '~/vue_shared/components/source_viewer/plugins/utils/gemfile_linker';
import podspecJsonLinker from '~/vue_shared/components/source_viewer/plugins/utils/podspec_json_linker';
import composerJsonLinker from '~/vue_shared/components/source_viewer/plugins/utils/composer_json_linker';
+import goSumLinker from '~/vue_shared/components/source_viewer/plugins/utils/go_sum_linker';
import linkDependencies from '~/vue_shared/components/source_viewer/plugins/link_dependencies';
import {
PACKAGE_JSON_FILE_TYPE,
- PACKAGE_JSON_CONTENT,
GEMSPEC_FILE_TYPE,
GODEPS_JSON_FILE_TYPE,
GEMFILE_FILE_TYPE,
PODSPEC_JSON_FILE_TYPE,
COMPOSER_JSON_FILE_TYPE,
+ GO_SUM_FILE_TYPE,
} from './mock_data';
jest.mock('~/vue_shared/components/source_viewer/plugins/utils/package_json_linker');
@@ -21,37 +22,31 @@ jest.mock('~/vue_shared/components/source_viewer/plugins/utils/godeps_json_linke
jest.mock('~/vue_shared/components/source_viewer/plugins/utils/gemfile_linker');
jest.mock('~/vue_shared/components/source_viewer/plugins/utils/podspec_json_linker');
jest.mock('~/vue_shared/components/source_viewer/plugins/utils/composer_json_linker');
+jest.mock('~/vue_shared/components/source_viewer/plugins/utils/go_sum_linker');
describe('Highlight.js plugin for linking dependencies', () => {
const hljsResultMock = { value: 'test' };
- it('calls packageJsonLinker for package_json file types', () => {
- linkDependencies(hljsResultMock, PACKAGE_JSON_FILE_TYPE, PACKAGE_JSON_CONTENT);
- expect(packageJsonLinker).toHaveBeenCalled();
- });
-
- it('calls gemspecLinker for gemspec file types', () => {
- linkDependencies(hljsResultMock, GEMSPEC_FILE_TYPE);
- expect(gemspecLinker).toHaveBeenCalled();
- });
-
- it('calls godepsJsonLinker for godeps_json file types', () => {
- linkDependencies(hljsResultMock, GODEPS_JSON_FILE_TYPE);
- expect(godepsJsonLinker).toHaveBeenCalled();
- });
-
- it('calls gemfileLinker for gemfile file types', () => {
- linkDependencies(hljsResultMock, GEMFILE_FILE_TYPE);
- expect(gemfileLinker).toHaveBeenCalled();
- });
-
- it('calls podspecJsonLinker for podspec_json file types', () => {
- linkDependencies(hljsResultMock, PODSPEC_JSON_FILE_TYPE);
- expect(podspecJsonLinker).toHaveBeenCalled();
- });
-
- it('calls composerJsonLinker for composer_json file types', () => {
- linkDependencies(hljsResultMock, COMPOSER_JSON_FILE_TYPE);
- expect(composerJsonLinker).toHaveBeenCalled();
+ describe.each`
+ fileType | linker
+ ${PACKAGE_JSON_FILE_TYPE} | ${packageJsonLinker}
+ ${GEMSPEC_FILE_TYPE} | ${gemspecLinker}
+ ${GODEPS_JSON_FILE_TYPE} | ${godepsJsonLinker}
+ ${GEMFILE_FILE_TYPE} | ${gemfileLinker}
+ ${PODSPEC_JSON_FILE_TYPE} | ${podspecJsonLinker}
+ ${COMPOSER_JSON_FILE_TYPE} | ${composerJsonLinker}
+ ${GO_SUM_FILE_TYPE} | ${goSumLinker}
+ `('$fileType file type', ({ fileType, linker }) => {
+ it('calls the correct linker', () => {
+ linkDependencies(hljsResultMock, fileType);
+ expect(linker).toHaveBeenCalled();
+ });
+
+ it('does not call the linker for non-matching file types', () => {
+ const unknownFileType = 'unknown';
+
+ linkDependencies(hljsResultMock, unknownFileType);
+ expect(linker).not.toHaveBeenCalled();
+ });
});
});
diff --git a/spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js b/spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js
index 5455479ec71..631baf19a2d 100644
--- a/spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js
+++ b/spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js
@@ -32,3 +32,5 @@ export const PODSPEC_JSON_CONTENT = `{
}`;
export const COMPOSER_JSON_FILE_TYPE = 'composer_json';
+
+export const GO_SUM_FILE_TYPE = 'go_sum';
diff --git a/spec/frontend/vue_shared/components/source_viewer/plugins/utils/go_sum_linker_spec.js b/spec/frontend/vue_shared/components/source_viewer/plugins/utils/go_sum_linker_spec.js
new file mode 100644
index 00000000000..293396c9de7
--- /dev/null
+++ b/spec/frontend/vue_shared/components/source_viewer/plugins/utils/go_sum_linker_spec.js
@@ -0,0 +1,14 @@
+import goSumLinker from '~/vue_shared/components/source_viewer/plugins/utils/go_sum_linker';
+
+describe('Highlight.js plugin for linking go.sum dependencies', () => {
+ it('mutates the input value by wrapping dependencies and tags in anchors', () => {
+ const inputValue =
+ '<span class="">cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=</span>';
+ const outputValue =
+ '<span class=""><a href="https://pkg.go.dev/cloud.google.com/go/bigquery" target="_blank" rel="nofollow noreferrer noopener">cloud.google.com/go/bigquery</a> v1.0.1/go.mod h1:<a href="https://sum.golang.org/lookup/cloud.google.com/go/bigquery@v1.0.1" target="_blank" rel="nofollow noreferrer noopener">i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=</a></span>';
+ const hljsResultMock = { value: inputValue };
+
+ const output = goSumLinker(hljsResultMock);
+ expect(output).toBe(outputValue);
+ });
+});