mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-10 10:30:13 +08:00
4408750847
* Fix bootstrap when no env specified * add PluginWithExceptionTest * Add exceptedExceptionMessage in MCIT(Throwable or Exception may not work?) * Using red color show disabled plugins in /status command * Catch exception during enable process * Count plugins without disabled plugins * Revert "Fix bootstrap when no env specified" This reverts commit ff9bb180fd6687c5da27b8a38da2658a1b26ad93. * format * format * halt plugin enable process when mirai failed to enable it dependencies. * Update mirai-console/backend/mirai-console/src/internal/plugin/PluginManagerImpl.kt hint Co-authored-by: Him188 <Him188@mamoe.net> * rename tmp to dependsOn * Revert changes of PluginManagerImpl * Plugin callback executions assertions * Improve & Fix Logic * Fix PluginDependOnErrorPlugin * Update err msg * move dependencies check from JvmPluginInternal.kt to BuiltInJvmPluginLoaderImpl.kt * typo * don't throw err caused by dependencies fail Co-authored-by: Him188 <Him188@mamoe.net> Co-authored-by: Karlatemp <kar@kasukusakura.com>
67 lines
2.4 KiB
Kotlin
67 lines
2.4 KiB
Kotlin
/*
|
|
* Copyright 2019-2021 Mamoe Technologies and contributors.
|
|
*
|
|
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
|
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
|
*
|
|
* https://github.com/mamoe/mirai/blob/dev/LICENSE
|
|
*/
|
|
|
|
package net.mamoe.console.integrationtest.testpoints.plugin
|
|
|
|
import net.mamoe.console.integrationtest.AbstractTestPointAsPlugin
|
|
import net.mamoe.mirai.console.extension.PluginComponentStorage
|
|
import net.mamoe.mirai.console.internal.plugin.ConsoleJvmPluginFuncCallbackStatus
|
|
import net.mamoe.mirai.console.internal.plugin.ConsoleJvmPluginFuncCallbackStatusExcept
|
|
import net.mamoe.mirai.console.plugin.PluginManager
|
|
import net.mamoe.mirai.console.plugin.id
|
|
import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription
|
|
import net.mamoe.mirai.console.plugin.jvm.KotlinPlugin
|
|
import org.junit.jupiter.api.Assertions.assertFalse
|
|
import kotlin.test.fail
|
|
|
|
@ConsoleJvmPluginFuncCallbackStatusExcept.OnEnable(ConsoleJvmPluginFuncCallbackStatus.FAILED)
|
|
internal object PluginDependOnErrorPlugin : AbstractTestPointAsPlugin() {
|
|
private var isOnEnabledExecuted: Boolean = false
|
|
|
|
override fun newPluginDescription(): JvmPluginDescription {
|
|
return JvmPluginDescription(
|
|
id = "net.mamoe.testpoint.plugin-depend-on-error-plugin",
|
|
version = "1.0.0",
|
|
name = "PluginDependOnErrorPlugin",
|
|
) {
|
|
dependsOn("net.mamoe.testpoint.plugin-with-exception-test")
|
|
}
|
|
}
|
|
|
|
override fun beforeConsoleStartup() {
|
|
isOnEnabledExecuted = false
|
|
}
|
|
|
|
override fun KotlinPlugin.onLoad0(storage: PluginComponentStorage) {
|
|
|
|
}
|
|
|
|
override fun KotlinPlugin.onEnable0() {
|
|
// unreachable
|
|
isOnEnabledExecuted = true
|
|
fail("net.mamoe.testpoint.plugin-depend-on-error-plugin enabled")
|
|
}
|
|
|
|
override fun onConsoleStartSuccessfully() {
|
|
assertFalse { isOnEnabledExecuted }
|
|
assertFalse {
|
|
PluginManager
|
|
.plugins
|
|
.first { it.id == "net.mamoe.testpoint.plugin-with-exception-test" }
|
|
.isEnabled
|
|
}
|
|
assertFalse {
|
|
PluginManager
|
|
.plugins
|
|
.first { it.id == "net.mamoe.testpoint.plugin-depend-on-error-plugin" }
|
|
.isEnabled
|
|
}
|
|
}
|
|
}
|