chore(utils): migrate block-nameify to TS and add unit tests (#48086)

This commit is contained in:
Valentin
2022-10-17 20:03:36 +02:00
committed by GitHub
parent 2a5fae91db
commit 4acaa58892
5 changed files with 33 additions and 6 deletions

2
.gitignore vendored
View File

@@ -166,6 +166,8 @@ config/i18n/all-langs.js
config/certification-settings.js
### Generated utils files ###
utils/block-nameify.js
utils/block-nameify.test.js
utils/slugs.js
utils/slugs.test.js
utils/index.js

View File

@@ -8,9 +8,11 @@ config/**/*.json
config/i18n/all-langs.js
config/certification-settings.js
docs/i18n
utils/block-nameify.js
utils/block-nameify.test.js
utils/slugs.js
utils/slugs.test.js
utils/index.js
**/package-lock.json
web/.next
curriculum-server/data/curriculum.json
curriculum-server/data/curriculum.json

View File

@@ -1 +0,0 @@
export declare function blockNameify(phrase: string): string;

View File

@@ -0,0 +1,23 @@
import { blockNameify } from './block-nameify';
describe('blockNameify', () => {
it('should return a preformatted name when it exists', () => {
const result = blockNameify('back-end-development-and-apis');
expect(result).toBe('Back End Development and APIs');
});
it('should not format prepositions', () => {
const result = blockNameify('and-for-of-the-up-with');
expect(result).toBe('and for of the up with');
});
it('should format javascript to JavaScript', () => {
const result = blockNameify('javascript');
expect(result).toBe('JavaScript');
});
it('should transform "-" to " " and uppercase each word', () => {
const result = blockNameify('hello-world');
expect(result).toBe('Hello World');
});
});

View File

@@ -1,9 +1,10 @@
const preFormattedBlockNames = require('./preformatted-block-names.json');
import preFormattedBlockNames from './preformatted-block-names.json';
const noFormatting = ['and', 'for', 'of', 'the', 'up', 'with'];
exports.blockNameify = function blockNameify(phrase) {
const preFormatted = preFormattedBlockNames[phrase] || '';
export function blockNameify(phrase: string): string {
const preFormatted =
(preFormattedBlockNames as Record<string, string>)[phrase] || '';
if (preFormatted) {
return preFormatted;
}
@@ -19,4 +20,4 @@ exports.blockNameify = function blockNameify(phrase) {
return word.charAt(0).toUpperCase() + word.slice(1);
})
.join(' ');
};
}