Files

27 lines
1.0 KiB
TypeScript

import { expect, test } from "bun:test";
import { documentDiagnostics, virtualTypeScriptDocument } from "../src/index.ts";
test("editor diagnostics accept translated PageHeader attributes without hiding real errors", () => {
const document = {
uri: "file:///contact.wrn",
text: `page Contact {
view {
<div data-component="PageHeader" eyebrow="{t:contact.eyebrow}" title="{t:contact.title}" description="{t:contact.description}"></div>
<p title="{t:contact.title} {missingValue}"></p>
}
}`,
};
const diagnostics = documentDiagnostics(document).filter(
(item) => item.source === "wrnexus-types",
);
expect(diagnostics).toHaveLength(1);
expect(diagnostics[0]?.message).toContain("missingValue");
expect(diagnostics[0]?.range.start.line).toBe(3);
expect(virtualTypeScriptDocument(document).text).not.toContain("void (t:");
expect(
documentDiagnostics({ ...document, text: document.text.replace("{missingValue}", "") }).filter(
(item) => item.source === "wrnexus-types",
),
).toEqual([]);
});