chore(test): add test for content_renderer#renderCode

This commit is contained in:
Elian Doran
2025-01-10 21:47:29 +02:00
parent f12057f799
commit a05e174640
3 changed files with 48 additions and 5 deletions

View File

@@ -0,0 +1,33 @@
import { renderCode, type Result } from "./content_renderer.js";
describe("content_renderer", () => {
describe("renderCode", () => {
it("identifies empty content", () => {
const emptyResult: Result = {
header: "",
content: " "
};
renderCode(emptyResult);
expect(emptyResult.isEmpty).toBeTrue();
});
it("identifies unsupported content type", () => {
const emptyResult: Result = {
header: "",
content: Buffer.from("Hello world")
};
renderCode(emptyResult);
expect(emptyResult.isEmpty).toBeTrue();
});
it("wraps code in <pre>", () => {
const result: Result = {
header: "",
content: "\tHello\nworld"
};
renderCode(result);
expect(result.isEmpty).toBeFalsy();
expect(result.content).toBe("<pre>\tHello\nworld</pre>");
});
});
});

View File

@@ -5,10 +5,14 @@ import shareRoot from "./share_root.js";
import escapeHtml from "escape-html";
import SNote from "./shaca/entities/snote.js";
interface Result {
/**
* Represents the output of the content renderer.
*/
export interface Result {
header: string;
content: string | Buffer | undefined;
isEmpty: boolean;
/** Set to `true` if the provided content should be rendered as empty. */
isEmpty?: boolean;
}
function getContent(note: SNote) {
@@ -137,7 +141,10 @@ function handleAttachmentLink(linkEl: HTMLAnchorElement, href: string) {
}
}
function renderCode(result: Result) {
/**
* Renders a code note.
*/
export function renderCode(result: Result) {
if (typeof result.content !== "string" || !result.content?.trim()) {
result.isEmpty = true;
} else {