"use strict"; const assert = require("node:assert"); const { test } = require("node:test"); const Module = require("node:module"); const originalLoad = Module._load; Module._load = function load(request, parent, isMain) { if (request === "vscode") { return { Diagnostic: class Diagnostic { constructor(range, message, severity) { this.range = range; this.message = message; this.severity = severity; } }, DiagnosticSeverity: { Error: 0, Warning: 1 }, Range: class Range { constructor(start, end) { this.start = start; this.end = end; } }, }; } return originalLoad.call(this, request, parent, isMain); }; const { findTopLevelDeclaration, maskLeadingTrivia, validateBalancedCharacters, } = require("../src/diagnostics"); Module._load = originalLoad; function mockDocument() { return { positionAt(offset) { return offset; }, }; } test("recognizes a WRN declaration after leading line comments", () => { const source = `// Component summary // More details component ThemeToggle { view { } }`; const declaration = findTopLevelDeclaration({}, source); assert.equal(declaration.kind, "component"); assert.equal(declaration.name, "ThemeToggle"); assert.equal(declaration.diagnostic, undefined); }); test("recognizes a WRN declaration after top-level imports", () => { const source = `import { appUrl } from "@wrnexus/helpers"; import type { Context } from "@wrnexus/core"; page Home { view { } }`; const declaration = findTopLevelDeclaration({}, source); assert.equal(declaration.kind, "page"); assert.equal(declaration.name, "Home"); assert.equal(declaration.diagnostic, undefined); }); test("masks only leading trivia and preserves source offsets", () => { const source = "\uFEFF// Summary\r\npage Home {\n // member comment\n}"; const masked = maskLeadingTrivia(source); assert.equal(masked.length, source.length); assert.equal(masked.indexOf("page Home"), source.indexOf("page Home")); assert.match(masked, /\/\/ member comment/); }); test("ignores apostrophes and brackets in line comments when checking balance", () => { const source = `// The framework's theme runtime binds the click } component ThemeToggle { props { label = "Toggle theme" class = "" } view { } }`; const diagnostics = validateBalancedCharacters(mockDocument(source), source); assert.deepEqual(diagnostics, []); });