-
-
Notifications
You must be signed in to change notification settings - Fork 295
Open
Labels
Description
Describe the bug
在after中注册app.stop()后,运行测试时会从@satorijs抛出异常,原因为Bot.dispose()尝试访问ctx.bots.findIndex(),而bots为undefined.
TypeError: Cannot read properties of undefined (reading 'findIndex')
at MockBot.dispose (D:\CodeDocs\cloudea-koishi\node_modules\@satorijs\core\lib\index.cjs:399:33)
at event <dispose> (D:\CodeDocs\cloudea-koishi\node_modules\@satorijs\core\lib\index.cjs:357:34)
at Object.apply (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\reflect.ts:221:23)
at <anonymous> (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:179:21)
at <anonymous> (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:179:29)
at Array.filter (<anonymous>)
at ForkScope.reset (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:177:51)
at <anonymous> (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:264:12)
at fork <root> (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:118:14)
at <anonymous> (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:179:21)
at <anonymous> (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:179:29)
at Array.filter (<anonymous>)
at MainScope.reset (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:177:51)
at MainScope.reset (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\scope.ts:380:11)
at Proxy.stop (D:\CodeDocs\cloudea-koishi\node_modules\@cordisjs\core\src\events.ts:216:20)
at Context.<anonymous> (D:\CodeDocs\cloudea-koishi\external\warframe\tests\index.spec.ts:23:29)
at callFn (D:\CodeDocs\cloudea-koishi\node_modules\mocha\lib\runnable.js:366:21)
at Runnable.run (D:\CodeDocs\cloudea-koishi\node_modules\mocha\lib\runnable.js:354:5)
at next (D:\CodeDocs\cloudea-koishi\node_modules\mocha\lib\runner.js:551:10)
at Immediate.<anonymous> (D:\CodeDocs\cloudea-koishi\node_modules\mocha\lib\runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)Steps to reproduce
import { App } from "koishi";
import mock from "@koishijs/plugin-mock";
const app = new App();
app.plugin(mock);
const client = app.mock.client("123");
app.middleware(({ content }, next) => {
if (content === "天王盖地虎") {
return "宝塔镇河妖";
} else {
return next();
}
});
before(() => app.start());
after(() => app.stop());
it("example", async () => {
await client.shouldReply("天王盖地虎", "宝塔镇河妖");
await client.shouldReply("天王盖地虎");
await client.shouldNotReply("宫廷玉液酒");
});Expected behavior
不抛出异常
Screenshots
No response
Versions
- OS: Windows 10
- Node version: 24.11.1
- Koishi version: 4.18.9
Additional context
No response
Reactions are currently unavailable