diff --git a/packages/integration-tests/tests/rendering.test.tsx b/packages/integration-tests/tests/rendering.test.tsx
index e8098f7..fe4bff4 100644
--- a/packages/integration-tests/tests/rendering.test.tsx
+++ b/packages/integration-tests/tests/rendering.test.tsx
@@ -4,7 +4,8 @@ import type { ExecutionContext } from "ava"
import test from "ava"
import type { Message } from "discord.js"
import { Client, TextChannel } from "discord.js"
-import { createRoot, Embed, Text } from "reacord"
+import type { ReacordRoot } from "reacord"
+import { createRoot, Embed, EmbedAuthor, Text } from "reacord"
import { pick } from "reacord-helpers/pick.js"
import { raise } from "reacord-helpers/raise.js"
import React from "react"
@@ -15,8 +16,9 @@ const client = new Client({
})
let channel: TextChannel
+let root: ReacordRoot
-test.before(async () => {
+test.serial.before(async () => {
await client.login(testBotToken)
const result =
@@ -29,26 +31,80 @@ test.before(async () => {
}
channel = result
+ root = createRoot(channel)
+
+ for (const [, message] of await channel.messages.fetch()) {
+ await message.delete()
+ }
})
test.after(() => {
client.destroy()
})
-test.beforeEach(async () => {
- const messages = await channel.messages.fetch()
- await Promise.all(messages.map((message) => message.delete()))
+// test.serial.beforeEach(async () => {
+// const messages = await channel.messages.fetch()
+// await Promise.all(messages.map((message) => message.delete()))
+// })
+
+test.serial("rapid updates", async (t) => {
+ // rapid updates
+ void root.render("hi world")
+ void root.render("hi the")
+ await root.render("hi moon")
+ await assertMessages(t, [{ content: "hi moon" }])
})
-test.serial("kitchen sink + destroy", async (t) => {
- const root = createRoot(channel)
+test.serial("nested text", async (t) => {
+ await root.render(
+
+ hi world{" "}
+
+ hi moon hi sun
+
+ ,
+ )
+ await assertMessages(t, [{ content: "hi world hi moon hi sun" }])
+})
+test.serial("empty embed fallback", async (t) => {
+ await root.render()
+ await assertMessages(t, [{ embeds: [{ description: "_ _" }] }])
+})
+
+test.serial("embed with only author", async (t) => {
+ await root.render(
+ ,
+ )
+ await assertMessages(t, [
+ { embeds: [{ description: "_ _", author: { name: "only author" } }] },
+ ])
+})
+
+test.serial("empty embed author", async (t) => {
+ await root.render(
+ ,
+ )
+ await assertMessages(t, [{ embeds: [{ description: "_ _" }] }])
+})
+
+test.serial("kitchen sink", async (t) => {
await root.render(
<>
message content
no space