more test fixes
This commit is contained in:
@@ -1,40 +1,48 @@
|
||||
import { test } from "vitest"
|
||||
// import { ReacordTester } from "./test-adapter"
|
||||
import { ButtonStyle, ComponentType } from "discord.js"
|
||||
import React from "react"
|
||||
import { beforeEach, expect, test } from "vitest"
|
||||
import { Link } from "../library/main"
|
||||
import { ReacordTester } from "./tester"
|
||||
|
||||
// const tester = new ReacordTester()
|
||||
|
||||
test.skip("link", async () => {
|
||||
// await tester.assertRender(
|
||||
// <>
|
||||
// <Link url="https://example.com/">link text</Link>
|
||||
// <Link label="link text" url="https://example.com/" />
|
||||
// <Link label="link text" url="https://example.com/" disabled />
|
||||
// </>,
|
||||
// [
|
||||
// {
|
||||
// content: "",
|
||||
// embeds: [],
|
||||
// actionRows: [
|
||||
// [
|
||||
// {
|
||||
// type: "link",
|
||||
// url: "https://example.com/",
|
||||
// label: "link text",
|
||||
// },
|
||||
// {
|
||||
// type: "link",
|
||||
// url: "https://example.com/",
|
||||
// label: "link text",
|
||||
// },
|
||||
// {
|
||||
// type: "link",
|
||||
// url: "https://example.com/",
|
||||
// label: "link text",
|
||||
// disabled: true,
|
||||
// },
|
||||
// ],
|
||||
// ],
|
||||
// },
|
||||
// ],
|
||||
// )
|
||||
let tester: ReacordTester
|
||||
beforeEach(async () => {
|
||||
tester = await ReacordTester.create()
|
||||
})
|
||||
|
||||
test("link", async () => {
|
||||
const { message } = await tester.render(
|
||||
"link",
|
||||
<>
|
||||
<Link url="https://example.com/">link text</Link>
|
||||
<Link label="link text" url="https://example.com/" />
|
||||
<Link label="link text" url="https://example.com/" disabled />
|
||||
</>,
|
||||
)
|
||||
|
||||
expect(message.components.map((c) => c.toJSON())).toEqual([
|
||||
{
|
||||
type: ComponentType.ActionRow,
|
||||
components: [
|
||||
{
|
||||
type: ComponentType.Button,
|
||||
style: ButtonStyle.Link,
|
||||
url: "https://example.com/",
|
||||
label: "link text",
|
||||
},
|
||||
{
|
||||
type: ComponentType.Button,
|
||||
style: ButtonStyle.Link,
|
||||
url: "https://example.com/",
|
||||
label: "link text",
|
||||
},
|
||||
{
|
||||
type: ComponentType.Button,
|
||||
style: ButtonStyle.Link,
|
||||
url: "https://example.com/",
|
||||
label: "link text",
|
||||
disabled: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
])
|
||||
})
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
import { waitFor } from "@reacord/helpers/wait-for.js"
|
||||
import * as React from "react"
|
||||
import { test } from "vitest"
|
||||
import { beforeAll, expect, test } from "vitest"
|
||||
import { Button, Embed, EmbedField, EmbedTitle } from "../library/main"
|
||||
import { ReacordTester } from "./tester"
|
||||
|
||||
let tester: ReacordTester
|
||||
beforeAll(async () => {
|
||||
tester = await ReacordTester.create()
|
||||
})
|
||||
|
||||
test.skip("rendering behavior", async () => {
|
||||
// const tester = new ReacordTester()
|
||||
@@ -231,27 +238,32 @@ test.skip("rendering behavior", async () => {
|
||||
// ])
|
||||
})
|
||||
|
||||
test.skip("delete", async () => {
|
||||
// const tester = new ReacordTester()
|
||||
// const reply = tester.reply()
|
||||
// reply.render(
|
||||
// <>
|
||||
// some text
|
||||
// <Embed>some embed</Embed>
|
||||
// <Button label="some button" onClick={() => {}} />
|
||||
// </>,
|
||||
// )
|
||||
// await tester.assertMessages([
|
||||
// {
|
||||
// content: "some text",
|
||||
// embeds: [{ description: "some embed" }],
|
||||
// actionRows: [
|
||||
// [{ type: "button", style: "secondary", label: "some button" }],
|
||||
// ],
|
||||
// },
|
||||
// ])
|
||||
// reply.destroy()
|
||||
// await tester.assertMessages([])
|
||||
test("destroy()", async () => {
|
||||
const { message, channel, instance } = await tester.render(
|
||||
"destroy()",
|
||||
<>
|
||||
some text
|
||||
<Embed>some embed</Embed>
|
||||
<Button label="some button" onClick={() => {}} />
|
||||
</>,
|
||||
)
|
||||
|
||||
expect(message.content).toBe("some text")
|
||||
expect(message.embeds.map((e) => e.toJSON())).toEqual([
|
||||
expect.objectContaining({ description: "some embed" }),
|
||||
])
|
||||
expect(message.components.map((a) => a.toJSON())).toEqual([
|
||||
expect.objectContaining({
|
||||
components: [expect.objectContaining({ label: "some button" })],
|
||||
}),
|
||||
])
|
||||
|
||||
instance.destroy()
|
||||
|
||||
await waitFor(async () => {
|
||||
const messages = await channel.messages.fetch()
|
||||
expect(messages.size).toBe(0)
|
||||
})
|
||||
})
|
||||
|
||||
// test multiple instances that can be updated independently,
|
||||
|
||||
@@ -80,6 +80,6 @@ export class ReacordTester {
|
||||
const result = await channel.awaitMessages({ max: 1 })
|
||||
const message = result.first() ?? raise("failed to send message")
|
||||
|
||||
return { message, instance }
|
||||
return { channel, message, instance }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user