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:
Diffstat (limited to 'spec/frontend/packages/shared/utils_spec.js')
-rw-r--r--spec/frontend/packages/shared/utils_spec.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/spec/frontend/packages/shared/utils_spec.js b/spec/frontend/packages/shared/utils_spec.js
new file mode 100644
index 00000000000..1fe90a4827f
--- /dev/null
+++ b/spec/frontend/packages/shared/utils_spec.js
@@ -0,0 +1,66 @@
+import {
+ packageTypeToTrackCategory,
+ beautifyPath,
+ getPackageTypeLabel,
+ getCommitLink,
+} from '~/packages/shared/utils';
+import { PackageType, TrackingCategories } from '~/packages/shared/constants';
+import { packageList } from '../mock_data';
+
+describe('Packages shared utils', () => {
+ describe('packageTypeToTrackCategory', () => {
+ it('prepend UI to package category', () => {
+ expect(packageTypeToTrackCategory()).toMatchInlineSnapshot(`"UI::undefined"`);
+ });
+
+ it.each(Object.keys(PackageType))('returns a correct category string for %s', packageKey => {
+ const packageName = PackageType[packageKey];
+ expect(packageTypeToTrackCategory(packageName)).toBe(
+ `UI::${TrackingCategories[packageName]}`,
+ );
+ });
+ });
+
+ describe('beautifyPath', () => {
+ it('returns a string with spaces around /', () => {
+ expect(beautifyPath('foo/bar')).toBe('foo / bar');
+ });
+ it('does not fail for empty string', () => {
+ expect(beautifyPath()).toBe('');
+ });
+ });
+
+ describe('getPackageTypeLabel', () => {
+ describe.each`
+ packageType | expectedResult
+ ${'conan'} | ${'Conan'}
+ ${'maven'} | ${'Maven'}
+ ${'npm'} | ${'NPM'}
+ ${'nuget'} | ${'NuGet'}
+ ${'pypi'} | ${'PyPi'}
+ ${'composer'} | ${'Composer'}
+ ${'foo'} | ${null}
+ `(`package type`, ({ packageType, expectedResult }) => {
+ it(`${packageType} should show as ${expectedResult}`, () => {
+ expect(getPackageTypeLabel(packageType)).toBe(expectedResult);
+ });
+ });
+ });
+
+ describe('getCommitLink', () => {
+ it('returns a relative link when isGroup is false', () => {
+ const link = getCommitLink(packageList[0], false);
+
+ expect(link).toContain('../commit');
+ });
+
+ describe('when isGroup is true', () => {
+ it('returns an absolute link matching project path', () => {
+ const mavenPackage = packageList[0];
+ const link = getCommitLink(mavenPackage, true);
+
+ expect(link).toContain(`/${mavenPackage.project_path}/commit`);
+ });
+ });
+ });
+});