WIP: Split up moon counter from the database #489

Draft
Vylpes wants to merge 16 commits from feature/300-moon-set into develop
3 changed files with 53 additions and 4 deletions
Showing only changes of commit 974e298214 - Show all commits

View file

@ -8,7 +8,7 @@
"clean": "rm -rf node_modules/ dist/", "clean": "rm -rf node_modules/ dist/",
"build": "tsc", "build": "tsc",
"start": "node ./dist/vylbot", "start": "node ./dist/vylbot",
"test": "jest . --passWithNoTests", "test": "jest .",
"db:up": "typeorm migration:run -d dist/database/dataSources/appDataSource.js", "db:up": "typeorm migration:run -d dist/database/dataSources/appDataSource.js",
"db:down": "typeorm migration:revert -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", "db:create": "typeorm migration:create ./src/database/migrations",

View file

@ -13,13 +13,13 @@ export default async function List(interaction: ButtonInteraction) {
const pageNumber = Number(page); 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 pageLength = 10;
const moons = await Moon.FetchPaginatedMoonsByUserId(userId, pageLength, pageNumber); 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.`); await interaction.reply(`${member?.user.username ?? "This user"} does not have any moons or page is invalid.`);
return; return;
} }
@ -43,7 +43,7 @@ export default async function List(interaction: ButtonInteraction) {
} }
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(`${member?.user.username}'s Moons`) .setTitle(`${member.user.username}'s Moons`)
.setColor(EmbedColours.Ok) .setColor(EmbedColours.Ok)
.setDescription(description.join("\n")) .setDescription(description.join("\n"))
.setFooter({ text: `Page ${pageNumber + 1} of ${totalPages} · ${totalMoons} moons` }); .setFooter({ text: `Page ${pageNumber + 1} of ${totalPages} · ${totalMoons} moons` });

View 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");
});