codn_ts
Version:
智能代码分析工具 - 支持语义搜索、调用链分析和代码结构可视化,对大模型/AI agent 友好
117 lines • 5.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const symbol_utils_1 = require("./symbol_utils");
(0, vitest_1.describe)("symbol_utils", () => {
(0, vitest_1.describe)("checkRealFuncChar", () => {
(0, vitest_1.it)("应该找到简单函数声明的正确位置", () => {
const rawLine = "function testFunction() { return true; }";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 9, // 原始位置
"testFunction", 12, // Function kind
"file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 9,
});
});
(0, vitest_1.it)("应该处理箭头函数声明", () => {
const rawLine = 'const arrowFunc = () => { console.log("test"); }';
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 6, // 原始位置
"arrowFunc", 12, // Function kind
"file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 6,
});
});
(0, vitest_1.it)("应该处理类方法声明", () => {
const rawLine = " public methodName(param: string): void {";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 5, 9, // 原始位置
"methodName", 6, // Method kind
"file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 5,
character: 9,
});
});
(0, vitest_1.it)("应该处理多行声明", () => {
const rawLine = `/**
* 这是一个测试函数
*/
function multiLineFunction() {
return "test";
}`;
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 0, // 原始位置
"multiLineFunction", 12, // Function kind
"file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 3,
character: 9,
});
});
(0, vitest_1.it)("应该处理包含特殊字符的函数名", () => {
const rawLine = "function $special_Function$() { return true; }";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 9, // 原始位置
"$special_Function$", 12, // Function kind
"file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 9,
});
});
(0, vitest_1.it)("应该处理正则表达式特殊字符", () => {
const rawLine = "function test.function() { return true; }";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 9, // 原始位置
"test.function", 12, // Function kind
"file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 9,
});
});
(0, vitest_1.it)("应该处理变量名包含函数名的情况", () => {
const rawLine = "const testFunctionVar = testFunction();";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 6, // 原始位置
"testFunction", 12, // Function kind
"file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 24,
});
});
(0, vitest_1.it)("应该处理空字符串输入", () => {
const rawLine = "";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 0, "testFunction", 12, "file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 0,
});
});
(0, vitest_1.it)("应该处理不匹配的函数名", () => {
const rawLine = "function otherFunction() { return true; }";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 9, "nonExistentFunction", 12, "file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 9,
});
});
(0, vitest_1.it)("应该处理 TypeScript 泛型函数", () => {
const rawLine = "function genericFunction<T>(param: T): T { return param; }";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 9, "genericFunction", 12, "file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 9,
});
});
(0, vitest_1.it)("应该处理异步函数声明", () => {
const rawLine = "async function asyncFunction(): Promise<void> {";
const result = (0, symbol_utils_1.checkRealFuncChar)(rawLine, 0, 15, // async function 后的位置
"asyncFunction", 12, "file:///test.ts");
(0, vitest_1.expect)(result).toEqual({
line: 0,
character: 15,
});
});
});
});
//# sourceMappingURL=symbol_utils.test.js.map