Update tests

This commit is contained in:
Ethan Lane 2025-02-19 18:17:16 +00:00
parent d4c75845e5
commit 416e30c042

View file

@ -1,7 +1,69 @@
describe("Execute", () => { import {ButtonInteraction} from "discord.js";
test.todo("GIVEN subaction is confirm, EXPECT confirm function executed"); import Buy from "../../../src/buttonEvents/Effects/Buy";
import GenerateButtonInteractionMock from "../../__functions__/discord.js/GenerateButtonInteractionMock";
import { ButtonInteraction as ButtonInteractionType } from "../../__types__/discord.js";
import AppLogger from "../../../src/client/appLogger";
test.todo("GIVEN subaction is cancel, EXPECT cancel function executed"); jest.mock("../../../src/client/appLogger");
let interaction: ButtonInteractionType;
beforeEach(() => {
jest.resetAllMocks();
interaction = GenerateButtonInteractionMock();
interaction.customId = "effects buy";
test.todo("GIVEN subaction is invalid, EXPECT error logged"); });
describe("Execute", () => {
test("GIVEN subaction is confirm, EXPECT confirm function executed", async () => {
// Arrange
interaction.customId += " confirm";
const confirmSpy = jest.spyOn(Buy as any, "Confirm");
// Act
await Buy.Execute(interaction as unknown as ButtonInteraction);
// Assert
expect(confirmSpy).toHaveBeenCalledTimes(1);
expect(confirmSpy).toHaveBeenCalledWith(interaction);
expect(AppLogger.LogError).not.toHaveBeenCalled();
});
test("GIVEN subaction is cancel, EXPECT cancel function executed", async () => {
// Arrange
interaction.customId += " cancel";
const cancelSpy = jest.spyOn(Buy as any, "Cancel");
// Act
await Buy.Execute(interaction as unknown as ButtonInteraction);
// Assert
expect(cancelSpy).toHaveBeenCalledTimes(1);
expect(cancelSpy).toHaveBeenCalledWith(interaction);
expect(AppLogger.LogError).not.toHaveBeenCalled();
});
test("GIVEN subaction is invalid, EXPECT error logged", async () => {
// Arrange
interaction.customId += " invalid";
const confirmSpy = jest.spyOn(Buy as any, "Confirm");
const cancelSpy = jest.spyOn(Buy as any, "Cancel");
// Act
await Buy.Execute(interaction as unknown as ButtonInteraction);
// Assert
expect(AppLogger.LogError).toHaveBeenCalledTimes(1);
expect(AppLogger.LogError).toHaveBeenCalledWith("Buy", "Unknown subaction, effects invalid");
expect(confirmSpy).not.toHaveBeenCalled();
expect(cancelSpy).not.toHaveBeenCalled();
});
}); });