added tests for welcome feature

This commit is contained in:
kageru 2019-06-15 12:03:43 +02:00
parent c8847824ee
commit 2ed5d6ab19
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
3 changed files with 31 additions and 21 deletions

View File

@ -43,14 +43,18 @@ object TestUtil {
}
}
fun prepareTestEnvironment(sentMessages: MutableList<EmbedBuilder> = mutableListOf()) {
fun prepareTestEnvironment(
sentEmbeds: MutableList<EmbedBuilder> = mutableListOf(),
sentMessages: MutableList<String> = mutableListOf()
) {
val channel = mockk<Optional<ServerTextChannel>> {
every { isPresent } returns true
every { get() } returns mockk {
every { sendMessage(capture(sentMessages)) } returns mockk {
every { sendMessage(capture(sentEmbeds)) } returns mockk {
every { join() } returns mockk()
every { isCompletedExceptionally } returns false
}
every { sendMessage(capture(sentMessages)) } returns mockk()
}
}
val api = mockk<DiscordApi> {

View File

@ -1,45 +1,41 @@
package moe.kageru.kagebot
import io.kotlintest.matchers.string.shouldContain
import io.kotlintest.shouldBe
import io.kotlintest.specs.StringSpec
import io.mockk.every
import io.mockk.mockk
import io.mockk.slot
import org.javacord.api.entity.message.embed.EmbedBuilder
class FeatureTest
/*
class FeatureTest : StringSpec({
class WelcomeFeatureTest : StringSpec({
TestUtil.prepareTestEnvironment()
"should send welcome" {
val sentMessages = mutableListOf<EmbedBuilder>()
Kagebot.welcomeUser(
mockk {
every { user } returns mockk {
every { id } returns 123
every { sendMessage(capture(sentMessages)) }
every { sendMessage(capture(sentMessages)) } returns mockk {
every { join() } returns mockk()
every { isCompletedExceptionally } returns false
}
}
}
)
sentMessages.size shouldBe 1
TestUtil.embedToString(sentMessages[0]).let { embed ->
Config.config.features!!.welcome!!.content!!.entries.forEach { (title, content) ->
embed shouldContain title
embed shouldContain content
}
}
sentMessages shouldBe mutableListOf(Globals.config.features.welcome!!.embed)
}
"should send welcome fallback if DMs are disabled" {
val dm = slot<String>()
val sentMessages = mutableListOf<EmbedBuilder>()
TestUtil.prepareTestEnvironment(sentMessages)
val message = mutableListOf<String>()
TestUtil.prepareTestEnvironment(sentMessages = message)
Kagebot.welcomeUser(
mockk {
every { user } returns mockk {
every { id } returns 123
every { sendMessage(capture(dm)) }
every { sendMessage(any<EmbedBuilder>()) } returns mockk {
every { join() } returns mockk()
every { isCompletedExceptionally } returns true
}
}
}
)
message shouldBe mutableListOf("<@123> welcome")
}
})
*/

View File

@ -6,3 +6,13 @@ color = "#1793d0"
permissionDenied = "no permissions"
redirectedMessage = "says"
messageDeleted = "message dongered"
[feature.welcome]
enabled = true
fallbackChannel = "123"
fallbackMessage = "@@ welcome"
# This is a list of pairs where the key is the title and the value the content of the paragraph.
# Do not use empty strings to get empty headings or paragraphs. The discord API rejects those.
[feature.welcome.content]
"Welcome to the Server" = "This is the content of the first paragraph"
"Second paragraph heading" = "Second paragraph content"