From b3464fd05ef2af7c6d39959b165eaae69f7750bb Mon Sep 17 00:00:00 2001 From: MapleLeaf <19603573+itsMapleLeaf@users.noreply.github.com> Date: Tue, 11 Jan 2022 16:22:51 -0600 Subject: [PATCH] ReacordTester: accept and pass initial content --- packages/reacord/test/test-adapter.ts | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/packages/reacord/test/test-adapter.ts b/packages/reacord/test/test-adapter.ts index 4114089..a2d5f6d 100644 --- a/packages/reacord/test/test-adapter.ts +++ b/packages/reacord/test/test-adapter.ts @@ -37,6 +37,8 @@ import { InteractionReplyRenderer } from "../library/internal/renderers/interact const nextTickPromise = promisify(nextTick) +export type MessageSample = ReturnType[0] + /** * A Record adapter for automated tests. WIP */ @@ -51,33 +53,32 @@ export class ReacordTester extends Reacord { return [...this.messageContainer] } - override send(): ReacordInstance { + override send(initialContent?: ReactNode): ReacordInstance { return this.createInstance( new ChannelMessageRenderer(new TestChannel(this.messageContainer)), + initialContent, ) } - override reply(): ReacordInstance { + override reply(initialContent?: ReactNode): ReacordInstance { return this.createInstance( new InteractionReplyRenderer( new TestCommandInteraction(this.messageContainer), ), + initialContent, ) } - override ephemeralReply(): ReacordInstance { - return this.reply() + override ephemeralReply(initialContent?: ReactNode): ReacordInstance { + return this.reply(initialContent) } - async assertMessages(expected: ReturnType) { + async assertMessages(expected: MessageSample[]) { await nextTickPromise() expect(this.sampleMessages()).toEqual(expected) } - async assertRender( - content: ReactNode, - expected: ReturnType, - ) { + async assertRender(content: ReactNode, expected: MessageSample[]) { const instance = this.reply() instance.render(content) await this.assertMessages(expected) @@ -274,11 +275,11 @@ class TestComponentEvent { guild: GuildInfo = {} as any // todo reply(content?: ReactNode): ReacordInstance { - return this.tester.reply() + return this.tester.reply(content) } ephemeralReply(content?: ReactNode): ReacordInstance { - return this.tester.ephemeralReply() + return this.tester.ephemeralReply(content) } }