44 lines
1.3 KiB
Kotlin
44 lines
1.3 KiB
Kotlin
package moe.kageru.kagebot
|
|
|
|
import io.kotlintest.shouldBe
|
|
import io.kotlintest.shouldNotBe
|
|
import io.kotlintest.specs.StringSpec
|
|
import io.mockk.every
|
|
import io.mockk.mockk
|
|
import moe.kageru.kagebot.config.Config
|
|
import moe.kageru.kagebot.config.LocalizationSpec
|
|
import moe.kageru.kagebot.config.SystemSpec
|
|
import moe.kageru.kagebot.features.SetConfigFeature
|
|
import java.awt.Color
|
|
|
|
@ExperimentalStdlibApi
|
|
class ConfigTest : StringSpec() {
|
|
init {
|
|
"should properly parse test config" {
|
|
TestUtil.prepareTestEnvironment()
|
|
Config.system[SystemSpec.serverId] shouldNotBe null
|
|
SystemSpec.color shouldBe Color.decode("#1793d0")
|
|
Config.features.welcome!!.embed shouldNotBe null
|
|
Config.commands.size shouldBe 3
|
|
}
|
|
|
|
"should parse test config via command" {
|
|
val redir = "says"
|
|
val testConfig = """
|
|
[localization]
|
|
redirectedMessage = "$redir"
|
|
messageDeleted = "dongered"
|
|
timeout = "timeout"
|
|
""".trimIndent()
|
|
val message = TestUtil.mockMessage("anything")
|
|
every { message.messageAttachments } returns listOf(
|
|
mockk {
|
|
every { url.openStream().readAllBytes() } returns testConfig.toByteArray()
|
|
},
|
|
)
|
|
SetConfigFeature().handle(message)
|
|
Config.localization[LocalizationSpec.redirectedMessage] shouldBe redir
|
|
}
|
|
}
|
|
}
|