@zhin.js/core 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/lib/app.d.ts +5 -2
- package/lib/app.d.ts.map +1 -1
- package/lib/app.js +37 -5
- package/lib/app.js.map +1 -1
- package/lib/command.d.ts +2 -2
- package/lib/command.d.ts.map +1 -1
- package/lib/command.js +4 -4
- package/lib/command.js.map +1 -1
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +2 -0
- package/lib/config.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/plugin.d.ts +1 -4
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +6 -25
- package/lib/plugin.js.map +1 -1
- package/lib/prompt.d.ts.map +1 -1
- package/lib/prompt.js +1 -1
- package/lib/prompt.js.map +1 -1
- package/lib/types.d.ts +5 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts +8 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +29 -0
- package/lib/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/app.ts +38 -6
- package/src/command.ts +5 -5
- package/src/config.ts +2 -0
- package/src/index.ts +1 -0
- package/src/plugin.ts +7 -34
- package/src/prompt.ts +3 -3
- package/src/types.ts +5 -0
- package/src/utils.ts +27 -1
- package/tests/adapter.test.ts +3 -2
- package/tests/app.test.ts +7 -6
- package/tests/command.test.ts +71 -69
- package/tests/plugin.test.ts +18 -14
package/lib/utils.js
CHANGED
|
@@ -11,6 +11,35 @@ export const evaluate = (exp, context) => {
|
|
|
11
11
|
return undefined;
|
|
12
12
|
return result;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* 组合中间件,洋葱模型
|
|
16
|
+
* @param middlewares 中间件列表
|
|
17
|
+
* @returns 中间件处理函数
|
|
18
|
+
*/
|
|
19
|
+
export function compose(middlewares) {
|
|
20
|
+
return function (message, next = () => Promise.resolve()) {
|
|
21
|
+
let index = -1;
|
|
22
|
+
const dispatch = async (i = 0) => {
|
|
23
|
+
if (i <= index)
|
|
24
|
+
return Promise.reject(new Error('next() called multiple times'));
|
|
25
|
+
index = i;
|
|
26
|
+
let fn = middlewares[i];
|
|
27
|
+
if (i === middlewares.length)
|
|
28
|
+
fn = next;
|
|
29
|
+
if (!fn)
|
|
30
|
+
return;
|
|
31
|
+
try {
|
|
32
|
+
return await fn(message, () => dispatch(i + 1));
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
// 中间件异常应该被记录但不中断整个流程
|
|
36
|
+
console.error('Middleware error:', error);
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
return dispatch(0);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
14
43
|
const evalCache = Object.create(null);
|
|
15
44
|
export const execute = (exp, context) => {
|
|
16
45
|
const fn = evalCache[exp] || (evalCache[exp] = toFunction(exp));
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Zhin机器人核心框架",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"segment-matcher": "1.0.
|
|
27
|
+
"segment-matcher": "1.0.4",
|
|
28
28
|
"yaml": "^2.3.4",
|
|
29
29
|
"toml": "^3.0.0",
|
|
30
30
|
"dotenv": "^16.3.1",
|
package/src/app.ts
CHANGED
|
@@ -13,16 +13,17 @@ import {
|
|
|
13
13
|
BeforeSendHandler,
|
|
14
14
|
RegisteredAdapter,
|
|
15
15
|
SendOptions,
|
|
16
|
+
MessageMiddleware,
|
|
16
17
|
} from "./types.js";
|
|
17
18
|
import { Message } from "./message.js";
|
|
18
19
|
import { fileURLToPath } from "url";
|
|
19
20
|
import { generateEnvTypes } from "./types-generator.js";
|
|
20
|
-
import logger, { setName } from "@zhin.js/logger";
|
|
21
|
-
import { sleep } from "./utils.js";
|
|
21
|
+
import logger, { setName, setLevel, LogLevel } from "@zhin.js/logger";
|
|
22
|
+
import { compose, sleep } from "./utils.js";
|
|
22
23
|
import { PermissionChecker, Permissions } from "./permissions.js";
|
|
23
24
|
// 创建静态logger用于配置加载等静态操作
|
|
24
25
|
setName("Zhin");
|
|
25
|
-
import {
|
|
26
|
+
import { Plugin } from "./plugin.js";
|
|
26
27
|
import { Adapter } from "./adapter";
|
|
27
28
|
import { MessageCommand } from "./command";
|
|
28
29
|
import { Component } from "./component";
|
|
@@ -85,13 +86,39 @@ export class App extends HMR<Plugin> {
|
|
|
85
86
|
debug: finalConfig.debug,
|
|
86
87
|
});
|
|
87
88
|
this.on("message.send", this.sendMessage.bind(this));
|
|
89
|
+
this.on('message.receive',this.receiveMessage.bind(this))
|
|
88
90
|
process.on("uncaughtException", (e) => {
|
|
89
|
-
|
|
91
|
+
const args = e instanceof Error ? [e.message, { stack: e.stack }] : [e];
|
|
92
|
+
this.logger.error(...args);
|
|
90
93
|
});
|
|
91
94
|
process.on("unhandledRejection", (e) => {
|
|
92
|
-
|
|
95
|
+
const args = e instanceof Error ? [e.message, { stack: e.stack }] : [e];
|
|
96
|
+
this.logger.error(...args);
|
|
93
97
|
});
|
|
94
98
|
this.config = finalConfig;
|
|
99
|
+
setLevel(finalConfig.log_level);
|
|
100
|
+
this.middleware(this.messageMiddleware.bind(this))
|
|
101
|
+
}
|
|
102
|
+
async receiveMessage<P extends RegisteredAdapter>(message: Message<AdapterMessage<P>>) {
|
|
103
|
+
const middlewares=this.dependencyList.reduce((result, plugin) => {
|
|
104
|
+
result.push(...plugin.middlewares as MessageMiddleware<P>[]);
|
|
105
|
+
return result;
|
|
106
|
+
}, [...this.middlewares] as MessageMiddleware<P>[]);
|
|
107
|
+
const handle=compose(middlewares)
|
|
108
|
+
await handle(message)
|
|
109
|
+
}
|
|
110
|
+
async messageMiddleware(message: Message, next: () => Promise<void>) {
|
|
111
|
+
for (const command of this.commands) {
|
|
112
|
+
const result = await command.handle(message, this);
|
|
113
|
+
if (result) message.$reply(result);
|
|
114
|
+
}
|
|
115
|
+
return next();
|
|
116
|
+
}
|
|
117
|
+
get commands() {
|
|
118
|
+
return this.dependencyList.reduce((result, plugin) => {
|
|
119
|
+
result.push(...plugin.commands);
|
|
120
|
+
return result;
|
|
121
|
+
}, [] as MessageCommand[]);
|
|
95
122
|
}
|
|
96
123
|
/** 默认配置 */
|
|
97
124
|
/**
|
|
@@ -102,6 +129,7 @@ export class App extends HMR<Plugin> {
|
|
|
102
129
|
* - debug: 是否调试模式
|
|
103
130
|
*/
|
|
104
131
|
static defaultConfig: AppConfig = {
|
|
132
|
+
log_level: LogLevel.INFO,
|
|
105
133
|
plugin_dirs: ["./plugins"],
|
|
106
134
|
plugins: [],
|
|
107
135
|
bots: [],
|
|
@@ -153,7 +181,10 @@ export class App extends HMR<Plugin> {
|
|
|
153
181
|
* @param filePath 插件文件路径
|
|
154
182
|
*/
|
|
155
183
|
createDependency(name: string, filePath: string): Plugin {
|
|
156
|
-
|
|
184
|
+
const plugin = new Plugin(this, name, filePath);
|
|
185
|
+
// 将插件添加到依赖列表中
|
|
186
|
+
this.dependencies.set(name, plugin);
|
|
187
|
+
return plugin;
|
|
157
188
|
}
|
|
158
189
|
|
|
159
190
|
/** 获取App配置 */
|
|
@@ -298,6 +329,7 @@ function getPlugin(hmr: HMR<Plugin>, filename: string): Plugin {
|
|
|
298
329
|
if (childPlugin) {
|
|
299
330
|
return childPlugin;
|
|
300
331
|
}
|
|
332
|
+
logger.debug(`cant't find plugin for ${filename}, create new`);
|
|
301
333
|
const parent = hmr.findParent(
|
|
302
334
|
filename,
|
|
303
335
|
getCallerFiles(fileURLToPath(import.meta.url))
|
package/src/command.ts
CHANGED
|
@@ -3,8 +3,8 @@ import {AdapterMessage, SendContent} from "./types.js";
|
|
|
3
3
|
import {RegisteredAdapters} from "@zhin.js/types";
|
|
4
4
|
import type {Message} from "./message.js";
|
|
5
5
|
import {MaybePromise} from "@zhin.js/types";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { ZhinError } from "./errors.js";
|
|
7
|
+
import { App } from "./app.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* MessageCommand类:命令系统核心,基于segment-matcher实现。
|
|
@@ -32,11 +32,11 @@ export class MessageCommand<T extends keyof RegisteredAdapters=keyof RegisteredA
|
|
|
32
32
|
* @param plugin 插件实例
|
|
33
33
|
* @returns 命令返回内容或undefined
|
|
34
34
|
*/
|
|
35
|
-
async handle(message:Message<AdapterMessage<T>>,
|
|
35
|
+
async handle(message:Message<AdapterMessage<T>>,app:App):Promise<SendContent|undefined>{
|
|
36
36
|
for(const permission of this.#permissions){
|
|
37
|
-
const permit=
|
|
37
|
+
const permit=app.permissions.get(permission)
|
|
38
38
|
if(!permit) {
|
|
39
|
-
throw new
|
|
39
|
+
throw new ZhinError(`权限 ${permission} 不存在`)
|
|
40
40
|
}
|
|
41
41
|
const result=await permit.check(permission,message)
|
|
42
42
|
if(!result) return;
|
package/src/config.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
|
5
5
|
import { parse as parseToml } from 'toml';
|
|
6
6
|
import { config as loadDotenv } from 'dotenv';
|
|
7
7
|
import type {AppConfig, DefineConfig} from './types.js';
|
|
8
|
+
import { LogLevel } from '@zhin.js/logger';
|
|
8
9
|
|
|
9
10
|
export interface ConfigOptions {
|
|
10
11
|
configPath?: string;
|
|
@@ -262,6 +263,7 @@ export function saveConfig(config: AppConfig, filePath: string): void {
|
|
|
262
263
|
*/
|
|
263
264
|
export function createDefaultConfig(format: ConfigFormat = 'yaml'): AppConfig {
|
|
264
265
|
return {
|
|
266
|
+
log_level: LogLevel.INFO,
|
|
265
267
|
bots: [{
|
|
266
268
|
name: 'onebot11',
|
|
267
269
|
context: 'onebot11',
|
package/src/index.ts
CHANGED
package/src/plugin.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
import
|
|
7
|
-
import {AdapterMessage, BeforeSendHandler, RegisteredAdapter, SendOptions} from "./types.js";
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import {AdapterMessage, BeforeSendHandler,MessageMiddleware, RegisteredAdapter, SendOptions} from "./types.js";
|
|
8
8
|
import { PermissionItem,PermissionChecker } from './permissions.js';
|
|
9
9
|
import {Message} from './message.js'
|
|
10
10
|
import {Dependency, Logger,} from "@zhin.js/hmr";
|
|
@@ -17,9 +17,6 @@ import {Prompt} from "./prompt.js";
|
|
|
17
17
|
import { Schema } from '@zhin.js/database';
|
|
18
18
|
import { Cron} from './cron.js';
|
|
19
19
|
|
|
20
|
-
/** 消息中间件函数 */
|
|
21
|
-
export type MessageMiddleware<P extends RegisteredAdapter=RegisteredAdapter> = (message: Message<AdapterMessage<P>>, next: () => Promise<void>) => MaybePromise<void>;
|
|
22
|
-
|
|
23
20
|
|
|
24
21
|
// ============================================================================
|
|
25
22
|
// Plugin 类(插件的生命周期、命令/中间件/组件/定时任务等管理)
|
|
@@ -44,17 +41,13 @@ export class Plugin extends Dependency<Plugin> {
|
|
|
44
41
|
* @param filePath 插件文件路径
|
|
45
42
|
*/
|
|
46
43
|
constructor(parent: Dependency<Plugin>, name: string, filePath: string) {
|
|
44
|
+
// 在测试环境中跳过文件检查
|
|
45
|
+
if (process.env.NODE_ENV !== 'test' && !filePath.startsWith('/mock/')) {
|
|
46
|
+
filePath = fs.realpathSync(filePath);
|
|
47
|
+
}
|
|
47
48
|
super(parent, name, filePath);
|
|
49
|
+
this.logger.debug(`plugin ${name} created at ${filePath}`);
|
|
48
50
|
// 绑定消息事件,自动分发到命令和中间件
|
|
49
|
-
this.on('message.receive',this.#handleMessage.bind(this))
|
|
50
|
-
// 注册命令处理为默认中间件
|
|
51
|
-
this.addMiddleware(async (message,next)=>{
|
|
52
|
-
for(const command of this.commands){
|
|
53
|
-
const result=await command.handle(message,this);
|
|
54
|
-
if(result) message.$reply(result);
|
|
55
|
-
}
|
|
56
|
-
return next()
|
|
57
|
-
});
|
|
58
51
|
// 发送前渲染组件
|
|
59
52
|
this.beforeSend((options)=>renderComponents(this.components,options))
|
|
60
53
|
// 资源清理:卸载时清空模型、定时任务等
|
|
@@ -75,26 +68,6 @@ export class Plugin extends Dependency<Plugin> {
|
|
|
75
68
|
}
|
|
76
69
|
});
|
|
77
70
|
}
|
|
78
|
-
async #handleMessage(message: Message) {
|
|
79
|
-
try {
|
|
80
|
-
await this.#runMiddlewares(message, 0)
|
|
81
|
-
} catch (error) {
|
|
82
|
-
const messageError = new MessageError(
|
|
83
|
-
`消息处理失败: ${(error as Error).message}`,
|
|
84
|
-
message.$id,
|
|
85
|
-
message.$channel.id,
|
|
86
|
-
{ pluginName: this.name, originalError: error }
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
await errorManager.handle(messageError)
|
|
90
|
-
|
|
91
|
-
// 可选:发送错误回复给用户
|
|
92
|
-
try {
|
|
93
|
-
await message.$reply('抱歉,处理您的消息时出现了错误。')
|
|
94
|
-
} catch (replyError) {
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
71
|
addPermit<T extends RegisteredAdapter>(name:string|RegExp,check:PermissionChecker<T>){
|
|
99
72
|
this.permissions.push({name,check});
|
|
100
73
|
return this;
|
package/src/prompt.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {AdapterMessage, Dict, RegisteredAdapter} from './types.js';
|
|
2
|
-
import {
|
|
1
|
+
import {AdapterMessage, Dict, MessageMiddleware, RegisteredAdapter} from './types.js';
|
|
2
|
+
import { Plugin } from './plugin.js';
|
|
3
3
|
import { Message } from './message.js';
|
|
4
4
|
import { Schema } from './schema.js';
|
|
5
5
|
|
|
@@ -52,7 +52,7 @@ export class Prompt<P extends RegisteredAdapter> {
|
|
|
52
52
|
* @param timeoutText 超时提示
|
|
53
53
|
*/
|
|
54
54
|
middleware(callback: (input: string | Error) => any, timeout: number = 3 * 60 * 1000, timeoutText = '输入超时') {
|
|
55
|
-
const middleware: MessageMiddleware<P> = (event, next) => {
|
|
55
|
+
const middleware: MessageMiddleware<P> = async (event, next) => {
|
|
56
56
|
if (this.getChannelAddress<P>(event) !== this.getChannelAddress<P>(this.event)) return next();
|
|
57
57
|
callback(event.$raw);
|
|
58
58
|
dispose();
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {MaybePromise,RegisteredAdapters}from '@zhin.js/types'
|
|
2
|
+
import { LogLevel } from '@zhin.js/logger';
|
|
2
3
|
import {MessageChannel,Message} from "./message.js";
|
|
3
4
|
import {Adapter} from "./adapter.js";
|
|
4
5
|
import {Bot,BotConfig} from "./bot.js";
|
|
@@ -82,6 +83,9 @@ export interface Group {
|
|
|
82
83
|
member_count: number;
|
|
83
84
|
}
|
|
84
85
|
|
|
86
|
+
/** 消息中间件函数 */
|
|
87
|
+
export type MessageMiddleware<P extends RegisteredAdapter=RegisteredAdapter> = (message: Message<AdapterMessage<P>>, next: () => Promise<void>) => MaybePromise<void>;
|
|
88
|
+
|
|
85
89
|
|
|
86
90
|
/**
|
|
87
91
|
* App配置类型,涵盖机器人、数据库、插件、调试等
|
|
@@ -89,6 +93,7 @@ export interface Group {
|
|
|
89
93
|
export interface AppConfig {
|
|
90
94
|
/** 机器人配置列表 */
|
|
91
95
|
bots?: BotConfig[];
|
|
96
|
+
log_level: LogLevel;
|
|
92
97
|
/** 数据库配置列表 */
|
|
93
98
|
database?: DatabaseConfig;
|
|
94
99
|
/** 插件目录列表,默认为 ['./plugins', 'node_modules'] */
|
package/src/utils.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {Dict, MessageElement,
|
|
1
|
+
import {AdapterMessage, Dict, MessageElement, MessageMiddleware, RegisteredAdapter, SendContent} from "./types";
|
|
2
|
+
import { Message } from "./message.js";
|
|
2
3
|
|
|
3
4
|
export function getValueWithRuntime(template: string, ctx: Dict) {
|
|
4
5
|
const result = evaluate(template, ctx);
|
|
@@ -11,6 +12,31 @@ export const evaluate = <S, T = any>(exp: string, context: S) => {
|
|
|
11
12
|
if (result === `return(${exp})`) return undefined;
|
|
12
13
|
return result;
|
|
13
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* 组合中间件,洋葱模型
|
|
17
|
+
* @param middlewares 中间件列表
|
|
18
|
+
* @returns 中间件处理函数
|
|
19
|
+
*/
|
|
20
|
+
export function compose<P extends RegisteredAdapter>(middlewares: MessageMiddleware<P>[]){
|
|
21
|
+
return function(message: Message<AdapterMessage<P>>, next: () => Promise<void>=()=>Promise.resolve()){
|
|
22
|
+
let index = -1
|
|
23
|
+
const dispatch=async (i:number=0):Promise<void>=>{
|
|
24
|
+
if(i<=index) return Promise.reject(new Error('next() called multiple times'));
|
|
25
|
+
index=i
|
|
26
|
+
let fn=middlewares[i]
|
|
27
|
+
if(i===middlewares.length) fn=next
|
|
28
|
+
if(!fn) return;
|
|
29
|
+
try {
|
|
30
|
+
return await fn(message, ()=>dispatch(i+1));
|
|
31
|
+
} catch (error) {
|
|
32
|
+
// 中间件异常应该被记录但不中断整个流程
|
|
33
|
+
console.error('Middleware error:', error);
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
return dispatch(0);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
14
40
|
const evalCache: Record<string, Function> = Object.create(null);
|
|
15
41
|
export const execute = <S, T = any>(exp: string, context: S):T => {
|
|
16
42
|
const fn = evalCache[exp] || (evalCache[exp] = toFunction(exp));
|
package/tests/adapter.test.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { Bot } from '../src/bot'
|
|
|
4
4
|
import { Plugin } from '../src/plugin'
|
|
5
5
|
import { App } from '../src/app'
|
|
6
6
|
import type { BotConfig } from '../src/types'
|
|
7
|
+
import * as path from 'path'
|
|
7
8
|
|
|
8
9
|
describe('适配器类测试', () => {
|
|
9
10
|
// 创建测试用的Bot类
|
|
@@ -45,7 +46,7 @@ describe('适配器类测试', () => {
|
|
|
45
46
|
{ name: 'other-bot', context: 'other-adapter' }
|
|
46
47
|
]
|
|
47
48
|
})
|
|
48
|
-
plugin = app.createDependency('test-plugin', 'test-plugin.ts')
|
|
49
|
+
plugin = app.createDependency('test-plugin', '/mock/test-plugin.ts')
|
|
49
50
|
})
|
|
50
51
|
|
|
51
52
|
describe('构造函数工厂方法测试', () => {
|
|
@@ -188,7 +189,7 @@ describe('适配器类测试', () => {
|
|
|
188
189
|
}]
|
|
189
190
|
})
|
|
190
191
|
|
|
191
|
-
const extendedPlugin = extendedApp.createDependency('test-plugin', 'test-plugin.ts')
|
|
192
|
+
const extendedPlugin = extendedApp.createDependency('test-plugin', '/mock/test-plugin.ts')
|
|
192
193
|
const extendedAdapter = new Adapter('extended-adapter', ExtendedBot)
|
|
193
194
|
await extendedAdapter.start(extendedPlugin)
|
|
194
195
|
|
package/tests/app.test.ts
CHANGED
|
@@ -18,7 +18,8 @@ describe('App类测试', () => {
|
|
|
18
18
|
plugin_dirs: ['./test-plugins'],
|
|
19
19
|
plugins: [],
|
|
20
20
|
bots: [],
|
|
21
|
-
debug: true
|
|
21
|
+
debug: true,
|
|
22
|
+
log_level: 1
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
// 创建测试插件目录
|
|
@@ -74,10 +75,10 @@ describe('App类测试', () => {
|
|
|
74
75
|
|
|
75
76
|
describe('插件管理测试', () => {
|
|
76
77
|
it('应该正确创建插件依赖', () => {
|
|
77
|
-
const plugin = app.createDependency('test-plugin', 'test-plugin.ts')
|
|
78
|
+
const plugin = app.createDependency('test-plugin', '/mock/test-plugin.ts')
|
|
78
79
|
expect(plugin).toBeInstanceOf(Plugin)
|
|
79
80
|
expect(plugin.name).toBe('test-plugin')
|
|
80
|
-
expect(plugin.filename).
|
|
81
|
+
expect(plugin.filename).toContain('test-plugin.ts')
|
|
81
82
|
})
|
|
82
83
|
|
|
83
84
|
it('应该正确加载插件', async () => {
|
|
@@ -118,7 +119,7 @@ describe('App类测试', () => {
|
|
|
118
119
|
const adapter = new TestAdapter()
|
|
119
120
|
|
|
120
121
|
// 注册适配器
|
|
121
|
-
const plugin = app.createDependency('test-plugin', 'test-plugin.ts')
|
|
122
|
+
const plugin = app.createDependency('test-plugin', '/mock/test-plugin.ts')
|
|
122
123
|
const context = {
|
|
123
124
|
name: adapter.name,
|
|
124
125
|
mounted: () => adapter,
|
|
@@ -140,7 +141,7 @@ describe('App类测试', () => {
|
|
|
140
141
|
|
|
141
142
|
it('应该正确设置和获取上下文描述', async () => {
|
|
142
143
|
// 创建测试插件
|
|
143
|
-
const plugin = app.createDependency('test-plugin-desc', 'test-plugin-desc.ts')
|
|
144
|
+
const plugin = app.createDependency('test-plugin-desc', '/mock/test-plugin-desc.ts')
|
|
144
145
|
|
|
145
146
|
// 注册带描述的上下文
|
|
146
147
|
const context = {
|
|
@@ -179,7 +180,7 @@ describe('App类测试', () => {
|
|
|
179
180
|
content: '测试消息'
|
|
180
181
|
}
|
|
181
182
|
|
|
182
|
-
const plugin = app.createDependency('test-plugin', 'test-plugin.ts')
|
|
183
|
+
const plugin = app.createDependency('test-plugin', '/mock/test-plugin.ts')
|
|
183
184
|
const handler = vi.fn((opts) => ({
|
|
184
185
|
...opts,
|
|
185
186
|
content: '修改后的消息'
|