82 lines
2.0 KiB
JavaScript
82 lines
2.0 KiB
JavaScript
|
// @flow
|
||
|
import assert from 'assert';
|
||
|
|
||
|
import {escapeMarkdown, md} from '../src/diagnostic';
|
||
|
|
||
|
describe('escapeMarkdown', () => {
|
||
|
it('returns an escaped string 01', () => {
|
||
|
assert.strictEqual('\\*test\\*', escapeMarkdown('*test*'));
|
||
|
});
|
||
|
|
||
|
it('returns an escaped string 02', () => {
|
||
|
assert.strictEqual('\\_test\\_', escapeMarkdown('_test_'));
|
||
|
});
|
||
|
|
||
|
it('returns an escaped string 03', () => {
|
||
|
assert.strictEqual('\\~test\\~', escapeMarkdown('~test~'));
|
||
|
});
|
||
|
|
||
|
it('returns an escaped string 04', () => {
|
||
|
assert.strictEqual('\\*\\_\\~test\\~\\_\\*', escapeMarkdown('*_~test~_*'));
|
||
|
});
|
||
|
|
||
|
it('returns an escaped string with backslash 01', () => {
|
||
|
assert.strictEqual('\\\\test\\\\', escapeMarkdown('\\test\\'));
|
||
|
});
|
||
|
|
||
|
it('returns an escaped string with backslash 02', () => {
|
||
|
assert.strictEqual('\\\\\\*test\\*\\\\', escapeMarkdown('\\*test*\\'));
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('md tagged template literal', () => {
|
||
|
it('bold placeholder', () => {
|
||
|
assert.strictEqual(
|
||
|
'*Test*: **\\_abc\\_**',
|
||
|
md`*Test*: ${md.bold('_abc_')}`,
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('italic placeholder', () => {
|
||
|
assert.strictEqual(
|
||
|
'*Test*: _\\_abc\\__',
|
||
|
md`*Test*: ${md.italic('_abc_')}`,
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('underline placeholder', () => {
|
||
|
assert.strictEqual(
|
||
|
'*Test*: __\\_abc\\___',
|
||
|
md`*Test*: ${md.underline('_abc_')}`,
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('strikethrough placeholder', () => {
|
||
|
assert.strictEqual(
|
||
|
'*Test*: ~~\\_abc\\_~~',
|
||
|
md`*Test*: ${md.strikethrough('_abc_')}`,
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('escapes only placeholders', () => {
|
||
|
assert.strictEqual('*Test*: \\_abc\\_', md`*Test*: ${'_abc_'}`);
|
||
|
});
|
||
|
|
||
|
it('behaves like native template literal', () => {
|
||
|
let v = {
|
||
|
toString() {
|
||
|
return 'a';
|
||
|
},
|
||
|
// $FlowFixMe[invalid-computed-prop]
|
||
|
[Symbol.toPrimitive]() {
|
||
|
return 'b';
|
||
|
},
|
||
|
};
|
||
|
assert.strictEqual('Test: b', md`Test: ${v}`);
|
||
|
});
|
||
|
|
||
|
it('supports null and undefined', () => {
|
||
|
assert.strictEqual('Test: undefined null', md`Test: ${undefined} ${null}`);
|
||
|
});
|
||
|
});
|