2019-06-15 14:15:34 +02:00
package moe.kageru.kagebot.features
import io.kotlintest.specs.StringSpec
import io.mockk.every
import io.mockk.mockk
import io.mockk.verify
2019-07-11 21:05:35 +02:00
import moe.kageru.kagebot.Kagebot
2019-06-15 14:15:34 +02:00
import moe.kageru.kagebot.TestUtil
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 " {
2019-07-11 21:05:35 +02:00
val message = TestUtil . mockMessage ( " !debug " )
every { message . messageAuthor . isBotOwner } returns false
Kagebot . processMessage ( message )
DebugFeature ( ) . handle ( message )
2019-06-15 14:15:34 +02:00
verify ( exactly = 0 ) { message . channel . sendMessage ( any < EmbedBuilder > ( ) ) }
}
" should return something " {
val message = mockk < MessageCreateEvent > {
every { messageAuthor . isBotOwner } returns true
2019-07-11 21:05:35 +02:00
every { readableMessageContent } returns " !debug "
2019-06-15 14:15:34 +02:00
every { channel . sendMessage ( any < EmbedBuilder > ( ) ) } returns mockk ( )
}
2019-07-11 21:05:35 +02:00
DebugFeature ( ) . handle ( message )
2019-06-15 14:15:34 +02:00
verify ( exactly = 1 ) { message . channel . sendMessage ( any < EmbedBuilder > ( ) ) }
}
2019-07-13 14:52:05 +02:00
} )