Added tests for UFM parsing

This commit is contained in:
leekelleher
2024-07-25 09:32:19 +01:00
committed by Lee Kelleher
parent b85d664ff2
commit bca1d6fc14
2 changed files with 33 additions and 1 deletions

View File

@@ -28,7 +28,7 @@ UmbDomPurify.addHook('afterSanitizeAttributes', function (node) {
}
});
const UmbMarked = new Marked({
export const UmbMarked = new Marked({
async: true,
gfm: true,
breaks: true,

View File

@@ -0,0 +1,32 @@
import { expect } from '@open-wc/testing';
import { ufm } from './marked-ufm.plugin.js';
import { UmbMarked } from '../index.js';
import { UmbUfmLabelValueComponent } from '../ufm-components/label-value.component.js';
import { UmbUfmLocalizeComponent } from '../ufm-components/localize.component.js';
describe('UmbMarkedUfm', () => {
describe('UFM parsing', () => {
const runs = [
{ ufm: '{=prop1}', expected: '<ufm-label-value alias="prop1"></ufm-label-value>' },
{ ufm: '{= prop1}', expected: '<ufm-label-value alias="prop1"></ufm-label-value>' },
{ ufm: '{= prop1 }', expected: '<ufm-label-value alias="prop1"></ufm-label-value>' },
{ ufm: '{{=prop1}}', expected: '{<ufm-label-value alias="prop1"></ufm-label-value>}' },
{ ufm: '{#general_add}', expected: '<umb-localize key="general_add"></umb-localize>' },
];
// Manually configuring the UFM components for testing.
UmbMarked.use(
ufm([
{ alias: 'Umb.Markdown.LabelValue', marker: '=', render: new UmbUfmLabelValueComponent().render },
{ alias: 'Umb.Markdown.Localize', marker: '#', render: new UmbUfmLocalizeComponent().render },
]),
);
runs.forEach((run) => {
it(`Parsing "${run.ufm}"`, async () => {
const markup = await UmbMarked.parseInline(run.ufm);
expect(markup).to.equal(run.expected);
});
});
});
});