summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Knox <psimyn@gmail.com>2018-01-04 22:41:47 +1100
committerSimon Knox <psimyn@gmail.com>2018-01-04 22:41:47 +1100
commit52dc099e2350b6f89e5ebb8058626dc5a43026a3 (patch)
tree41a5ae42fa4f5d30f95deb3c34759ed45e295929
parente35c4c401f09340ebee2b0c92aec1560c54c1692 (diff)
downloadgitlab-ce-52dc099e2350b6f89e5ebb8058626dc5a43026a3.tar.gz
clearer name for camelcase function
-rw-r--r--app/assets/javascripts/lib/utils/text_utility.js8
-rw-r--r--app/assets/javascripts/notes/components/diff_with_note.vue4
-rw-r--r--spec/javascripts/lib/utils/text_utility_spec.js23
3 files changed, 29 insertions, 6 deletions
diff --git a/app/assets/javascripts/lib/utils/text_utility.js b/app/assets/javascripts/lib/utils/text_utility.js
index 400f09dce88..fef720e32e9 100644
--- a/app/assets/javascripts/lib/utils/text_utility.js
+++ b/app/assets/javascripts/lib/utils/text_utility.js
@@ -65,13 +65,13 @@ export function capitalizeFirstCharacter(text) {
return `${text[0].toUpperCase()}${text.slice(1)}`;
}
-export function camelize(str) {
- return str.replace(/_([a-z])/gi, ($1, $2) => $2.toUpperCase());
+export function camelCase(str) {
+ return str.replace(/_+([a-z])/gi, ($1, $2) => $2.toUpperCase());
}
-export function camelizeKeys(obj = {}) {
+export function camelCaseKeys(obj = {}) {
return Object.keys(obj).reduce((acc, key) => {
- const camelKey = camelize(key);
+ const camelKey = camelCase(key);
return {
...acc,
[camelKey]: obj[key],
diff --git a/app/assets/javascripts/notes/components/diff_with_note.vue b/app/assets/javascripts/notes/components/diff_with_note.vue
index aa328cc0ad5..91d0fcfb2dc 100644
--- a/app/assets/javascripts/notes/components/diff_with_note.vue
+++ b/app/assets/javascripts/notes/components/diff_with_note.vue
@@ -3,7 +3,7 @@
import DiffFileHeader from './diff_file_header.vue';
import initDiscussionTab from '~/image_diff/init_discussion_tab';
import imageDiffHelper from '~/image_diff/helpers/index';
- import { camelizeKeys } from '~/lib/utils/text_utility';
+ import { camelCaseKeys } from '~/lib/utils/text_utility';
export default {
props: {
@@ -27,7 +27,7 @@
return $(this.discussion.truncatedDiffLines);
},
diffFile() {
- return camelizeKeys(this.discussion.diffFile);
+ return camelCaseKeys(this.discussion.diffFile);
},
imageDiffHtml() {
return this.discussion.imageDiffHtml;
diff --git a/spec/javascripts/lib/utils/text_utility_spec.js b/spec/javascripts/lib/utils/text_utility_spec.js
index 1f46c225071..5615657fcff 100644
--- a/spec/javascripts/lib/utils/text_utility_spec.js
+++ b/spec/javascripts/lib/utils/text_utility_spec.js
@@ -62,4 +62,27 @@ describe('text_utility', () => {
expect(textUtils.slugify('João')).toEqual('joão');
});
});
+
+ describe('camelCase', () => {
+ it('converts a snake_case string to camelCase', () => {
+ expect(textUtils.camelCase('snake_case_string')).toEqual('snakeCaseString');
+ });
+
+ it('converts string with numbers', () => {
+ expect(textUtils.camelCase('test1twothree')).toEqual('test1twothree');
+ });
+ });
+
+ describe('camelCaseKeys', () => {
+ it('converts object keys to camelCase', () => {
+ const input = {
+ my_key: 'some_value',
+ };
+ const expected = {
+ myKey: 'some_value',
+ };
+
+ expect(textUtils.camelCaseKeys(input)).toEqual(expected);
+ });
+ });
});