Updated parseTitle to remove escape characters
Tests pass, however the JS running in the browser appears to be behaving differently. Not got to the bottom of it yet
This commit is contained in:
parent
1c081f8777
commit
6a0a22a636
|
@ -31,7 +31,8 @@
|
|||
"jest": {
|
||||
"verbose": false,
|
||||
"roots": [
|
||||
"app"
|
||||
"app",
|
||||
"shared"
|
||||
],
|
||||
"moduleNameMapper": {
|
||||
"^.*[.](s?css|css)$": "<rootDir>/__mocks__/styleMock.js",
|
||||
|
|
|
@ -6,7 +6,10 @@ export default function parseTitle(text: string = '') {
|
|||
|
||||
// find and extract title
|
||||
const firstLine = text.trim().split(/\r?\n/)[0];
|
||||
const title = firstLine.replace(/^#/, '').trim();
|
||||
const trimmedTitle = firstLine.replace(/^#/, '').trim();
|
||||
|
||||
// remove any escape characters
|
||||
const title = trimmedTitle.replace(/\\([\\`*{}[\]()#+\-.!_>])/g, '$&');
|
||||
|
||||
// find and extract first emoji
|
||||
const matches = regex.exec(title);
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
/* eslint-disable flowtype/require-valid-file-annotation */
|
||||
import parseTitle from './parseTitle';
|
||||
|
||||
it('should trim the title', () => {
|
||||
expect(parseTitle(`# Lots of space `).title).toBe('Lots of space');
|
||||
});
|
||||
|
||||
it('should extract first title', () => {
|
||||
expect(parseTitle(`# Title one\n# Title two`).title).toBe('Title one');
|
||||
});
|
||||
|
||||
it('should remove escape characters', () => {
|
||||
expect(parseTitle(`# Thing \- one`).title).toBe('Thing - one');
|
||||
expect(parseTitle(`# \[wip\] Title`).title).toBe('[wip] Title');
|
||||
});
|
||||
|
||||
it('should parse emoji if first character', () => {
|
||||
const parsed = parseTitle(`# 😀 Title`);
|
||||
expect(parsed.title).toBe('😀 Title');
|
||||
expect(parsed.emoji).toBe('😀');
|
||||
});
|
||||
|
||||
it('should not parse emoji if not first character', () => {
|
||||
const parsed = parseTitle(`# Title 🌈`);
|
||||
expect(parsed.title).toBe('Title 🌈');
|
||||
expect(parsed.emoji).toBe(undefined);
|
||||
});
|
Reference in New Issue