2019-06-15 14:15:34 +02:00
package moe.kageru.kagebot.features
2019-06-12 23:43:36 +02:00
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
2019-06-12 23:43:36 +02:00
import org.javacord.api.entity.message.embed.EmbedBuilder
2019-06-15 12:03:43 +02:00
class WelcomeFeatureTest : StringSpec ( {
TestUtil . prepareTestEnvironment ( )
2019-06-12 23:43:36 +02:00
" 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-06-12 23:43:36 +02:00
}
}
)
2019-07-13 15:39:50 +02:00
sentMessages shouldBe mutableListOf ( Config . features . welcome !! . embed )
2019-06-12 23:43:36 +02:00
}
" should send welcome fallback if DMs are disabled " {
2019-06-15 12:03:43 +02:00
val message = mutableListOf < String > ( )
TestUtil . prepareTestEnvironment ( sentMessages = message )
2019-06-12 23:43:36 +02:00
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-12 23:43:36 +02:00
}
}
)
2019-06-15 12:03:43 +02:00
message shouldBe mutableListOf ( " <@123> welcome " )
2019-06-12 23:43:36 +02:00
}
} )