Use utility function to check embed contents

This commit is contained in:
kageru 2019-07-11 20:39:17 +02:00
parent 79f84ff4dd
commit 731867f59e
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
3 changed files with 18 additions and 18 deletions

View File

@ -103,7 +103,11 @@ object TestUtil {
Globals.config.localization = oldLoc
}
fun assertEmbedContents(expected: List<String>, unexpected: List<String>, op: (MutableList<EmbedBuilder>) -> Unit) {
fun withReplyContents(
expected: List<String> = emptyList(),
unexpected: List<String> = emptyList(),
op: (MutableList<EmbedBuilder>) -> Unit
) {
val replies = mutableListOf<EmbedBuilder>()
op(replies)
replies.size shouldBe 1

View File

@ -5,7 +5,6 @@ import io.kotlintest.shouldBe
import io.kotlintest.specs.StringSpec
import io.mockk.every
import io.mockk.mockk
import io.mockk.verify
import moe.kageru.kagebot.Globals
import moe.kageru.kagebot.Globals.config
import moe.kageru.kagebot.Kagebot
@ -44,10 +43,9 @@ class CommandTest : StringSpec({
embed = { "$heading" = "$content" }
""".trimIndent()
) {
Kagebot.processMessage(mockMessage("!embed", replyEmbeds = calls))
calls.size shouldBe 1
embedToString(calls[0]) shouldContain "\"$heading\""
embedToString(calls[0]) shouldContain "\"$content\""
TestUtil.withReplyContents(expected = listOf(heading, content)) {
Kagebot.processMessage(mockMessage("!embed", replyEmbeds = it))
}
}
}
"should match contains command" {
@ -107,15 +105,13 @@ class CommandTest : StringSpec({
delete = true
""".trimIndent()
) {
val replies = mutableListOf<EmbedBuilder>()
val messageContent = "delet this"
val mockMessage = mockMessage(messageContent)
every { mockMessage.deleteMessage() } returns mockk()
every { mockMessage.messageAuthor.asUser() } returns Optional.of(messageableAuthor(replies))
Kagebot.processMessage(mockMessage)
verify(exactly = 1) { mockMessage.deleteMessage() }
replies.size shouldBe 1
embedToString(replies[0]) shouldContain messageContent
TestUtil.withReplyContents(expected = listOf(messageContent)) {
val mockMessage = mockMessage(messageContent)
every { mockMessage.deleteMessage() } returns mockk()
every { mockMessage.messageAuthor.asUser() } returns Optional.of(messageableAuthor(it))
Kagebot.processMessage(mockMessage)
}
}
}
"should refuse command without permissions" {
@ -253,7 +249,7 @@ class CommandTest : StringSpec({
""".trimIndent()
) {
val message = "this is a message"
Kagebot.processMessage(mockMessage("!redirect $message", replyEmbeds = calls))
Kagebot.processMessage(mockMessage("!redirect $message"))
calls.size shouldBe 1
embedToString(calls[0]) shouldContain "\"$message\""
}

View File

@ -5,7 +5,7 @@ import io.mockk.every
import io.mockk.mockk
import moe.kageru.kagebot.Globals
import moe.kageru.kagebot.TestUtil
import moe.kageru.kagebot.TestUtil.assertEmbedContents
import moe.kageru.kagebot.TestUtil.withReplyContents
import moe.kageru.kagebot.TestUtil.mockMessage
import moe.kageru.kagebot.TestUtil.withCommands
import moe.kageru.kagebot.config.RawHelpFeature
@ -32,7 +32,7 @@ class HelpFeatureTest : StringSpec({
withCommands(commandConfig) {
val expected = listOf("!ping", "!something")
val unexpected = listOf("not a prefix", "!prison")
assertEmbedContents(expected = expected, unexpected = unexpected) { replies ->
withReplyContents(expected = expected, unexpected = unexpected) { replies ->
HelpFeature(RawHelpFeature(true))
.handle(message = mockMessage("!help", replyEmbeds = replies))
//Kagebot.processMessage(TestUtil.mockMessage("!help", replyEmbeds = replies))
@ -43,7 +43,7 @@ class HelpFeatureTest : StringSpec({
withCommands(commandConfig) {
val expected = listOf("!ping", "!something", "!prison")
val unexpected = listOf("not a prefix")
assertEmbedContents(expected = expected, unexpected = unexpected) { replies ->
withReplyContents(expected = expected, unexpected = unexpected) { replies ->
val message = mockMessage("!help", replyEmbeds = replies)
every { message.messageAuthor.asUser() } returns Optional.of(mockk {
every { getRoles(any()) } returns listOf(