61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
import { ComponentType } from "discord.js"
|
|
import React from "react"
|
|
import { expect, test } from "vitest"
|
|
import { ActionRow, Button, Option, Select } from "../src/main"
|
|
import { ReacordTester } from "./tester"
|
|
|
|
test("action row", async () => {
|
|
const { message } = await ReacordTester.render(
|
|
"action row",
|
|
<>
|
|
<Button label="outside button" onClick={() => {}} />
|
|
<ActionRow>
|
|
<Button label="button inside action row" onClick={() => {}} />
|
|
</ActionRow>
|
|
<Select value="the">
|
|
<Option value="the" />
|
|
</Select>
|
|
<Button label="last row 1" onClick={() => {}} />
|
|
<Button label="last row 2" onClick={() => {}} />
|
|
</>,
|
|
)
|
|
|
|
expect(message.components.map((c) => c.toJSON())).toEqual([
|
|
{
|
|
type: ComponentType.ActionRow,
|
|
components: [
|
|
expect.objectContaining({
|
|
type: ComponentType.Button,
|
|
label: "outside button",
|
|
}),
|
|
],
|
|
},
|
|
{
|
|
type: ComponentType.ActionRow,
|
|
components: [
|
|
expect.objectContaining({
|
|
type: ComponentType.Button,
|
|
label: "button inside action row",
|
|
}),
|
|
],
|
|
},
|
|
{
|
|
type: ComponentType.ActionRow,
|
|
components: [expect.objectContaining({ type: ComponentType.SelectMenu })],
|
|
},
|
|
{
|
|
type: ComponentType.ActionRow,
|
|
components: [
|
|
expect.objectContaining({
|
|
type: ComponentType.Button,
|
|
label: "last row 1",
|
|
}),
|
|
expect.objectContaining({
|
|
type: ComponentType.Button,
|
|
label: "last row 2",
|
|
}),
|
|
],
|
|
},
|
|
])
|
|
})
|