discord-kagebot/src/test/kotlin/moe/kageru/kagebot/features/WelcomeFeatureTest.kt

49 lines
1.6 KiB
Kotlin
Raw Normal View History

2019-06-15 14:15:34 +02:00
package moe.kageru.kagebot.features
import io.kotlintest.shouldBe
import io.kotlintest.specs.StringSpec
import io.mockk.every
import io.mockk.mockk
2019-11-24 14:03:45 +01:00
import io.mockk.verify
2019-06-15 14:15:34 +02:00
import moe.kageru.kagebot.TestUtil
2019-07-17 23:42:12 +02:00
import moe.kageru.kagebot.config.Config
2019-11-24 14:03:45 +01:00
import moe.kageru.kagebot.extensions.channelsByName
import org.javacord.api.entity.message.embed.EmbedBuilder
2019-06-15 12:03:43 +02:00
2019-07-17 23:42:12 +02:00
@ExperimentalStdlibApi
2019-06-15 12:03:43 +02:00
class WelcomeFeatureTest : StringSpec({
2019-11-14 15:10:30 +01:00
TestUtil.prepareTestEnvironment()
"should send welcome" {
val sentMessages = mutableListOf<EmbedBuilder>()
Config.features.welcome!!.welcomeUser(
mockk {
every { user } returns mockk {
every { discriminatedName } returns "testuser#1234"
every { sendMessage(capture(sentMessages)) } returns mockk {
every { join() } returns mockk()
every { isCompletedExceptionally } returns false
}
}
}
)
sentMessages shouldBe mutableListOf(Config.features.welcome!!.embed)
}
"should send welcome fallback if DMs are disabled" {
Config.features.welcome!!.welcomeUser(
mockk {
every { user } returns mockk {
every { discriminatedName } returns "testuser#1234"
every { id } returns 123
every { sendMessage(any<EmbedBuilder>()) } returns mockk {
every { join() } returns mockk()
every { isCompletedExceptionally } returns true
}
2019-11-24 14:03:45 +01:00
every { mentionTag } returns "<@123>"
2019-11-14 15:10:30 +01:00
}
}
)
2019-11-24 14:03:45 +01:00
val channel = Config.server.channelsByName("").first()
verify(exactly = 1) { channel.sendMessage("<@123> welcome") }
2019-11-14 15:10:30 +01:00
}
})