32 lines
1.3 KiB
Kotlin
32 lines
1.3 KiB
Kotlin
package moe.kageru.kagebot.features
|
|
|
|
import io.kotlintest.specs.StringSpec
|
|
import io.mockk.every
|
|
import io.mockk.mockk
|
|
import io.mockk.verify
|
|
import moe.kageru.kagebot.TestUtil
|
|
import moe.kageru.kagebot.config.RawDebugFeatures
|
|
import org.javacord.api.entity.message.embed.EmbedBuilder
|
|
import org.javacord.api.event.message.MessageCreateEvent
|
|
|
|
class DebugFeatureTest : StringSpec({
|
|
TestUtil.prepareTestEnvironment()
|
|
// this will fail if the bot tries to execute more than it should
|
|
// because the mock does not provide the necessary methods
|
|
"should ignore regular users" {
|
|
val message = mockk<MessageCreateEvent> {
|
|
every { messageAuthor.isBotOwner } returns false
|
|
}
|
|
DebugFeatures(RawDebugFeatures(true)).handle(message)
|
|
verify(exactly = 0) { message.channel.sendMessage(any<EmbedBuilder>()) }
|
|
}
|
|
"should return something" {
|
|
val message = mockk<MessageCreateEvent> {
|
|
every { messageAuthor.isBotOwner } returns true
|
|
every { readableMessageContent } returns "!debugstats something"
|
|
every { channel.sendMessage(any<EmbedBuilder>()) } returns mockk()
|
|
}
|
|
DebugFeatures(RawDebugFeatures(true)).handle(message)
|
|
verify(exactly = 1) { message.channel.sendMessage(any<EmbedBuilder>()) }
|
|
}
|
|
}) |