33 lines
838 B
JavaScript
33 lines
838 B
JavaScript
"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);
|
|
});
|