UNPKG

codn_ts

Version:

智能代码分析工具 - 支持语义搜索、调用链分析和代码结构可视化,对大模型/AI agent 友好

117 lines 5.2 kB
"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