more test fixes

This commit is contained in:
itsMapleLeaf
2022-08-06 10:22:12 -05:00
parent e1f5eda3c7
commit 6084ab23e0
3 changed files with 81 additions and 61 deletions

View File

@@ -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,
},
],
},
])
})

View File

@@ -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,

View File

@@ -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 }
}
}