Create list effects command #412

Merged
Vylpes merged 15 commits from feature/379-list-effects into develop 2024-12-07 22:32:20 +00:00
2 changed files with 140 additions and 7 deletions
Showing only changes of commit 0584d0304b - Show all commits

View file

@ -281,25 +281,87 @@ describe("HasEffect", () => {
}); });
describe("GenerateEffectEmbed", () => { describe("GenerateEffectEmbed", () => {
test.todo("EXPECT UserEffect.FetchAllByUserIdPaginated to be called"); beforeEach(async () => {
UserEffect.FetchAllByUserIdPaginated = jest.fn()
.mockResolvedValue([
[],
0,
]);
await EffectHelper.GenerateEffectEmbed("userId", 1);
});
test("EXPECT UserEffect.FetchAllByUserIdPaginated to be called", () => {
expect(UserEffect.FetchAllByUserIdPaginated).toHaveBeenCalledTimes(1);
expect(UserEffect.FetchAllByUserIdPaginated).toHaveBeenCalledWith("userId", 0, 10);
});
describe("GIVEN there are no effects returned", () => { describe("GIVEN there are no effects returned", () => {
test.todo("EXPECT embed generated"); let result: any;
test.todo("EXPECT row generated"); beforeEach(async () => {
UserEffect.FetchAllByUserIdPaginated = jest.fn()
.mockResolvedValue([
[],
0,
]);
result = await EffectHelper.GenerateEffectEmbed("userId", 1);
});
test("EXPECT result returned", () => {
expect(result).toMatchSnapshot();
});
}); });
describe("GIVEN there are effects returned", () => { describe("GIVEN there are effects returned", () => {
test.todo("EXPECT embed generated"); let result: any;
test.todo("EXPECT row generated"); beforeEach(async () => {
UserEffect.FetchAllByUserIdPaginated = jest.fn()
.mockResolvedValue([
[
{
Name: "name",
Unused: 1,
},
],
1,
]);
result = await EffectHelper.GenerateEffectEmbed("userId", 1);
});
test("EXPECT result returned", () => {
expect(result).toMatchSnapshot();
});
describe("AND it is the first page", () => { describe("AND it is the first page", () => {
test.todo("EXPECT Previous button to be disabled"); beforeEach(async () => {
result = await EffectHelper.GenerateEffectEmbed("userId", 1)
});
test("EXPECT Previous button to be disabled", () => {
const button = result.row.components[0].data;
expect(button).toBeDefined();
expect(button.label).toBe("Previous");
expect(button.disabled).toBe(true);
});
}); });
describe("AND it is the last page", () => { describe("AND it is the last page", () => {
test.todo("EXPECT Next button to be disabled"); beforeEach(async () => {
result = await EffectHelper.GenerateEffectEmbed("userId", 1)
});
test("EXPECT Next button to be disabled", () => {
const button = result.row.components[1].data;
expect(button).toBeDefined();
expect(button.label).toBe("Next");
expect(button.disabled).toBe(true);
});
}); });
}); });
}); });

View file

@ -0,0 +1,71 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`GenerateEffectEmbed GIVEN there are effects returned EXPECT result returned 1`] = `
{
"embed": {
"color": 3166394,
"description": "name x1",
"footer": {
"icon_url": undefined,
"text": "Page 1 of 1",
},
"title": "Effects",
},
"row": {
"components": [
{
"custom_id": "effects list 0",
"disabled": true,
"emoji": undefined,
"label": "Previous",
"style": 1,
"type": 2,
},
{
"custom_id": "effects list 2",
"disabled": true,
"emoji": undefined,
"label": "Next",
"style": 1,
"type": 2,
},
],
"type": 1,
},
}
`;
exports[`GenerateEffectEmbed GIVEN there are no effects returned EXPECT result returned 1`] = `
{
"embed": {
"color": 3166394,
"description": "*none*",
"footer": {
"icon_url": undefined,
"text": "Page 1 of 1",
},
"title": "Effects",
},
"row": {
"components": [
{
"custom_id": "effects list 0",
"disabled": true,
"emoji": undefined,
"label": "Previous",
"style": 1,
"type": 2,
},
{
"custom_id": "effects list 2",
"disabled": true,
"emoji": undefined,
"label": "Next",
"style": 1,
"type": 2,
},
],
"type": 1,
},
}
`;