diff --git a/js/common/modules/@arangodb/foxx/manager-utils.js b/js/common/modules/@arangodb/foxx/manager-utils.js index a50e4a03d5..754c3f532a 100644 --- a/js/common/modules/@arangodb/foxx/manager-utils.js +++ b/js/common/modules/@arangodb/foxx/manager-utils.js @@ -46,10 +46,10 @@ const DEFAULT_REPLICATION_FACTOR_SYSTEM = internal.DEFAULT_REPLICATION_FACTOR_SY function getReadableName (name) { const readable = name - .replace(/([-_]|\s)+/g, ' ') - .replace(/([a-z])([A-Z])/g, (m) => `${m[0]} ${m[1]}`) - .replace(/([A-Z])([A-Z][a-z])/g, (m) => `${m[0]} ${m[1]}`) - .replace(/\s([a-z])/g, (m) => ` ${m[1].toUpperCase()}`); + .replace(/([-_]|\s)+/g, " ") + .replace(/[a-z][A-Z]/g, str => `${str.charAt(0)} ${str.slice(1)}`) + .replace(/[A-Z][A-Z][a-z]/g, str => `${str.charAt(0)} ${str.slice(1)}`) + .replace(/\s[a-z]/g, str => `${str.toUpperCase()}`); return readable.charAt(0).toUpperCase() + readable.substr(1); } diff --git a/js/common/tests/shell/shell-foxx-manager-utils-spec.js b/js/common/tests/shell/shell-foxx-manager-utils-spec.js index 4151c29744..6471c9e601 100644 --- a/js/common/tests/shell/shell-foxx-manager-utils-spec.js +++ b/js/common/tests/shell/shell-foxx-manager-utils-spec.js @@ -1,11 +1,21 @@ -/* global test */ +/*global suite, test */ "use strict"; const { expect } = require("chai"); const { getReadableName } = require("@arangodb/foxx/manager-utils"); -test("getReadableName", () => { - expect(getReadableName("catch-fire")).to.equal("Catch Fire"); - expect(getReadableName("catchFire")).to.equal("Catch Fire"); - expect(getReadableName("CatchFire")).to.equal("Catch Fire"); - expect(getReadableName("cAtChFiRe")).to.equal("C At Ch Fi Re"); +suite("getReadableName", () => { + for (const [input, output] of [ + ["catch-fire", "Catch Fire"], + ["catchFire", "Catch Fire"], + ["CatchFire", "Catch Fire"], + ["catch fire", "Catch Fire"], + ["CATCH FIRE", "CATCH FIRE"], + ["CATCHFIRE", "CATCHFIRE"], + ["cAtChFiRe", "C At Ch Fi Re"], + ["XmlHTTPRequest", "Xml HTTP Request"] + ]) { + test(`"${input}" -> "${output}"`, () => { + expect(getReadableName(input)).to.equal(output); + }); + } });