11 lines
733 B
TypeScript
11 lines
733 B
TypeScript
import { expect, test } from "bun:test";
|
|
import { renderRichText, richTextSchema } from "../src/rich-text.ts";
|
|
|
|
test("semantic text is escaped, bounded, and rejects arbitrary markup properties", () => {
|
|
expect(renderRichText({text:"<hello>\nworld",richText:[{text:"<hello>",bold:true},{text:"\nworld",italic:true,underline:true}]})).toBe("<strong><hello></strong><em><u><br />world</u></em>");
|
|
expect(richTextSchema.parse([{text:"hello",html:"<script>"}]).ok).toBe(false);
|
|
expect(richTextSchema.parse([{text:"hello",bold:"yes"}]).ok).toBe(false);
|
|
expect(richTextSchema.parse([{text:"a".repeat(200001)}]).ok).toBe(false);
|
|
expect(renderRichText({text:"Changed",richText:[{text:"Old",bold:true}]})).toBe("Changed");
|
|
});
|