fix(vscode): stop duplicating completions inside view blocks

This commit is contained in:
2026-08-18 21:23:54 +05:30
parent b344d2a70a
commit 2c8841cc5f
3 changed files with 71 additions and 1 deletions
@@ -0,0 +1,32 @@
"use strict";
const test = require("node:test");
const assert = require("node:assert");
const Module = require("node:module");
// Mock the vscode module for unit tests
const originalLoad = Module._load;
Module._load = function load(request, parent, isMain) {
if (request === "vscode") return {};
return originalLoad.call(this, request, parent, isMain);
};
const { isInsideViewBlock } = require("../src/completion.js");
Module._load = originalLoad;
const PAGE = `page Home {
view {
<div>hello</div>
}
functions {
function go() {}
}
}
`;
test("a markup offset is inside a view block", () => {
assert.equal(isInsideViewBlock(PAGE, PAGE.indexOf("<div")), true);
});
test("a functions-block offset is not inside a view block", () => {
assert.equal(isInsideViewBlock(PAGE, PAGE.indexOf("function go")), false);
});