diff options
Diffstat (limited to 'spec/frontend/lib/utils/common_utils_spec.js')
-rw-r--r-- | spec/frontend/lib/utils/common_utils_spec.js | 111 |
1 files changed, 79 insertions, 32 deletions
diff --git a/spec/frontend/lib/utils/common_utils_spec.js b/spec/frontend/lib/utils/common_utils_spec.js index 08ba78cddff..7b068f7d248 100644 --- a/spec/frontend/lib/utils/common_utils_spec.js +++ b/spec/frontend/lib/utils/common_utils_spec.js @@ -1,5 +1,4 @@ import * as commonUtils from '~/lib/utils/common_utils'; -import setWindowLocation from 'helpers/set_window_location_helper'; describe('common_utils', () => { describe('getPagePath', () => { @@ -623,6 +622,23 @@ describe('common_utils', () => { milestones: ['12.3', '12.4'], }, }, + convertObjectPropsToLowerCase: { + obj: { + 'Project-Name': 'GitLab CE', + 'Group-Name': 'GitLab.org', + 'License-Type': 'MIT', + 'Mile-Stones': ['12.3', '12.4'], + }, + objNested: { + 'Project-Name': 'GitLab CE', + 'Group-Name': 'GitLab.org', + 'License-Type': 'MIT', + 'Tech-Stack': { + 'Frontend-Framework': 'Vue', + }, + 'Mile-Stones': ['12.3', '12.4'], + }, + }, }; describe('convertObjectProps', () => { @@ -638,6 +654,7 @@ describe('common_utils', () => { ${'convertObjectProps'} | ${mockObjects.convertObjectProps.obj} | ${mockObjects.convertObjectProps.objNested} ${'convertObjectPropsToCamelCase'} | ${mockObjects.convertObjectPropsToCamelCase.obj} | ${mockObjects.convertObjectPropsToCamelCase.objNested} ${'convertObjectPropsToSnakeCase'} | ${mockObjects.convertObjectPropsToSnakeCase.obj} | ${mockObjects.convertObjectPropsToSnakeCase.objNested} + ${'convertObjectPropsToLowerCase'} | ${mockObjects.convertObjectPropsToLowerCase.obj} | ${mockObjects.convertObjectPropsToLowerCase.objNested} `('$functionName', ({ functionName, mockObj, mockObjNested }) => { const testFunction = functionName === 'convertObjectProps' @@ -671,6 +688,12 @@ describe('common_utils', () => { absolute_web_url: 'https://gitlab.com/gitlab-org/', milestones: ['12.3', '12.4'], }, + convertObjectPropsToLowerCase: { + 'project-name': 'GitLab CE', + 'group-name': 'GitLab.org', + 'license-type': 'MIT', + 'mile-stones': ['12.3', '12.4'], + }, }; expect(testFunction(mockObj)).toEqual(expected[functionName]); @@ -711,6 +734,15 @@ describe('common_utils', () => { }, milestones: ['12.3', '12.4'], }, + convertObjectPropsToLowerCase: { + 'project-name': 'GitLab CE', + 'group-name': 'GitLab.org', + 'license-type': 'MIT', + 'tech-stack': { + 'Frontend-Framework': 'Vue', + }, + 'mile-stones': ['12.3', '12.4'], + }, }; expect(testFunction(mockObjNested)).toEqual(expected[functionName]); @@ -752,6 +784,15 @@ describe('common_utils', () => { }, milestones: ['12.3', '12.4'], }, + convertObjectPropsToLowerCase: { + 'project-name': 'GitLab CE', + 'group-name': 'GitLab.org', + 'license-type': 'MIT', + 'tech-stack': { + 'frontend-framework': 'Vue', + }, + 'mile-stones': ['12.3', '12.4'], + }, }; it('converts nested objects', () => { @@ -802,6 +843,15 @@ describe('common_utils', () => { }, milestones: ['12.3', '12.4'], }, + convertObjectPropsToLowerCase: { + 'project-name': 'GitLab CE', + 'group-name': 'GitLab.org', + 'license-type': 'MIT', + 'tech-stack': { + 'Frontend-Framework': 'Vue', + }, + 'mile-stones': ['12.3', '12.4'], + }, }; const dropKeys = { @@ -846,12 +896,20 @@ describe('common_utils', () => { }, milestones: ['12.3', '12.4'], }, + convertObjectPropsToLowerCase: { + 'project-name': 'GitLab CE', + 'tech-stack': { + 'frontend-framework': 'Vue', + }, + 'mile-stones': ['12.3', '12.4'], + }, }; const dropKeys = { convertObjectProps: ['group_name', 'database'], convertObjectPropsToCamelCase: ['group_name', 'database'], convertObjectPropsToSnakeCase: ['groupName', 'database'], + convertObjectPropsToLowerCase: ['Group-Name', 'License-Type'], }; expect( @@ -899,12 +957,22 @@ describe('common_utils', () => { }, milestones: ['12.3', '12.4'], }, + convertObjectPropsToLowerCase: { + 'project-name': 'GitLab CE', + 'Group-Name': 'GitLab.org', + 'license-type': 'MIT', + 'tech-stack': { + 'Frontend-Framework': 'Vue', + }, + 'mile-stones': ['12.3', '12.4'], + }, }; const ignoreKeyNames = { convertObjectProps: ['group_name'], convertObjectPropsToCamelCase: ['group_name'], convertObjectPropsToSnakeCase: ['groupName'], + convertObjectPropsToLowerCase: ['Group-Name'], }; expect( @@ -949,12 +1017,22 @@ describe('common_utils', () => { }, milestones: ['12.3', '12.4'], }, + convertObjectPropsToLowerCase: { + 'project-name': 'GitLab CE', + 'group-name': 'GitLab.org', + 'license-type': 'MIT', + 'tech-stack': { + 'Frontend-Framework': 'Vue', + }, + 'mile-stones': ['12.3', '12.4'], + }, }; const ignoreKeyNames = { convertObjectProps: ['group_name', 'frontend_framework'], convertObjectPropsToCamelCase: ['group_name', 'frontend_framework'], convertObjectPropsToSnakeCase: ['groupName', 'frontendFramework'], + convertObjectPropsToLowerCase: ['Frontend-Framework'], }; expect( @@ -1070,35 +1148,4 @@ describe('common_utils', () => { expect(result).toEqual([{ hello: '' }, { helloWorld: '' }]); }); }); - - describe('useNewFonts', () => { - let beforeGon; - const beforeLocation = window.location.href; - - beforeEach(() => { - window.gon = window.gon || {}; - beforeGon = { ...window.gon }; - }); - - describe.each` - featureFlag | queryParameter | fontEnabled - ${false} | ${false} | ${false} - ${true} | ${false} | ${true} - ${false} | ${true} | ${true} - `('new font', ({ featureFlag, queryParameter, fontEnabled }) => { - it(`will ${fontEnabled ? '' : 'NOT '}be applied when feature flag is ${ - featureFlag ? '' : 'NOT ' - }set and query parameter is ${queryParameter ? '' : 'NOT '}present`, () => { - const search = queryParameter ? `?new_fonts` : ''; - setWindowLocation(search); - window.gon = { features: { newFonts: featureFlag } }; - expect(commonUtils.useNewFonts()).toBe(fontEnabled); - }); - }); - - afterEach(() => { - window.gon = beforeGon; - setWindowLocation(beforeLocation); - }); - }); }); |