From d4c75845e56f7022c48bd5ef3a576f63571af0e6 Mon Sep 17 00:00:00 2001 From: Ethan Lane Date: Sun, 9 Feb 2025 19:11:03 +0000 Subject: [PATCH] WIP: Start creating buy subactions --- src/buttonEvents/Effects.ts | 4 ++++ src/buttonEvents/Effects/Buy.ts | 25 +++++++++++++++++++++++++ tests/buttonEvents/Effects.test.ts | 4 +++- tests/buttonEvents/Effects/Buy.test.ts | 7 +++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/buttonEvents/Effects/Buy.ts create mode 100644 tests/buttonEvents/Effects/Buy.test.ts diff --git a/src/buttonEvents/Effects.ts b/src/buttonEvents/Effects.ts index 0f9686b..cd1a765 100644 --- a/src/buttonEvents/Effects.ts +++ b/src/buttonEvents/Effects.ts @@ -3,6 +3,7 @@ import { ButtonEvent } from "../type/buttonEvent"; import List from "./Effects/List"; import Use from "./Effects/Use"; import AppLogger from "../client/appLogger"; +import Buy from "./Effects/Buy"; export default class Effects extends ButtonEvent { public override async execute(interaction: ButtonInteraction) { @@ -15,6 +16,9 @@ export default class Effects extends ButtonEvent { case "use": await Use.Execute(interaction); break; + case "buy": + await Buy.Execute(interaction); + break; default: AppLogger.LogError("Buttons/Effects", `Unknown action, ${action}`); } diff --git a/src/buttonEvents/Effects/Buy.ts b/src/buttonEvents/Effects/Buy.ts new file mode 100644 index 0000000..a7fc2c4 --- /dev/null +++ b/src/buttonEvents/Effects/Buy.ts @@ -0,0 +1,25 @@ +import {ButtonInteraction} from "discord.js"; +import AppLogger from "../../client/appLogger"; + +export default class Buy { + public static async Execute(interaction: ButtonInteraction) { + const subaction = interaction.customId.split(" ")[2]; + + switch (subaction) { + case "confirm": + await this.Confirm(interaction); + break; + case "cancel": + await this.Cancel(interaction); + break; + default: + AppLogger.LogError("Buy", `Unknown subaction, effects ${subaction}`); + } + } + + private static async Confirm(interaction: ButtonInteraction) { + } + + private static async Cancel(interaction: ButtonInteraction) { + } +} diff --git a/tests/buttonEvents/Effects.test.ts b/tests/buttonEvents/Effects.test.ts index f1f86be..8fb1023 100644 --- a/tests/buttonEvents/Effects.test.ts +++ b/tests/buttonEvents/Effects.test.ts @@ -49,6 +49,8 @@ test("GIVEN action is use, EXPECT use function to be called", async () => { expect(List).not.toHaveBeenCalled(); }); +test.todo("GIVEN action is buy, EXPECT buy function to be called"); + test("GIVEN action is invalid, EXPECT nothing to be called", async () => { // Arrange interaction.customId = "effects invalid"; @@ -63,4 +65,4 @@ test("GIVEN action is invalid, EXPECT nothing to be called", async () => { expect(AppLogger.LogError).toHaveBeenCalledTimes(1); expect(AppLogger.LogError).toHaveBeenCalledWith("Buttons/Effects", "Unknown action, invalid"); -}); \ No newline at end of file +}); diff --git a/tests/buttonEvents/Effects/Buy.test.ts b/tests/buttonEvents/Effects/Buy.test.ts new file mode 100644 index 0000000..f094e0c --- /dev/null +++ b/tests/buttonEvents/Effects/Buy.test.ts @@ -0,0 +1,7 @@ +describe("Execute", () => { + test.todo("GIVEN subaction is confirm, EXPECT confirm function executed"); + + test.todo("GIVEN subaction is cancel, EXPECT cancel function executed"); + + test.todo("GIVEN subaction is invalid, EXPECT error logged"); +});