WIP: Split up moon counter from the database #489
3 changed files with 53 additions and 4 deletions
|
@ -8,7 +8,7 @@
|
|||
"clean": "rm -rf node_modules/ dist/",
|
||||
"build": "tsc",
|
||||
"start": "node ./dist/vylbot",
|
||||
"test": "jest . --passWithNoTests",
|
||||
"test": "jest .",
|
||||
"db:up": "typeorm migration:run -d dist/database/dataSources/appDataSource.js",
|
||||
"db:down": "typeorm migration:revert -d dist/database/dataSources/appDataSource.js",
|
||||
"db:create": "typeorm migration:create ./src/database/migrations",
|
||||
|
|
|
@ -13,13 +13,13 @@ export default async function List(interaction: ButtonInteraction) {
|
|||
|
||||
const pageNumber = Number(page);
|
||||
|
||||
const member = interaction.guild.members.cache.find(x => x.user.id == userId);
|
||||
const member = interaction.guild.members.cache.find(x => x.user.id == userId) || await interaction.guild.members.fetch(userId);
|
||||
|
||||
const pageLength = 10;
|
||||
|
||||
const moons = await Moon.FetchPaginatedMoonsByUserId(userId, pageLength, pageNumber);
|
||||
|
||||
if (!moons || moons[0].length == 0) {
|
||||
if (!moons) {
|
||||
await interaction.reply(`${member?.user.username ?? "This user"} does not have any moons or page is invalid.`);
|
||||
return;
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ export default async function List(interaction: ButtonInteraction) {
|
|||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle(`${member?.user.username}'s Moons`)
|
||||
.setTitle(`${member.user.username}'s Moons`)
|
||||
.setColor(EmbedColours.Ok)
|
||||
.setDescription(description.join("\n"))
|
||||
.setFooter({ text: `Page ${pageNumber + 1} of ${totalPages} · ${totalMoons} moons` });
|
||||
|
|
49
tests/buttonEvents/moons/list.test.ts
Normal file
49
tests/buttonEvents/moons/list.test.ts
Normal file
|
@ -0,0 +1,49 @@
|
|||
describe("GIVEN interation.guild is null", () => {
|
||||
test.todo("EXPECT nothing to happen");
|
||||
});
|
||||
|
||||
describe("GIVEN userId is not supplied", () => {
|
||||
test.todo("EXPECT nothing to happen");
|
||||
});
|
||||
|
||||
describe("GIVEN page is not supplied", () => {
|
||||
test.todo("EXPECT nothing to happen");
|
||||
});
|
||||
|
||||
describe("GIVEN moons entity is undefined", () => {
|
||||
test.todo("EXPECT interaction replied");
|
||||
});
|
||||
|
||||
describe("GIVEN moons array is empty", () => {
|
||||
test.todo("EXPECT embed description to say none");
|
||||
});
|
||||
|
||||
describe("GIVEN moons array is not empty", () => {
|
||||
test.todo("EXPECT embed description to specify moon details");
|
||||
});
|
||||
|
||||
describe("GIVEN moon difference is greater than 0", () => {
|
||||
describe("GIVEN it is not the last page", () => {
|
||||
test.todo("EXPECT untracked moons message to not be displayed");
|
||||
});
|
||||
|
||||
describe("GIVEN it is the last page", () => {
|
||||
test.todo("EXPECT untracked moons to be displayed");
|
||||
});
|
||||
|
||||
describe("GIVEN moons array is empty", () => {
|
||||
test.todo("EXPECT untracked moons to be displayed");
|
||||
});
|
||||
});
|
||||
|
||||
describe("GIVEN it is the first page", () => {
|
||||
test.todo("EXPECT previous button to be disabled");
|
||||
});
|
||||
|
||||
describe("GIVEN it is the last page", () => {
|
||||
test.todo("EXPECT next button to be disabled");
|
||||
});
|
||||
|
||||
describe("GIVEN happy flow", () => {
|
||||
test.todo("EXPECT interaction to be updated");
|
||||
});
|
Loading…
Reference in a new issue