corde
Version:
A simple library for Discord bot tests
87 lines (66 loc) • 2.14 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.ToSetRoleHoist = void 0;
const expectTest_1 = require("../expectTest");
const roleUtils_1 = require("../../roleUtils");
const utils_1 = require("../../../utils");
class ToSetRoleHoist extends expectTest_1.ExpectTest {
constructor(params) {
super({ ...params, testName: "toSetRoleHoist" });
}
async action(hoist, roleIdentifier) {
const identifier = roleUtils_1.roleUtils.getRoleData(roleIdentifier);
const error = roleUtils_1.roleUtils.getErrorForUndefinedRoleData(identifier);
if (error) {
return this.createFailedTest(error);
}
if (hoist == undefined) {
return this.createReport(
"expected: hoist option to be true or false\n",
`received: ${(0, utils_1.typeOf)(hoist)}`,
);
}
if (typeof hoist !== "boolean") {
return this.createReport(
"expect: hoist parameter to be of boolean type\n",
`received: ${(0, utils_1.typeOf)(hoist)}`,
);
}
const oldRole = await this.cordeBot.findRole(identifier);
const invalidRoleErrorMessage = roleUtils_1.roleUtils.validateRole(oldRole, identifier);
if (invalidRoleErrorMessage) {
return this.createFailedTest(invalidRoleErrorMessage);
}
try {
await this.sendCommandMessage();
} catch (error) {
return this.createFailedTest(error.message);
}
let role;
try {
role = await this.cordeBot.events.onceRoleHoistUpdate(identifier, this.timeout, this.guildId);
} catch {
if (this.isNot) {
return this.createPassTest();
}
return this.createReport(
`expected: hoist to be ${hoist}\n`,
"received: role hoist was not updated",
);
}
if (role.hoist === hoist) {
this.hasPassed = true;
}
this.invertHasPassedIfIsNot();
if (this.hasPassed) {
return this.createPassTest();
}
return this.createReport(
`expected: hoist to ${this.isNot ? "not " : ""}be ${hoist}\n`,
`received: ${role.hoist}`,
);
}
}
exports.ToSetRoleHoist = ToSetRoleHoist;