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

45 lines
1.5 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-07-13 15:39:50 +02:00
import moe.kageru.kagebot.config.Config
2019-06-15 14:15:34 +02:00
import moe.kageru.kagebot.Kagebot
import moe.kageru.kagebot.TestUtil
import org.javacord.api.entity.message.embed.EmbedBuilder
2019-06-15 12:03:43 +02:00
class WelcomeFeatureTest : StringSpec({
TestUtil.prepareTestEnvironment()
"should send welcome" {
val sentMessages = mutableListOf<EmbedBuilder>()
Kagebot.welcomeUser(
mockk {
every { user } returns mockk {
2019-06-15 12:03:43 +02:00
every { sendMessage(capture(sentMessages)) } returns mockk {
every { join() } returns mockk()
every { isCompletedExceptionally } returns false
}
}
}
)
2019-07-13 15:39:50 +02:00
sentMessages shouldBe mutableListOf(Config.features.welcome!!.embed)
}
"should send welcome fallback if DMs are disabled" {
2019-06-15 12:03:43 +02:00
val message = mutableListOf<String>()
TestUtil.prepareTestEnvironment(sentMessages = message)
Kagebot.welcomeUser(
mockk {
every { user } returns mockk {
every { id } returns 123
2019-06-15 12:03:43 +02:00
every { sendMessage(any<EmbedBuilder>()) } returns mockk {
every { join() } returns mockk()
every { isCompletedExceptionally } returns true
}
}
}
)
2019-06-15 12:03:43 +02:00
message shouldBe mutableListOf("<@123> welcome")
}
})