Skip to content

Commit

Permalink
fix: change language of code block to lowercase (fix #1004)
Browse files Browse the repository at this point in the history
  • Loading branch information
seonim-ryu committed May 28, 2020
1 parent dfe4382 commit f9388b5
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 3 deletions.
4 changes: 4 additions & 0 deletions apps/editor/src/js/codeBlockManager.js
Expand Up @@ -16,6 +16,8 @@ class CodeBlockManager {
* @param {function} replacer - replacer function to code block element
*/
setReplacer(language, replacer) {
language = language.toLowerCase();

this._replacers[language] = replacer;
}

Expand All @@ -35,6 +37,8 @@ class CodeBlockManager {
* @returns {string}
*/
createCodeBlockHtml(language, codeText) {
language = language.toLowerCase();

const replacer = this.getReplacer(language);

if (replacer) {
Expand Down
26 changes: 23 additions & 3 deletions apps/editor/test/unit/codeBlockManager.spec.js
Expand Up @@ -12,7 +12,7 @@ describe('CodeBlockManager', () => {
});

describe('setReplacer', () => {
it('set replacer for code block element', () => {
it('sets replacer for code block element', () => {
const type = 'tui.grid';
const replacer = {
viewer: true
Expand All @@ -24,10 +24,20 @@ describe('CodeBlockManager', () => {

expect(codeBlockManager.getReplacer(type)).toBe(replacer);
});

it('saves the replacer name in lowercase', () => {
const replacer = {};

codeBlockManager.setReplacer('UML', replacer);
expect(codeBlockManager.getReplacer('uml')).toBe(replacer);

codeBlockManager.setReplacer('Uml', replacer);
expect(codeBlockManager.getReplacer('uml')).toBe(replacer);
});
});

describe('createCodeBlockHtml', () => {
it('Create a code block html when there is a registered replacer.', () => {
it('creates a code block html when there is a registered replacer', () => {
const type = 'awesome-languages';
const replacer = codeText => `replaced ${codeText} here`;

Expand All @@ -39,12 +49,22 @@ describe('CodeBlockManager', () => {
expect(actual).toBe(expected);
});

it('Create code block html if there is no registered replacer and not highlight.js type.', () => {
it('creates code block html if there is no registered replacer and not highlight.js type', () => {
const type = 'tui.grid';
const actual = codeBlockManager.createCodeBlockHtml(type, 'var a = 1;');
const expected = 'var a = 1;';

expect(actual).toBe(expected);
});

it('converts the language name to lowercase and call the replacer with it', () => {
const language = 'PlantUML';
const replacer = jasmine.createSpy('replacer');

codeBlockManager.setReplacer(language, replacer);
codeBlockManager.createCodeBlockHtml(language, 'foo');

expect(replacer.calls.mostRecent().args[1]).toBe('plantuml');
});
});
});

0 comments on commit f9388b5

Please sign in to comment.