UNPKG

corde

Version:

A simple library for Discord bot tests

87 lines (66 loc) 2.14 kB
"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;