added tests for welcome feature
This commit is contained in:
parent
c8847824ee
commit
2ed5d6ab19
|
@ -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> {
|
||||
|
|
|
@ -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")
|
||||
}
|
||||
})
|
||||
*/
|
|
@ -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"
|
Loading…
Reference in New Issue
Block a user